< prev index next >

test/langtools/tools/javac/switchexpr/ParseIncomplete.java

Print this page




  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);
< prev index next >