@Override public JCBlock inline(Inliner inliner) throws CouldNotResolveImportException { return inliner.maker().Block(0, inlineStatementList(getStatements(), inliner)); }
@Override public Choice<State<JCBlock>> visitBlock(BlockTree node, State<?> state) { return chooseSubtrees( state, s -> unifyStatements(node.getStatements(), s), stmts -> maker().Block(0, stmts)); }
JCTree inlineBody(Inliner inliner) throws CouldNotResolveImportException { if (getBody() instanceof UPlaceholderExpression) { UPlaceholderExpression body = (UPlaceholderExpression) getBody(); Optional<List<JCStatement>> blockBinding = inliner.getOptionalBinding(body.placeholder().blockKey()); if (blockBinding.isPresent()) { // this lambda is of the form args -> blockPlaceholder(); List<JCStatement> blockInlined = UPlaceholderExpression.copier(body.arguments(), inliner) .copy(blockBinding.get(), inliner); if (blockInlined.size() == 1) { if (blockInlined.get(0) instanceof JCReturn) { return ((JCReturn) blockInlined.get(0)).getExpression(); } else if (blockInlined.get(0) instanceof JCExpressionStatement) { return ((JCExpressionStatement) blockInlined.get(0)).getExpression(); } } return inliner.maker().Block(0, blockInlined); } } return getBody().inline(inliner); }
@Override public Void visitClass(ClassTree node, Context context) { Symbol sym = ASTHelpers.getSymbol(node); if (sym == null || !sym.getQualifiedName().contentEquals(rule().qualifiedTemplateClass())) { ListBuffer<JCStatement> statements = new ListBuffer<>(); for (Tree tree : node.getMembers()) { if (tree instanceof JCStatement) { statements.append((JCStatement) tree); } else { tree.accept(this, context); } } scan(TreeMaker.instance(context).Block(0, statements.toList()), context); } return null; }
@Override public boolean visitBlock(Block node) { return posSet(node, treeMaker.Block(0, toList(JCStatement.class, node.astContents()))); }
@Override public boolean visitBlock(Block node) { return posSet(node, treeMaker.Block(0, toList(JCStatement.class, node.astContents()))); }
@Override public boolean visitBlock(Block node) { return posSet(node, treeMaker.Block(0, toList(JCStatement.class, node.astContents()))); }
public JCTree visitBlock(BlockTree node, P p) { JCBlock t = (JCBlock) node; List<JCStatement> stats = copy(t.stats, p); return M.at(t.pos).Block(t.flags, stats); }
public JCTree visitBlock(BlockTree node, P p) { JCBlock t = (JCBlock) node; List<JCStatement> stats = copy(t.stats, p); return M.at(t.pos).Block(t.flags, stats); }
public JCTree visitBlock(BlockTree node, P p) { JCBlock t = (JCBlock) node; List<JCStatement> stats = copy(t.stats, p); return M.at(t.pos).Block(t.flags, stats); }
public JCTree visitBlock(BlockTree node, P p) { JCBlock t = (JCBlock) node; List<JCStatement> stats = copy(t.stats, p); return M.at(t.pos).Block(t.flags, stats); }
@Override public boolean visitEmptyDeclaration(EmptyDeclaration node) { if (node.getParent() instanceof CompilationUnit) { return posSet(node, treeMaker.Skip()); } return set(node, posNone(treeMaker.Block(0, List.<JCStatement>nil()))); } };
@Override public boolean visitEmptyDeclaration(EmptyDeclaration node) { if (node.getParent() instanceof CompilationUnit) { return posSet(node, treeMaker.Skip()); } return set(node, posNone(treeMaker.Block(0, List.<JCStatement>nil()))); } };
@Override public boolean visitEmptyDeclaration(EmptyDeclaration node) { if (node.getParent() instanceof CompilationUnit) { return posSet(node, treeMaker.Skip()); } return set(node, posNone(treeMaker.Block(0, List.<JCStatement>nil()))); } };
@Override public JCBlock inline(Inliner inliner) throws CouldNotResolveImportException { return inliner.maker().Block(0, inlineStatementList(getStatements(), inliner)); }
public BlockTree Block(List<? extends StatementTree> statements, boolean isStatic) { ListBuffer<JCStatement> lb = new ListBuffer<JCStatement>(); for (StatementTree t : statements) lb.append((JCStatement)t); return make.at(NOPOS).Block(isStatic ? Flags.STATIC : 0L, lb.toList()); }
@Override public Choice<State<JCBlock>> visitBlock(BlockTree node, State<?> state) { return chooseSubtrees( state, s -> unifyStatements(node.getStatements(), s), stmts -> maker().Block(0, stmts)); }
private JCTree.JCStatement buildBootstrapStaticBlock() { TreeMaker make = _javacJacker.getTreeMaker(); JavacElements javacElems = _javacJacker.getJavacElements(); JCTree.JCMethodInvocation bootstrapInitCall = make.Apply( List.nil(), memberAccess( make, javacElems, Bootstrap.class.getName() + ".init" ), List.nil() ); return make.Block( Modifier.STATIC, List.of( make.Exec( bootstrapInitCall ) ) ); }
private MethodSymbol addEnumFieldNameMethod(JCClassDecl cdef, VarSymbol nameSymbol) { // Add the accessor methods for name Symbol nameSym = lookupMethod(cdef.pos(), names._name, cdef.type, List.<Type>nil()); assert(nameSym != null); assert(nameSym instanceof MethodSymbol); JCStatement ret = make.Return(make.Ident(nameSymbol)); cdef.defs = cdef.defs.append(make.MethodDef((MethodSymbol)nameSym, make.Block(0L, List.of(ret)))); return (MethodSymbol)nameSym; }
private MethodSymbol addEnumFieldOrdinalMethod(JCClassDecl cdef, VarSymbol ordinalSymbol) { // Add the accessor methods for ordinal Symbol ordinalSym = lookupMethod(cdef.pos(), names.ordinal, cdef.type, List.<Type>nil()); assert(ordinalSym != null); assert(ordinalSym instanceof MethodSymbol); JCStatement ret = make.Return(make.Ident(ordinalSymbol)); cdef.defs = cdef.defs.append(make.MethodDef((MethodSymbol)ordinalSym, make.Block(0L, List.of(ret)))); return (MethodSymbol)ordinalSym; }