public static void checkSuperDefinition(AInheritedDefinition d) { // This is used to get over the case where an inherited definition // is a ValueDefinition that has since been replaced with a new // LocalDefinition. It would be better to somehow list the // inherited definitions that refer to a LocalDefinition and update // them... if (d.getSuperdef() instanceof AUntypedDefinition) { if (d.getClassDefinition() != null) { d.setSuperdef(af.createPDefinitionAssistant().findName(d.getClassDefinition(), d.getSuperdef().getName(), d.getNameScope())); } } }
if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this, question);
if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this);
if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this);
if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) mergeReturns(retVal,node.getClassDefinition().apply(this));
if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) mergeReturns(retVal,node.getClassDefinition().apply(this, question));
@Override public NameValuePairList caseAInheritedDefinition(AInheritedDefinition def, Context initialContext) throws AnalysisException { NameValuePairList renamed = new NameValuePairList(); if (def.getSuperdef() instanceof AUntypedDefinition) { if (def.getClassDefinition() != null) { def.setSuperdef(af.createPDefinitionAssistant().findName(def.getClassDefinition(), def.getSuperdef().getName(), def.getNameScope())); } } for (NameValuePair nv : af.createPDefinitionAssistant().getNamedValues(def.getSuperdef(), initialContext)) { renamed.add(new NameValuePair(nv.name.getModifiedName(def.getName().getModule()), nv.value)); } return renamed; }