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 } |