/** * Returns a deep clone of this {@link ANewObjectDesignatorIR} node. * @return a deep clone of this {@link ANewObjectDesignatorIR} node */ public ANewObjectDesignatorIR clone() { return new ANewObjectDesignatorIR( _sourceNode, _tag, _metaData, cloneNode(_exp) ); }
/** * Creates a deep clone of this {@link ANewObjectDesignatorIR} 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 ANewObjectDesignatorIR} node */ public ANewObjectDesignatorIR clone(Map<INode,INode> oldToNewMap) { ANewObjectDesignatorIR node = new ANewObjectDesignatorIR( _sourceNode, _tag, _metaData, cloneNode(_exp, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
@Override public SObjectDesignatorIR caseANewObjectDesignator( ANewObjectDesignator node, IRInfo question) throws AnalysisException { ANewExp exp = node.getExpression(); SExpIR expCg = exp.apply(question.getExpVisitor(), question); ANewObjectDesignatorIR newObjDesignator = new ANewObjectDesignatorIR(); if (!(expCg instanceof ANewExpIR)) { question.addUnsupportedNode(node, "Expected expression of new object designator to be a 'new expression' but got: " + expCg.getClass().getName()); return null; } newObjDesignator.setExp((ANewExpIR) expCg); return newObjDesignator; }