public void run(final AstNode root) { if (!(root instanceof MethodDeclaration)) { throw new IllegalArgumentException("InliningVisitor must be run against a MethodDeclaration."); } final MethodDeclaration clone = (MethodDeclaration) root.clone(); super.run(clone); final BlockStatement body = clone.getBody(); final AstNodeCollection<Statement> statements = body.getStatements(); if (statements.size() == 1) { final Statement firstStatement = statements.firstOrNullObject(); if (firstStatement instanceof ExpressionStatement || firstStatement instanceof ReturnStatement) { _result = firstStatement.getChildByRole(Roles.EXPRESSION); _result.remove(); return; } } _result = body; _result.remove(); }
public void run(final AstNode root) { if (!(root instanceof MethodDeclaration)) { throw new IllegalArgumentException("InliningVisitor must be run against a MethodDeclaration."); } final MethodDeclaration clone = (MethodDeclaration) root.clone(); super.run(clone); final BlockStatement body = clone.getBody(); final AstNodeCollection<Statement> statements = body.getStatements(); if (statements.size() == 1) { final Statement firstStatement = statements.firstOrNullObject(); if (firstStatement instanceof ExpressionStatement || firstStatement instanceof ReturnStatement) { _result = firstStatement.getChildByRole(Roles.EXPRESSION); _result.remove(); return; } } _result = body; _result.remove(); }
public void run(final AstNode root) { if (!(root instanceof MethodDeclaration)) { throw new IllegalArgumentException("InliningVisitor must be run against a MethodDeclaration."); } final MethodDeclaration clone = (MethodDeclaration) root.clone(); super.run(clone); final BlockStatement body = clone.getBody(); final AstNodeCollection<Statement> statements = body.getStatements(); if (statements.size() == 1) { final Statement firstStatement = statements.firstOrNullObject(); if (firstStatement instanceof ExpressionStatement || firstStatement instanceof ReturnStatement) { _result = firstStatement.getChildByRole(Roles.EXPRESSION); _result.remove(); return; } } _result = body; _result.remove(); }
@Override public Void visitLabelStatement(final LabelStatement node, final Void data) { super.visitLabelStatement(node, data); final Statement next = node.getNextStatement(); if (next == null) { return null; } if (next instanceof LabelStatement || next instanceof LabeledStatement) { // // We have back-to-back labels; dump the first and redirect its references to the second. // final String nextLabel = next.getChildByRole(Roles.LABEL).getName(); redirectLabels(node.getParent(), node.getLabel(), nextLabel); node.remove(); } else { // // Replace LabelStatement with LabeledStatement. // next.remove(); node.replaceWith( new LabeledStatement( node.getLabel(), AstNode.isLoop(next) ? next : new BlockStatement(next) ) ); } return null; }
@Override public Void visitLabelStatement(final LabelStatement node, final Void data) { super.visitLabelStatement(node, data); final Statement next = node.getNextStatement(); if (next == null) { return null; } if (next instanceof LabelStatement || next instanceof LabeledStatement) { // // We have back-to-back labels; dump the first and redirect its references to the second. // final String nextLabel = next.getChildByRole(Roles.LABEL).getName(); redirectLabels(node.getParent(), node.getLabel(), nextLabel); node.remove(); } else { // // Replace LabelStatement with LabeledStatement. // next.remove(); node.replaceWith( new LabeledStatement( node.getLabel(), AstNode.isLoop(next) ? next : new BlockStatement(next) ) ); } return null; }
@Override public Void visitLabelStatement(final LabelStatement node, final Void data) { super.visitLabelStatement(node, data); final Statement next = node.getNextStatement(); if (next == null) { return null; } if (next instanceof LabelStatement || next instanceof LabeledStatement) { // // We have back-to-back labels; dump the first and redirect its references to the second. // final String nextLabel = next.getChildByRole(Roles.LABEL).getName(); redirectLabels(node.getParent(), node.getLabel(), nextLabel); node.remove(); } else { // // Replace LabelStatement with LabeledStatement. // next.remove(); node.replaceWith( new LabeledStatement( node.getLabel(), AstNode.isLoop(next) ? next : new BlockStatement(next) ) ); } return null; }
(firstStatement instanceof ExpressionStatement || firstStatement instanceof ReturnStatement)) { final Expression simpleBody = firstStatement.getChildByRole(Roles.EXPRESSION);
(firstStatement instanceof ExpressionStatement || firstStatement instanceof ReturnStatement)) { final Expression simpleBody = firstStatement.getChildByRole(Roles.EXPRESSION);
(firstStatement instanceof ExpressionStatement || firstStatement instanceof ReturnStatement)) { final Expression simpleBody = firstStatement.getChildByRole(Roles.EXPRESSION);
node.getNextStatement() instanceof ForStatement; final Expression condition = node.getNextStatement().getChildByRole(Roles.CONDITION);
node.getNextStatement() instanceof ForStatement; final Expression condition = node.getNextStatement().getChildByRole(Roles.CONDITION);
node.getNextStatement() instanceof ForStatement; final Expression condition = node.getNextStatement().getChildByRole(Roles.CONDITION);