andrewmkeller - 2015-03-26

This is happening because the edif tool is treating the old name as a single and comparing it against the new names of ports. I do not believe this matches the outlined behavior of ngdbuild on page http://reliability.ee.byu.edu/edif/doc/edu/byu/ece/edif/core/BasicEdifNameClashPolicy.html

"EdifPorts in an EdifCellInterface

single-single - error
single-new - error
single-old - error
new-new - error
old-old - error
old-new - none"

I am not sure why it is treating an old name as a single... this is happening at edu.byu.ece.edif.core.EdifNameSpaceUtils about line 110:

public boolean nameClashOld(String oldName) {
    if (_clashPolicy.oldClashesOld() && _nameSpace.containsOld(oldName))
        return true;
    if (_clashPolicy.oldClashesNew() && _nameSpace.containsNew(oldName))
        return true;
    if (_clashPolicy.singleClashesOld() && _nameSpace.containsSingle(oldName))
        return true;
    return false;
}

Here is the stack trace:

Thread [main] (Suspended)
EdifNameSpaceUtils.nameClashOld(String) line: 117
EdifNameSpaceUtils.nameClashOld(RenamedObject) line: 101
EdifNameSpaceUtils.nameClash(EdifNameable) line: 58
EdifNameSpaceList<e>.nameClash(E) line: 107
EdifNameSpaceList<e>.addElement(E) line: 65
EdifCellInterface.addPort(EdifNameable, int, int, boolean) line: 71
EdifParserCore.port(EdifCellInterface) line: 817
EdifParserCore.myInterface(EdifCell) line: 716
EdifParserCore.view(EdifCell) line: 640
EdifParserCore.cell(EdifLibrary) line: 575
EdifParserCore.libraryDefinition(EdifEnvironment, boolean) line: 523
EdifParserCore.library(EdifEnvironment) line: 499
EdifParserCore.edif() line: 419
EdifParser.translate(InputStream, String, Collection) line: 61
EdifParser.translate(String) line: 122
EdifMergeParser.getMergedEdifEnvironment(String, Collection<string>, Iterator<string>, EdifLibrary, Map<string,edifenvironment>, boolean, boolean) line: 1211
EdifMergeParser.parseAndMergeEdif(String, Collection<string>, Collection<string>, EdifLibrary, boolean, boolean) line: 1045
MergeParserCommandGroup.getEdifEnvironment(JSAPResult) line: 95
PTMRCommandGroup.getEdifEnvironment(JSAPResult) line: 307
PTMR.executePTMR() line: 192
PTMR.main(String[]) line: 95</string></string></string,edifenvironment></string></string></e></e>

This may be correct behavior... let me look into this.