public static AFunctionValueImport newAFunctionValueImport( ILexNameToken defname, PType type, LexNameList typeParams, ILexNameToken renamed) { AFunctionValueImport result = new AFunctionValueImport(); result.setLocation(defname.getLocation()); result.setName(defname); result.setRenamed(renamed); result.setImportType(type); result.setTypeParams(typeParams); return result; }
/** * Returns a deep clone of this {@link AFunctionValueImport} node. * @return a deep clone of this {@link AFunctionValueImport} node */ public AFunctionValueImport clone() { return new AFunctionValueImport( _location, cloneNode(_name), cloneNode(_renamed), _from, _importType, cloneList(_typeParams) ); }
inAFunctionValueImport(node); if(node.getName() != null ) node.getName().apply(this); if(node.getRenamed() != null ) node.getRenamed().apply(this); if(node.getFrom() != null && !_visitedNodes.contains(node.getFrom())) node.getFrom().apply(this); if(node.getImportType() != null && !_visitedNodes.contains(node.getImportType())) node.getImportType().apply(this); List<ILexNameToken> copy = new ArrayList<ILexNameToken>(node.getTypeParams()); for( ILexNameToken e : copy)
if (node.getFrom() != null) expdef = question.assistantFactory.createPDefinitionListAssistant().findName(node.getFrom().getExportdefs(), node.getName(), NameScope.NAMES); if (node.getTypeParams().size() == 0) for (ILexNameToken pname : node.getTypeParams()) PType rtype = question.assistantFactory.createPTypeAssistant().typeResolve(node.getImportType(), null, THIS, question.newInfo(params)); node.setImportType(rtype); TypeCheckerErrors.report(3352, "Imported " + node.getName() + " function has no type paramaters", node.getLocation(), node); else if (!efd.getTypeParams().toString().equals(node.getTypeParams().toString())) TypeCheckerErrors.report(3353, "Imported " + node.getName() + " function type parameters incorrect", node.getLocation(), node); TypeCheckerErrors.detail2("Imported", node.getTypeParams(), "Actual", efd.getTypeParams()); if (efd.getType() != null && !efd.getType().toString().equals(node.getImportType().toString())) TypeCheckerErrors.report(3184, "Imported " + node.getName() + " function type incorrect", node.getLocation(), node); TypeCheckerErrors.detail2("Imported", node.getImportType(), "Actual", efd.getType()); node.setImportType(efd.getType().clone()); TypeCheckerErrors.report(3352, "Imported " + node.getName() + " function has no type paramaters", node.getLocation(), node); else if (!ifd.getTypeParams().toString().equals(node.getTypeParams().toString()))
@Override public SImportIR caseAFunctionValueImport(AFunctionValueImport node, IRInfo question) throws AnalysisException { AFunctionValueImportIR funcImportCg = new AFunctionValueImportIR(); initValueImport(node, funcImportCg, question); for (ILexNameToken typeParam : node.getTypeParams()) { ATokenNameIR nameCg = new ATokenNameIR(); nameCg.setName(typeParam.getName()); funcImportCg.getTypeParams().add(nameCg); } return funcImportCg; }
inAFunctionValueImport(node); if(node.getName() != null ) node.getName().apply(this); if(node.getRenamed() != null ) node.getRenamed().apply(this); if(node.getFrom() != null && !_visitedNodes.contains(node.getFrom())) node.getFrom().apply(this); if(node.getImportType() != null && !_visitedNodes.contains(node.getImportType())) node.getImportType().apply(this); List<ILexNameToken> copy = new ArrayList<ILexNameToken>(node.getTypeParams()); for( ILexNameToken e : copy)
/** * Creates a deep clone of this {@link AFunctionValueImport} node while putting all * old node-new node relations in the map {@code oldToNewMap}. * @param oldToNewMap the map filled with the old node-new node relation * @return a deep clone of this {@link AFunctionValueImport} node */ public AFunctionValueImport clone(Map<INode,INode> oldToNewMap) { AFunctionValueImport node = new AFunctionValueImport( _location, cloneNode(_name, oldToNewMap), cloneNode(_renamed, oldToNewMap), _from, _importType, cloneList(_typeParams, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
inAFunctionValueImport(node, question); if(node.getName() != null ) node.getName().apply(this, question); if(node.getRenamed() != null ) node.getRenamed().apply(this, question); if(node.getFrom() != null && !_visitedNodes.contains(node.getFrom())) node.getFrom().apply(this, question); if(node.getImportType() != null && !_visitedNodes.contains(node.getImportType())) node.getImportType().apply(this, question); List<ILexNameToken> copy = new ArrayList<ILexNameToken>(node.getTypeParams()); for( ILexNameToken e : copy)
mergeReturns(retVal,inAFunctionValueImport(node, question)); if(node.getName() != null ) mergeReturns(retVal,node.getName().apply(this, question)); if(node.getRenamed() != null ) mergeReturns(retVal,node.getRenamed().apply(this, question)); if(node.getFrom() != null && !_visitedNodes.contains(node.getFrom())) mergeReturns(retVal,node.getFrom().apply(this, question)); if(node.getImportType() != null && !_visitedNodes.contains(node.getImportType())) mergeReturns(retVal,node.getImportType().apply(this, question)); List<ILexNameToken> copy = new ArrayList<ILexNameToken>(node.getTypeParams()); for( ILexNameToken e : copy)
mergeReturns(retVal,inAFunctionValueImport(node)); if(node.getName() != null ) mergeReturns(retVal,node.getName().apply(this)); if(node.getRenamed() != null ) mergeReturns(retVal,node.getRenamed().apply(this)); if(node.getFrom() != null && !_visitedNodes.contains(node.getFrom())) mergeReturns(retVal,node.getFrom().apply(this)); if(node.getImportType() != null && !_visitedNodes.contains(node.getImportType())) mergeReturns(retVal,node.getImportType().apply(this)); List<ILexNameToken> copy = new ArrayList<ILexNameToken>(node.getTypeParams()); for( ILexNameToken e : copy)