@Override public void endVisit(JNewInstance x, Context ctx) { flowInto(x.getTarget()); assert !x.getEnclosingType().isExternal() : "External type, "+x.getEnclosingType()+", set to enclose "+x.getTarget() +" for "+x.getTarget().getEnclosingType().toSource(); }
private static Optional<JNewInstance> newInstance(final TreeLogger logger, final SourceInfo sourceInfo, final UnifyAstView ast, final JDeclaredType answerType) { final Optional<JMethod> ctor = FluentIterable.from(answerType.getMethods()).firstMatch((m)->m.isConstructor() && m.getParams().size() == 0); if (ctor.isPresent()) { final JNewInstance result = new JNewInstance(sourceInfo, (JConstructor)ctor.get()); return Optional.of(result); } else { return Optional.absent(); } }
@Override public boolean visit(JNewInstance x, Context ctx) { x.getTarget().traverse(this, ctx); return false; }
/** * @param ast * @param logger * @param callSite * @return * @throws UnableToCompleteException */ public JExpression throwNotFoundException(final TreeLogger logger, final JMethodCall callSite, final UnifyAstView ast) throws UnableToCompleteException { final SourceInfo sourceInfo = callSite.getSourceInfo().makeChild(); final MemberPoolMethods memberMap = memberPoolMethods.get(); final IsQualified exceptionType = getNotFoundExceptionType(); final JConstructor ctor = memberMap.findConstructor(logger, exceptionType.getQualifiedName(), exceptionType.getSimpleName()+"() <init>", ast); final JNewInstance newThrowable = new JNewInstance(sourceInfo, ctor); final JMethod throwMethod = memberMap.getThrowMethod(logger, ast); return new JMethodCall(sourceInfo, null, throwMethod, newThrowable); }
@Override public boolean visit(JNewInstance x, Context ctx) { x.getTarget().traverse(this, ctx); return false; }
if (ctor instanceof JConstructor) { final JMethodCall create = new JMethodCall(info, null, createMethod, new JNewInstance(info, (JConstructor)ctor)); ast.translate(providerType); return create;
assert b.isConstructor(); JConstructor ctor = (JConstructor) typeMap.get(b); JMethodCall call = new JNewInstance(info, ctor, curClass.type); JExpression qualExpr = pop(qualifier);