< prev index next >

test/langtools/tools/javac/parser/JavacParserTest.java

Print this page




1079                       "            case 1: { i++; break;}" +
1080                       "            case 2: throw new RuntimeException();" +
1081                       "            case 3: if (true) ; break;" +
1082                       "            default: i++; break;" +
1083                       "        }" +
1084                       "        int j = switch (i) {" +
1085                       "            case 0 -> i + 1;" +
1086                       "            case 1 -> { break i + 1; }" +
1087                       "            default -> throw new RuntimeException();" +
1088                       "        };" +
1089                       "        int k = switch (i) {" +
1090                       "            case 0: break i + 1;" +
1091                       "            case 1: { break i + 1; }" +
1092                       "            default: throw new RuntimeException();" +
1093                       "        };" +
1094                       "    }" +
1095                       "}";
1096         String expectedErrors = "Test.java:1:178: compiler.err.switch.case.unexpected.statement\n";
1097         StringWriter out = new StringWriter();
1098         JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(out, fm, null,
1099                 Arrays.asList("-XDrawDiagnostics", "--enable-preview", "-source", "12"),
1100                 null, Arrays.asList(new MyFileObject(code)));
1101 
1102         CompilationUnitTree cut = ct.parse().iterator().next();
1103         Trees trees = Trees.instance(ct);
1104         List<String> spans = new ArrayList<>();
1105 
1106         new TreePathScanner<Void, Void>() {
1107             @Override
1108             public Void visitCase(CaseTree tree, Void v) {
1109                 if (tree.getBody() != null) {
1110                     int start = (int) trees.getSourcePositions().getStartPosition(cut, tree.getBody());
1111                     int end = (int) trees.getSourcePositions().getEndPosition(cut, tree.getBody());
1112                     spans.add(code.substring(start, end));
1113                 } else {
1114                     spans.add("<null>");
1115                 }
1116                 return super.visitCase(tree, v);
1117             }
1118         }.scan(cut, null);
1119 




1079                       "            case 1: { i++; break;}" +
1080                       "            case 2: throw new RuntimeException();" +
1081                       "            case 3: if (true) ; break;" +
1082                       "            default: i++; break;" +
1083                       "        }" +
1084                       "        int j = switch (i) {" +
1085                       "            case 0 -> i + 1;" +
1086                       "            case 1 -> { break i + 1; }" +
1087                       "            default -> throw new RuntimeException();" +
1088                       "        };" +
1089                       "        int k = switch (i) {" +
1090                       "            case 0: break i + 1;" +
1091                       "            case 1: { break i + 1; }" +
1092                       "            default: throw new RuntimeException();" +
1093                       "        };" +
1094                       "    }" +
1095                       "}";
1096         String expectedErrors = "Test.java:1:178: compiler.err.switch.case.unexpected.statement\n";
1097         StringWriter out = new StringWriter();
1098         JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(out, fm, null,
1099                 Arrays.asList("-XDrawDiagnostics", "--enable-preview", "-source", "13"),
1100                 null, Arrays.asList(new MyFileObject(code)));
1101 
1102         CompilationUnitTree cut = ct.parse().iterator().next();
1103         Trees trees = Trees.instance(ct);
1104         List<String> spans = new ArrayList<>();
1105 
1106         new TreePathScanner<Void, Void>() {
1107             @Override
1108             public Void visitCase(CaseTree tree, Void v) {
1109                 if (tree.getBody() != null) {
1110                     int start = (int) trees.getSourcePositions().getStartPosition(cut, tree.getBody());
1111                     int end = (int) trees.getSourcePositions().getEndPosition(cut, tree.getBody());
1112                     spans.add(code.substring(start, end));
1113                 } else {
1114                     spans.add("<null>");
1115                 }
1116                 return super.visitCase(tree, v);
1117             }
1118         }.scan(cut, null);
1119 


< prev index next >