public Choice<State<List<JCStatement>>> unifyStatements( @Nullable Iterable<? extends StatementTree> nodes, State<?> state) { return chooseSubtrees( state, s -> unify(nodes, s), stmts -> List.convert(JCStatement.class, stmts)); }
/** * Returns all the ways this placeholder invocation might unify with the specified list of trees. */ public Choice<State<List<JCExpression>>> unifyExpressions( @Nullable Iterable<? extends ExpressionTree> nodes, State<?> state) { return unify(nodes, state) .transform(s -> s.withResult(List.convert(JCExpression.class, s.result()))); }
@Override public JCModifiers inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .Modifiers( flagBits(), List.convert(JCAnnotation.class, inliner.inlineList(getAnnotations()))); }
@Override public JCAnnotatedType inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .AnnotatedType( List.convert(JCAnnotation.class, inliner.inlineList(getAnnotations())), getUnderlyingType().inline(inliner)); }
@Override public JCClassDecl inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .AnonymousClassDef( inliner.maker().Modifiers(0L), List.convert(JCTree.class, inliner.inlineList(getMembers()))); }
@Override public Choice<State<JCLambda>> visitLambdaExpression( final LambdaExpressionTree node, State<?> state) { return chooseSubtrees( state, s -> unify(node.getBody(), s), body -> maker() .Lambda( List.convert( JCVariableDecl.class, (List<? extends VariableTree>) node.getParameters()), body)); }
@Override public Choice<State<JCSwitch>> visitSwitch(final SwitchTree node, State<?> state) { return chooseSubtrees( state, s -> unifyExpression(node.getExpression(), s), s -> unify(node.getCases(), s), (expr, cases) -> maker().Switch(expr, List.convert(JCCase.class, cases))); }
public List<JCVariableDecl> inlineParams(Inliner inliner) throws CouldNotResolveImportException { if (parameterKind() == ParameterKind.EXPLICIT) { return List.convert(JCVariableDecl.class, inliner.inlineList(getParameters())); } ListBuffer<JCVariableDecl> params = new ListBuffer<>(); for (UVariableDecl param : getParameters()) { params.add(param.inlineImplicitType(inliner)); } return params.toList(); }
@Override public Choice<State<JCMemberReference>> visitMemberReference( final MemberReferenceTree node, State<?> state) { return chooseSubtrees( state, s -> unifyExpression(node.getQualifierExpression(), s), expr -> maker() .Reference( node.getMode(), (Name) node.getName(), expr, List.convert( JCExpression.class, (List<? extends ExpressionTree>) node.getTypeArguments()))); } }
@Override public Choice<State<JCForLoop>> visitForLoop(final ForLoopTree node, State<?> state) { return chooseSubtrees( state, s -> unifyStatements(node.getInitializer(), s), s -> unifyExpression(node.getCondition(), s), s -> unifyStatements(node.getUpdate(), s), s -> unifyStatement(node.getStatement(), s), (inits, cond, update, stmt) -> maker().ForLoop(inits, cond, List.convert(JCExpressionStatement.class, update), stmt)); }
@Override public JCForLoop inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .ForLoop( UBlock.inlineStatementList(getInitializer(), inliner), (getCondition() == null) ? null : getCondition().inline(inliner), com.sun.tools.javac.util.List.convert( JCExpressionStatement.class, inliner.<JCStatement>inlineList(getUpdate())), getStatement().inline(inliner)); } }
@Override public Choice<State<JCTry>> visitTry(final TryTree node, State<?> state) { return chooseSubtrees( state, s -> unify(node.getResources(), s), s -> unifyStatement(node.getBlock(), s), s -> unify(node.getCatches(), s), s -> unifyStatement(node.getFinallyBlock(), s), (resources, block, catches, finallyBlock) -> maker() .Try( resources, (JCBlock) block, List.convert(JCCatch.class, catches), (JCBlock) finallyBlock)); }
@Override public JCMethodDecl inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .MethodDef( getModifiers().inline(inliner), getName().inline(inliner), getReturnType().inline(inliner), List.<JCTypeParameter>nil(), List.convert(JCVariableDecl.class, inliner.inlineList(getParameters())), inliner.<JCExpression>inlineList(getThrows()), getBody().inline(inliner), null); }
public Choice<State<List<JCStatement>>> unifyStatements( @Nullable Iterable<? extends StatementTree> nodes, State<?> state) { return chooseSubtrees( state, s -> unify(nodes, s), stmts -> List.convert(JCStatement.class, stmts)); }
/** * Returns all the ways this placeholder invocation might unify with the specified list of trees. */ public Choice<State<List<JCExpression>>> unifyExpressions( @Nullable Iterable<? extends ExpressionTree> nodes, State<?> state) { return unify(nodes, state) .transform(s -> s.withResult(List.convert(JCExpression.class, s.result()))); }
@Override public JCModifiers inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .Modifiers( flagBits(), List.convert(JCAnnotation.class, inliner.inlineList(getAnnotations()))); }
@Override public JCAnnotatedType inline(Inliner inliner) throws CouldNotResolveImportException { return inliner .maker() .AnnotatedType( List.convert(JCAnnotation.class, inliner.inlineList(getAnnotations())), getUnderlyingType().inline(inliner)); }
@Override public Choice<State<JCSwitch>> visitSwitch(final SwitchTree node, State<?> state) { return chooseSubtrees( state, s -> unifyExpression(node.getExpression(), s), s -> unify(node.getCases(), s), (expr, cases) -> maker().Switch(expr, List.convert(JCCase.class, cases))); }
public List<JCVariableDecl> inlineParams(Inliner inliner) throws CouldNotResolveImportException { if (parameterKind() == ParameterKind.EXPLICIT) { return List.convert(JCVariableDecl.class, inliner.inlineList(getParameters())); } ListBuffer<JCVariableDecl> params = new ListBuffer<>(); for (UVariableDecl param : getParameters()) { params.add(param.inlineImplicitType(inliner)); } return params.toList(); }
@Override public Choice<State<JCForLoop>> visitForLoop(final ForLoopTree node, State<?> state) { return chooseSubtrees( state, s -> unifyStatements(node.getInitializer(), s), s -> unifyExpression(node.getCondition(), s), s -> unifyStatements(node.getUpdate(), s), s -> unifyStatement(node.getStatement(), s), (inits, cond, update, stmt) -> maker().ForLoop(inits, cond, List.convert(JCExpressionStatement.class, update), stmt)); }