< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java

Print this page
@@ -131,10 +131,14 @@
  
          /** While-loops, of type WhileLoop.
           */
          WHILELOOP,
  
+         /** Withfields, of type WithField.
+          */
+         WITHFIELD,
+ 
          /** For-loops, of type ForLoop.
           */
          FORLOOP,
  
          /** Foreach-loops, of type ForeachLoop.

@@ -255,10 +259,14 @@
  
          /** Selections, of type Select.
           */
          SELECT,
  
+         /** Default values, of type DefaultValueTree.
+          */
+         DEFAULT_VALUE,
+ 
          /** Member references, of type Reference.
           */
          REFERENCE,
  
          /** Simple identifiers, of type Ident.

@@ -883,10 +891,13 @@
          public JCBlock body;
          /** default value, for annotation types */
          public JCExpression defaultValue;
          /** method symbol */
          public MethodSymbol sym;
+         /** nascent value that evolves into the return value for a value factory */
+         public VarSymbol factoryProduct;
+ 
          /** does this method completes normally */
          public boolean completesNormally;
  
          protected JCMethodDecl(JCModifiers mods,
                              Name name,

@@ -950,10 +961,14 @@
  
          @Override
          public Tag getTag() {
              return METHODDEF;
          }
+ 
+         public boolean isInitOrVNew() {
+             return name.table.names.isInitOrVNew(name);
+         }
    }
  
      /**
       * A variable definition.
       */

@@ -1170,10 +1185,40 @@
          public Tag getTag() {
              return WHILELOOP;
          }
      }
  
+     /**
+      * A withfield expression
+      */
+     public static class JCWithField extends JCExpression implements WithFieldTree {
+         public JCExpression field;
+         public JCExpression value;
+         protected JCWithField(JCExpression field, JCExpression value) {
+             this.field = field;
+             this.value = value;
+         }
+         @Override
+         public void accept(Visitor v) { v.visitWithField(this); }
+ 
+         @DefinedBy(Api.COMPILER_TREE)
+         public Kind getKind() { return Kind.WITH_FIELD; }
+         @DefinedBy(Api.COMPILER_TREE)
+         public JCExpression getField() { return field; }
+         @DefinedBy(Api.COMPILER_TREE)
+         public JCExpression getValue() { return value; }
+         @Override @DefinedBy(Api.COMPILER_TREE)
+         public <R,D> R accept(TreeVisitor<R,D> v, D d) {
+             return v.visitWithField(this, d);
+         }
+ 
+         @Override
+         public Tag getTag() {
+             return WITHFIELD;
+         }
+     }
+ 
      /**
       * A for loop.
       */
      public static class JCForLoop extends JCStatement implements ForLoopTree {
          public List<JCStatement> init;

@@ -1377,10 +1422,36 @@
          public Tag getTag() {
              return CASE;
          }
      }
  
+     /**
+      * A "Identifier<TA1, TA2>.default" construction.
+      */
+     public static class JCDefaultValue extends JCPolyExpression implements DefaultValueTree {
+         public JCExpression clazz;
+ 
+         protected JCDefaultValue(JCExpression clazz) {
+             this.clazz = clazz;
+         }
+         @Override
+         public void accept(Visitor v) { v.visitDefaultValue(this); }
+ 
+         @DefinedBy(Api.COMPILER_TREE)
+         public Kind getKind() { return Kind.DEFAULT_VALUE; }
+         @Override @DefinedBy(Api.COMPILER_TREE)
+         public JCExpression getType() { return clazz; }
+         @Override @DefinedBy(Api.COMPILER_TREE)
+         public <R,D> R accept(TreeVisitor<R,D> v, D d) {
+             return v.visitDefaultValue(this, d);
+         }
+         @Override
+         public Tag getTag() {
+             return DEFAULT_VALUE;
+         }
+     }
+ 
      /**
       * A "switch ( ) { }" construction.
       */
      public static class JCSwitchExpression extends JCPolyExpression implements SwitchExpressionTree {
          public JCExpression selector;

@@ -3469,10 +3540,11 @@
          JCLabeledStatement Labelled(Name label, JCStatement body);
          JCSwitch Switch(JCExpression selector, List<JCCase> cases);
          JCSwitchExpression SwitchExpression(JCExpression selector, List<JCCase> cases);
          JCCase Case(CaseTree.CaseKind caseKind, List<JCCaseLabel> labels, JCExpression guard,
                      List<JCStatement> stats, JCTree body);
+         JCDefaultValue DefaultValue(JCExpression type);
          JCSynchronized Synchronized(JCExpression lock, JCBlock body);
          JCTry Try(JCBlock body, List<JCCatch> catchers, JCBlock finalizer);
          JCTry Try(List<JCTree> resources,
                    JCBlock body,
                    List<JCCatch> catchers,

@@ -3544,15 +3616,17 @@
          public void visitVarDef(JCVariableDecl that)         { visitTree(that); }
          public void visitSkip(JCSkip that)                   { visitTree(that); }
          public void visitBlock(JCBlock that)                 { visitTree(that); }
          public void visitDoLoop(JCDoWhileLoop that)          { visitTree(that); }
          public void visitWhileLoop(JCWhileLoop that)         { visitTree(that); }
+         public void visitWithField(JCWithField that)         { visitTree(that); }
          public void visitForLoop(JCForLoop that)             { visitTree(that); }
          public void visitForeachLoop(JCEnhancedForLoop that) { visitTree(that); }
          public void visitLabelled(JCLabeledStatement that)   { visitTree(that); }
          public void visitSwitch(JCSwitch that)               { visitTree(that); }
          public void visitCase(JCCase that)                   { visitTree(that); }
+         public void visitDefaultValue(JCDefaultValue that) { visitTree(that); }
          public void visitSwitchExpression(JCSwitchExpression that)               { visitTree(that); }
          public void visitSynchronized(JCSynchronized that)   { visitTree(that); }
          public void visitTry(JCTry that)                     { visitTree(that); }
          public void visitCatch(JCCatch that)                 { visitTree(that); }
          public void visitConditional(JCConditional that)     { visitTree(that); }
< prev index next >