50 " }" +
51 " int t2(Integer i) {" +
52 " return switch (i) {" +
53 " case null: break 0;" +
54 " case 0, 1: break 1;" +
55 " default: break 2;" +
56 " }" +
57 " }" +
58 "}";
59
60 public static void main(String[] args) throws Exception {
61 final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
62 assert tool != null;
63 DiagnosticListener<JavaFileObject> noErrors = d -> {};
64
65 for (int i = 0; i < CODE.length(); i++) {
66 String code = CODE.substring(0, i + 1);
67 StringWriter out = new StringWriter();
68 try {
69 JavacTask ct = (JavacTask) tool.getTask(out, null, noErrors,
70 List.of("-XDdev", "--enable-preview", "-source", "12"), null,
71 Arrays.asList(new MyFileObject(code)));
72 ct.parse().iterator().next();
73 } catch (Throwable t) {
74 System.err.println("Unexpected exception for code: " + code);
75 System.err.println("output: " + out);
76 throw t;
77 }
78 if (!out.toString().isEmpty()) {
79 System.err.println("Unexpected compiler for code: " + code);
80 System.err.println(out);
81 throw new AssertionError();
82 }
83 }
84 }
85
86 static class MyFileObject extends SimpleJavaFileObject {
87 private String text;
88
89 public MyFileObject(String text) {
90 super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
|
50 " }" +
51 " int t2(Integer i) {" +
52 " return switch (i) {" +
53 " case null: break 0;" +
54 " case 0, 1: break 1;" +
55 " default: break 2;" +
56 " }" +
57 " }" +
58 "}";
59
60 public static void main(String[] args) throws Exception {
61 final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
62 assert tool != null;
63 DiagnosticListener<JavaFileObject> noErrors = d -> {};
64
65 for (int i = 0; i < CODE.length(); i++) {
66 String code = CODE.substring(0, i + 1);
67 StringWriter out = new StringWriter();
68 try {
69 JavacTask ct = (JavacTask) tool.getTask(out, null, noErrors,
70 List.of("-XDdev", "--enable-preview", "-source", "13"), null,
71 Arrays.asList(new MyFileObject(code)));
72 ct.parse().iterator().next();
73 } catch (Throwable t) {
74 System.err.println("Unexpected exception for code: " + code);
75 System.err.println("output: " + out);
76 throw t;
77 }
78 if (!out.toString().isEmpty()) {
79 System.err.println("Unexpected compiler for code: " + code);
80 System.err.println(out);
81 throw new AssertionError();
82 }
83 }
84 }
85
86 static class MyFileObject extends SimpleJavaFileObject {
87 private String text;
88
89 public MyFileObject(String text) {
90 super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
|