@Override public int getEndPosition(EndPosTable endPositions) { return position.getEndPosition(endPositions) + endPositionAdjustment; } }
/** * Returns a start position of given {@code tree}. * * <p>The only purpose of this method is to avoid doing a hacky casting to {@link JCTree}. */ private static int getStartPosition(Tree tree) { return ((JCTree) tree).getStartPosition(); } }
private static JCIdent createIdent(TreeMaker treeMaker, Symbol symbol) { JCIdent newFieldIdent = treeMaker.Ident(symbol.name); newFieldIdent.type = symbol.type; newFieldIdent.sym = symbol; return newFieldIdent; }
@Override public void printStat(JCTree tree) throws IOException { if (tree instanceof JCExpressionStatement && ((JCExpressionStatement) tree).getExpression() instanceof JCMethodInvocation) { JCMethodInvocation invocation = (JCMethodInvocation) ((JCExpressionStatement) tree).getExpression(); JCExpression select = invocation.getMethodSelect(); if (select != null && select.toString().equals("Refaster.emitComment")) { String commentLiteral = (String) ((JCLiteral) invocation.getArguments().get(0)).getValue(); print("// " + commentLiteral); return; } } super.printStat(tree); }
public TreeMaker maker() { return TreeMaker.instance(context); }
@Override public Choice<State<JCBinary>> visitBinary(final BinaryTree node, State<?> state) { final Tag tag = ((JCBinary) node).getTag(); return chooseSubtrees( state, s -> unifyExpression(node.getLeftOperand(), s), s -> unifyExpression(node.getRightOperand(), s), (l, r) -> maker().Binary(tag, l, r)); }
private List<String> getAllImports(Inliner inliner) { List<String> allImports = new ArrayList<>(inliner.getImportsToAdd()); if (inliner.getContext() != null && inliner.getContext().get(JCCompilationUnit.class) != null) { for (JCImport jcImport : inliner.getContext().get(JCCompilationUnit.class).getImports()) { JCFieldAccess qualified = (JCFieldAccess) jcImport.getQualifiedIdentifier(); allImports.add(qualified.toString()); } } return allImports; }
public JCExpression defaultNegation(Tree expr) { return maker.Unary(JCTree.Tag.NOT, (JCExpression) expr); }
@Override public void visitSelect(JCTree.JCFieldAccess tree) { super.visitSelect(tree); // check for qualified this/super references if (tree.name == names._this || tree.name == names._super) { canPossiblyBeStatic = false; } }
@Override public void visitReference(JCMemberReference tree) { super.visitReference(tree); if (tree.getMode() != ReferenceMode.NEW) { return; } if (memberOfEnclosing(owner, state, tree.expr.type.tsym)) { canPossiblyBeStatic = false; } }
public static ImportStatements create( JCCompilationUnit compilationUnit, ImportOrganizer importOrganizer) { return new ImportStatements( (JCExpression) compilationUnit.getPackageName(), compilationUnit.getImports(), compilationUnit.endPositions, importOrganizer); }
@SuppressWarnings("unchecked") // essentially depends on T being a superclass of JCExpression @Override public <T extends JCTree> T copy(T t, Void v) { if (t instanceof BinaryTree || t instanceof UnaryTree || t instanceof ConditionalExpressionTree) { return super.copy(t, v); } else { return (T) defaultNegation(t); } }
private void replaceFieldSelected(JCFieldAccess fieldAccess, JCMethodInvocation newShadowOfCall, VisitorState state) { int priorStartPosition = fieldAccess.selected.getStartPosition(); int priorEndPosition = getEndPosition(state, fieldAccess.selected); fieldAccess.selected = newShadowOfCall; newShadowOfCall.pos = priorStartPosition; if (newShadowOfCall.meth instanceof JCIdent) { ((JCIdent) newShadowOfCall.meth).pos = priorStartPosition; } setEndPosition(state, newShadowOfCall, priorEndPosition); }
private Tree skipLabel(JCTree tree) { return tree.hasTag(JCTree.Tag.LABELLED) ? ((JCTree.JCLabeledStatement) tree).body : tree; }
@Override public int getPreferredPosition() { return position.getPreferredPosition(); }
@Override public void visitThrow(JCThrow throwTree) { super.visitThrow(throwTree); throwTrees.add(throwTree); }
public TreeMaker getTreeMaker() { return TreeMaker.instance(context); }
@Override public int getStartPosition() { return position.getStartPosition() + startPositionAdjustment; }