langtools/test/tools/javac/6440583/T6440583.java
changeset 27319 030080f03e4f
parent 5520 86e4b9a9da40
child 30730 d3ce7619db2c
equal deleted inserted replaced
27318:4660a5da7d90 27319:030080f03e4f
     1 /*
     1 /*
     2  * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    38 public class T6440583 {
    38 public class T6440583 {
    39     public static void main(String... args) throws Exception {
    39     public static void main(String... args) throws Exception {
    40         String testSrc = System.getProperty("test.src", ".");
    40         String testSrc = System.getProperty("test.src", ".");
    41         String testClasses = System.getProperty("test.classes", ".");
    41         String testClasses = System.getProperty("test.classes", ".");
    42         JavacTool tool = JavacTool.create();
    42         JavacTool tool = JavacTool.create();
    43         StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);
    43         try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
    44         Iterable<? extends JavaFileObject> files =
    44             Iterable<? extends JavaFileObject> files =
    45             fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, "A.java")));
    45                 fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, "A.java")));
    46         JavacTask task = tool.getTask(null, fm, null, null, null, files);
    46             JavacTask task = tool.getTask(null, fm, null, null, null, files);
    47 
    47 
    48         Iterable<? extends Tree> trees = task.parse();
    48             Iterable<? extends Tree> trees = task.parse();
    49 
    49 
    50         TreeScanner<Boolean,Void> checker = new TreeScanner<Boolean,Void>() {
    50             TreeScanner<Boolean,Void> checker = new TreeScanner<Boolean,Void>() {
    51             public Boolean visitErroneous(ErroneousTree tree, Void ignore) {
    51                 public Boolean visitErroneous(ErroneousTree tree, Void ignore) {
    52                 JCErroneous etree = (JCErroneous) tree;
    52                     JCErroneous etree = (JCErroneous) tree;
    53                 List<? extends Tree> errs = etree.getErrorTrees();
    53                     List<? extends Tree> errs = etree.getErrorTrees();
    54                 System.err.println("errs: " + errs);
    54                     System.err.println("errs: " + errs);
    55                 if (errs == null || errs.size() == 0)
    55                     if (errs == null || errs.size() == 0)
    56                     throw new AssertionError("no error trees found");
    56                         throw new AssertionError("no error trees found");
    57                 found = true;
    57                     found = true;
    58                 return true;
    58                     return true;
    59             }
    59                 }
    60         };
    60             };
    61 
    61 
    62         for (Tree tree: trees)
    62             for (Tree tree: trees)
    63             checker.scan(tree, null);
    63                 checker.scan(tree, null);
    64 
    64 
    65         if (!found)
    65             if (!found)
    66             throw new AssertionError("no ErroneousTree nodes found");
    66                 throw new AssertionError("no ErroneousTree nodes found");
       
    67         }
    67     }
    68     }
    68 
    69 
    69     private static boolean found;
    70     private static boolean found;
    70 }
    71 }