public void visitCall(Call call) { ExecutableElement method = call.getResolvedMethod(); CodeTree[] parameters = new CodeTree[method.getParameters().size()]; for (int i = 0; i < parameters.length; i++) { parameters[parameters.length - i - 1] = pop(); } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); if (call.getResolvedMethod().getKind() == ElementKind.CONSTRUCTOR) { builder.startNew(call.getResolvedType()); } else if (call.getReceiver() == null) { if (isStatic(method)) { builder.startStaticCall(method); } else { if (root != null) { builder.tree(root).string("."); } builder.startCall(method.getSimpleName().toString()); } } else { if (isStatic(method)) { throw new AssertionError("Static calls must not have receivers."); } builder.startCall(pop(), method.getSimpleName().toString()); } for (CodeTree parameter : parameters) { builder.tree(parameter); } builder.end(); push(builder.build()); }
public void visitCall(Call call) { ExecutableElement method = call.getResolvedMethod(); CodeTree[] parameters = new CodeTree[method.getParameters().size()]; for (int i = 0; i < parameters.length; i++) { parameters[parameters.length - i - 1] = pop(); } CodeTreeBuilder builder = CodeTreeBuilder.createBuilder(); if (call.getResolvedMethod().getKind() == ElementKind.CONSTRUCTOR) { builder.startNew(call.getResolvedType()); } else if (call.getReceiver() == null) { if (isStatic(method)) { builder.startStaticCall(method); } else { if (root != null) { builder.tree(root).string("."); } builder.startCall(method.getSimpleName().toString()); } } else { if (isStatic(method)) { throw new AssertionError("Static calls must not have receivers."); } builder.startCall(pop(), method.getSimpleName().toString()); } for (CodeTree parameter : parameters) { builder.tree(parameter); } builder.end(); push(builder.build()); }