test/langtools/tools/javac/api/ast/ASTBuilder.java
branchjlahoda-tree-builder
changeset 57300 c79e191854e4
parent 57298 72d5f7163f12
--- a/test/langtools/tools/javac/api/ast/ASTBuilder.java	Mon Apr 01 14:46:17 2019 +0200
+++ b/test/langtools/tools/javac/api/ast/ASTBuilder.java	Tue Apr 02 16:51:25 2019 +0200
@@ -35,8 +35,10 @@
 
 import java.net.URI;
 import java.util.Arrays;
+import java.util.EnumSet;
 import java.util.function.Consumer;
 
+import javax.lang.model.element.Modifier;
 import javax.tools.JavaCompiler;
 import javax.tools.JavaFileObject;
 import javax.tools.SimpleJavaFileObject;
@@ -57,16 +59,27 @@
 import com.sun.source.tree.MemberReferenceTree;
 import com.sun.source.tree.MemberSelectTree;
 import com.sun.source.tree.MethodTree;
+import com.sun.source.tree.ModifiersTree;
 import com.sun.source.tree.VariableTree;
 import toolbox.ToolBox.MemoryFileManager;
 
 public class ASTBuilder {
     
     public static void main(String[] args) throws Exception {
-        runTest("class Test {" +
-                "    int x;" +
+        runTest("public class Test {" +
+                "    public static volatile int x;" +
                 "}",
-                U -> U._class("Test", C -> C.field("x", Type::_int)));
+                U -> U._class("Test",
+                              C -> C.modifiers(M -> M.modifier(Modifier.PUBLIC))
+                                    .field("x",
+                                           Type::_int,
+                                           F -> F.modifiers(M -> M.modifier(Modifier.PUBLIC)
+                                                                  .modifier(Modifier.STATIC)
+                                                                  .modifier(Modifier.VOLATILE)
+                                                           )
+                                          )
+                             )
+                );
         runTest("class Test extends Exception implements java.util.List<Map<String, String>>, CharSequence {" +
                 "    int x1 = 2;" +
                 "    int x2 = 2 + x1;" +
@@ -239,6 +252,11 @@
                 result.append(node.getName());
                 return super.visitVariable(node, p);
             }
+            @Override
+            public Void visitModifiers(ModifiersTree node, Void p) {
+                result.append(node.getFlags());
+                return super.visitModifiers(node, p);
+            }
         }.scan(t, null);
         return result.toString();
     }