/** * Creates a deep clone of this {@link ATypeDeclIR} 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 ATypeDeclIR} node */ public ATypeDeclIR clone(Map<INode,INode> oldToNewMap) { ATypeDeclIR node = new ATypeDeclIR( _sourceNode, _tag, _metaData, _access, cloneNode(_inv, oldToNewMap), cloneNode(_decl, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
/** * Returns a deep clone of this {@link ATypeDeclIR} node. * @return a deep clone of this {@link ATypeDeclIR} node */ public ATypeDeclIR clone() { return new ATypeDeclIR( _sourceNode, _tag, _metaData, _access, cloneNode(_inv), cloneNode(_decl) ); }
@Override public SDeclIR caseATypeDefinition(ATypeDefinition node, IRInfo question) throws AnalysisException { String access = node.getAccess().getAccess().toString(); PType type = node.getType(); SDeclIR declCg = type.apply(question.getDeclVisitor(), question); SDeclIR invCg = question.getSettings().generateInvariants() && node.getInvdef() != null ? node.getInvdef().apply(question.getDeclVisitor(), question) : null; ATypeDeclIR typeDecl = new ATypeDeclIR(); typeDecl.setAccess(access); typeDecl.setDecl(declCg); typeDecl.setInv(invCg); return typeDecl; }
ATypeDeclIR typeDecl = new ATypeDeclIR(); typeDecl.setAccess(IRConstants.PUBLIC); typeDecl.setDecl(record);