/** * Basic equals method for LexNameTokens. This method does not handle type qualifiers in that case use * {@link HackLexNameToken} */ @SuppressWarnings("javadoc") @Override public boolean equals(Object other) { if (!(other instanceof ILexNameToken)) { return false; } ILexNameToken lother = (ILexNameToken) other; if (typeQualifier != null && lother.getTypeQualifier() != null) { // For testing purpose the following line can be uncommented. The Type Checker is not supose to rely on this // equal method but use the HelpLexNameToken class for that // throw new InternalException(-1, "Use HelpLexNameToken.isEqual to compare"); } else if (typeQualifier != null && lother.getTypeQualifier() == null || typeQualifier == null && lother.getTypeQualifier() != null) { return false; } return matches(lother); }
public boolean isEqual(ILexNameToken token, Object other) { if (!(other instanceof ILexNameToken)) { return false; } ILexNameToken lother = (ILexNameToken) other; if (token.getTypeQualifier() != null && lother.getTypeQualifier() != null) { if (!af.getTypeComparator().compatible(token.getTypeQualifier(), lother.getTypeQualifier())) { return false; } } else if (token.getTypeQualifier() != null && lother.getTypeQualifier() == null || token.getTypeQualifier() == null && lother.getTypeQualifier() != null) { return false; } return token.matches(lother); } }
List<PType> q = indef.getSuperdef().getName().getTypeQualifier(); indef.getName().setTypeQualifier(q);
private LexNameToken consLexNameToken(ILexNameToken defName, String newName, String newModule) { LexNameToken newLexName = new LexNameToken(newModule, newName, defName.getLocation(), defName.getOld(), defName.getExplicit()); newLexName.setTypeQualifier(defName.getTypeQualifier()); return newLexName; } }
List<PType> q = indef2.getSuperdef().getName().getTypeQualifier(); indef2.getName().setTypeQualifier(q);
rv.setTypeQualifier(name.getTypeQualifier()); return rv;
@Override public PDefinition caseAInheritedDefinition(AInheritedDefinition node, Newquestion question) throws AnalysisException { // The problem is, when the InheritedDefinition is created, we // don't know its fully qualified name. if (node.getSuperdef() instanceof AInheritedDefinition) { node.getSuperdef().apply(this, question); } ILexNameToken name = node.getName(); name.setTypeQualifier(node.getSuperdef().getName().getTypeQualifier()); if (af.getLexNameTokenAssistant().isEqual(name, question.sought)) { return node; } else if (question.scope.matches(NameScope.OLDSTATE) && node.getOldname().equals(question.sought)) { return node; } return null; }
@Override public void caseILexNameToken(ILexNameToken node) throws AnalysisException { if (node.getOld()) { String module = node.getModule(); String name = OLD_PREFIX + node.getName(); ILexLocation loc = node.getLocation(); boolean old = node.getOld(); boolean expl = node.getExplicit(); ILexNameToken oldRepl = new LexNameToken(module, name, loc, old, expl); List<PType> typeQualifier = node.getTypeQualifier(); oldRepl.setTypeQualifier(typeQualifier); if (node.parent() != null) { node.parent().replaceChild(node, oldRepl); } else { log.error("Could not find parent of lex name token: " + node); } } } }
if (question.sought.getTypeQualifier() == null) if (question.sought.getTypeQualifier() == null)
int arg = 0; for (PType argType: node.getField().getTypeQualifier()) if (argTypes.size() != node.getField().getTypeQualifier().size())
List<PType> oldq = memberName.getTypeQualifier(); memberName.setTypeQualifier(null); if (fdef == null && memberName.getTypeQualifier() == null) memberName.setTypeQualifier(fdef.getName().getTypeQualifier()); } else
i.getName().setTypeQualifier(i.getSuperdef().getName().getTypeQualifier());