private AInterfaceDeclIR convertToInterface(SClassDeclIR c) { List<AFieldDeclIR> clonedFields = new LinkedList<>(); for (AFieldDeclIR f : c.getFields()) { clonedFields.add(f.clone()); } List<AMethodDeclIR> clonedMethods = new LinkedList<>(); for (AMethodDeclIR m : c.getMethods()) { if (!m.getIsConstructor() && !(m.getTag() instanceof IRGeneratedTag)) { clonedMethods.add(m.clone()); } } AInterfaceDeclIR inter = new AInterfaceDeclIR(); inter.setFields(clonedFields); inter.setMetaData(c.getMetaData()); inter.setMethodSignatures(clonedMethods); inter.setName(c.getName()); inter.setPackage(c.getPackage()); inter.setSourceNode(c.getSourceNode()); inter.setTag(c.getTag()); for (ATokenNameIR n : c.getSuperNames()) { inter.getExtension().add(n.clone()); } return inter; }
classType.setName(lambdaInterface.getName()); AMethodDeclIR lambdaDecl = lambdaInterface.getMethodSignatures().get(0).clone(); lambdaDecl.setAbstract(false);
for (AMethodDeclIR m : recDecl.getMethods()) AMethodDeclIR newMethod = m.clone(); methods.add(newMethod); recInfo.updateAccessor(m, newMethod);
AMethodDeclIR objInitializer = node.clone(); objInitializer.setSourceNode(node.getSourceNode()); objInitializer.setTag(new IRGeneratedTag(getClass().getName()));