@Override public <T> void visitCtConstructorCall(CtConstructorCall<T> ctConstructorCall) { if (child instanceof CtTypeAccess) { if (hasChildEqualsToType(ctConstructorCall)) { ctConstructorCall.getExecutable().setType(((CtTypeAccess) child).getAccessedType()); } else { ctConstructorCall.addActualTypeArgument(((CtTypeAccess) child).getAccessedType()); } return; } else if (child instanceof CtExpression) { if (hasChildEqualsToEnclosingInstance(ctConstructorCall)) { ctConstructorCall.setTarget((CtExpression<?>) child); } else { ctConstructorCall.addArgument((CtExpression<?>) child); } return; } super.visitCtConstructorCall(ctConstructorCall); }