@Override public void visitTypeConstructorExpr(TypeConstructorExpr typeConstructorExpr) { super.visitTypeConstructorExpr(typeConstructorExpr); if (!typeConstructorExpr.getTypename().equals( targetStruct.getStructNameType().getName())) { return; } // This is the target struct, so remove the appropriate constructor component typeConstructorExpr.removeArg(index); } }.visit(subtreeInWhichStructIsUsed);
@Override public void visitTypeConstructorExpr(TypeConstructorExpr typeConstructorExpr) { super.visitTypeConstructorExpr(typeConstructorExpr); if (typeConstructorExpr.getTypename().equals(getOuterStructName())) { TypeConstructorExpr oldArg = (TypeConstructorExpr) typeConstructorExpr.removeArg(indexOfInlinedField); for (int i = 0; i < oldArg.getNumArgs(); i++) { typeConstructorExpr.insertArg(indexOfInlinedField + i, oldArg.getArg(i)); } } }