@Override public void visitInitializer(Initializer node) { if ((node.modifiers & ClassFileConstants.AccStatic) != 0) { lombok.ast.StaticInitializer staticInit = new lombok.ast.StaticInitializer(); staticInit.astBody((lombok.ast.Block) toTree(node.block)); staticInit.setPosition(toPosition(node.declarationSourceStart, node.sourceEnd)); set(node, staticInit); return; } else { lombok.ast.InstanceInitializer instanceInit = new lombok.ast.InstanceInitializer(); instanceInit.astBody((lombok.ast.Block) toTree(node.block)); set(node, setPosition(node, instanceInit)); return; } }
public Node createStaticInitializer(Node body) { return posify(new StaticInitializer().rawBody(body)); }
public void checkStaticInitializerInNonStaticType(StaticInitializer node) { TypeDeclaration parent = node.upUpToTypeDeclaration(); if (parent != null) { if (!parent.astModifiers().isStatic()) { node.addMessage(error(INITIALIZER_STATIC_IN_NON_STATIC_TYPE, "static initializers are only allowed in top-level or static types declarations.")); } } }
@Override public void visitBlock(JCBlock node) { Node n; Block b = new Block(); fillList(node.stats, b.rawContents()); setPos(node, b); if (hasFlag(FlagKey.BLOCKS_ARE_INITIALIZERS)) { if ((node.flags & Flags.STATIC) != 0) { n = setPos(node, new StaticInitializer().astBody(b)); } else { // For some strange reason, solitary ; in a type body are represented not as JCSkips, but as JCBlocks with no endpos. Don't ask me why! if (b.rawContents().isEmpty() && node.endpos == -1) { n = setPos(node, new EmptyDeclaration()); } else { n = setPos(node, new InstanceInitializer().astBody(b)); } } } else { n = b; } set(node, n); }
public void initializersMustCompleteNormallyStatic(StaticInitializer node) { initializersMustCompleteNormally(node.rawBody()); }
@Override public boolean visitStaticInitializer(StaticInitializer node) { JCBlock block = (JCBlock) toTree(node.astBody()); block.flags |= Flags.STATIC; return posSet(node, block); }
public void checkStaticInitializerInNonStaticType(StaticInitializer node) { TypeDeclaration parent = node.upUpToTypeDeclaration(); if (parent != null) { if (!parent.astModifiers().isStatic()) { node.addMessage(error(INITIALIZER_STATIC_IN_NON_STATIC_TYPE, "static initializers are only allowed in top-level or static types declarations.")); } } }
@Override public void visitBlock(JCBlock node) { Node n; Block b = new Block(); fillList(node.stats, b.rawContents()); setPos(node, b); if (hasFlag(FlagKey.BLOCKS_ARE_INITIALIZERS)) { if ((node.flags & Flags.STATIC) != 0) { n = setPos(node, new StaticInitializer().astBody(b)); } else { // For some strange reason, solitary ; in a type body are represented not as JCSkips, but as JCBlocks with no endpos. Don't ask me why! if (b.rawContents().isEmpty() && node.endpos == -1) { n = setPos(node, new EmptyDeclaration()); } else { n = setPos(node, new InstanceInitializer().astBody(b)); } } } else { n = b; } set(node, n); }
public void initializersMustCompleteNormallyStatic(StaticInitializer node) { initializersMustCompleteNormally(node.rawBody()); }
@Override public boolean visitStaticInitializer(StaticInitializer node) { JCBlock block = (JCBlock) toTree(node.astBody()); block.flags |= Flags.STATIC; return posSet(node, block); }
@Override public void visitInitializer(Initializer node) { if ((node.modifiers & ClassFileConstants.AccStatic) != 0) { lombok.ast.StaticInitializer staticInit = new lombok.ast.StaticInitializer(); staticInit.astBody((lombok.ast.Block) toTree(node.block)); staticInit.setPosition(toPosition(node.declarationSourceStart, node.sourceEnd)); set(node, staticInit); return; } else { lombok.ast.InstanceInitializer instanceInit = new lombok.ast.InstanceInitializer(); instanceInit.astBody((lombok.ast.Block) toTree(node.block)); set(node, setPosition(node, instanceInit)); return; } }
public void checkStaticInitializerInNonStaticType(StaticInitializer node) { TypeDeclaration parent = node.upUpToTypeDeclaration(); if (parent != null) { if (!parent.astModifiers().isStatic()) { node.addMessage(error(INITIALIZER_STATIC_IN_NON_STATIC_TYPE, "static initializers are only allowed in top-level or static types declarations.")); } } }
public Node createStaticInitializer(Node body) { return posify(new StaticInitializer().rawBody(body)); }
@Override public void visitBlock(JCBlock node) { Node n; Block b = new Block(); fillList(node.stats, b.rawContents()); setPos(node, b); if (hasFlag(FlagKey.BLOCKS_ARE_INITIALIZERS)) { if ((node.flags & Flags.STATIC) != 0) { n = setPos(node, new StaticInitializer().astBody(b)); } else { // For some strange reason, solitary ; in a type body are represented not as JCSkips, but as JCBlocks with no endpos. Don't ask me why! if (b.rawContents().isEmpty() && node.endpos == -1) { n = setPos(node, new EmptyDeclaration()); } else { n = setPos(node, new InstanceInitializer().astBody(b)); } } } else { n = b; } set(node, n); }
public void initializersMustCompleteNormallyStatic(StaticInitializer node) { initializersMustCompleteNormally(node.rawBody()); }
@Override public boolean visitStaticInitializer(StaticInitializer node) { JCBlock block = (JCBlock) toTree(node.astBody()); block.flags |= Flags.STATIC; return posSet(node, block); }
@Override public void visitInitializer(Initializer node) { if ((node.modifiers & ClassFileConstants.AccStatic) != 0) { lombok.ast.StaticInitializer staticInit = new lombok.ast.StaticInitializer(); staticInit.astBody((lombok.ast.Block) toTree(node.block)); staticInit.setPosition(toPosition(node.declarationSourceStart, node.sourceEnd)); set(node, staticInit); return; } else { lombok.ast.InstanceInitializer instanceInit = new lombok.ast.InstanceInitializer(); instanceInit.astBody((lombok.ast.Block) toTree(node.block)); set(node, setPosition(node, instanceInit)); return; } }
public Node createStaticInitializer(Node body) { return posify(new StaticInitializer().rawBody(body)); }
@Override public boolean visitStaticInitializer(StaticInitializer node) { formatter.buildBlock(node); formatter.keyword("static"); formatter.space(); formatter.startSuppressBlock(); visit(node.rawBody()); formatter.endSuppressBlock(); formatter.closeBlock(); return true; }
@Override public boolean visitStaticInitializer(lombok.ast.StaticInitializer node) { Initializer init = new Initializer((Block) toTree(node.astBody()), ClassFileConstants.AccStatic); init.declarationSourceStart = start(node); init.sourceStart = start(node.astBody()); init.sourceEnd = init.declarationSourceEnd = end(node); init.bodyStart = init.sourceStart + 1; init.bodyEnd = init.sourceEnd - 1; return set(node, init); }