76 package test;
77 public class Use {
78 Outer.R r;
79 }
80 """);
81 Path classes = base.resolve("classes");
82
83 List<String> log = new JavacTask(tb, Task.Mode.CMDLINE)
84 .outdir(classes)
85 .options("--enable-preview",
86 "-source", String.valueOf(Runtime.version().feature()),
87 "-Xlint:preview",
88 "-XDforcePreview",
89 "-XDrawDiagnostics")
90 .files(tb.findJavaFiles(src))
91 .run()
92 .writeAll()
93 .getOutputLines(Task.OutputKind.DIRECT);
94
95 List<String> expected =
96 List.of("Outer.java:3:5: compiler.warn.preview.feature.use.plural: (compiler.misc.feature.records)",
97 "Outer.java:3:5: compiler.warn.preview.feature.use.plural: (compiler.misc.feature.records)",
98 "2 warnings");
99 if (!log.equals(expected))
100 throw new Exception("expected output not found" + log);
101 checkPreviewClassfile(classes.resolve("test").resolve("Outer.class"), true); //TODO: correct?
102 checkPreviewClassfile(classes.resolve("test").resolve("Outer$R.class"),true);
103 checkPreviewClassfile(classes.resolve("test").resolve("Use.class"),false);
104 }
105
106 @Test
107 public void previewAPI(Path base) throws Exception {
108 Path apiSrc = base.resolve("api-src");
109 tb.writeJavaFiles(apiSrc,
110 """
111 package preview.api;
112 @jdk.internal.javac.PreviewFeature(feature=jdk.internal.javac.PreviewFeature.Feature.TEST)
113 public class Outer {
114 public void test() {}
115 }
116 """,
117 """
118 package preview.impl;
|
76 package test;
77 public class Use {
78 Outer.R r;
79 }
80 """);
81 Path classes = base.resolve("classes");
82
83 List<String> log = new JavacTask(tb, Task.Mode.CMDLINE)
84 .outdir(classes)
85 .options("--enable-preview",
86 "-source", String.valueOf(Runtime.version().feature()),
87 "-Xlint:preview",
88 "-XDforcePreview",
89 "-XDrawDiagnostics")
90 .files(tb.findJavaFiles(src))
91 .run()
92 .writeAll()
93 .getOutputLines(Task.OutputKind.DIRECT);
94
95 List<String> expected =
96 List.of("- compiler.warn.preview.feature.use.classfile: Record.class, 26", //as of Valhalla, j.l.Record is a preview class
97 "Outer.java:3:5: compiler.warn.preview.feature.use.plural: (compiler.misc.feature.records)",
98 "Outer.java:3:5: compiler.warn.preview.feature.use.plural: (compiler.misc.feature.records)",
99 "3 warnings");
100 if (!log.equals(expected))
101 throw new Exception("expected output not found" + log);
102 checkPreviewClassfile(classes.resolve("test").resolve("Outer.class"), true); //TODO: correct?
103 checkPreviewClassfile(classes.resolve("test").resolve("Outer$R.class"),true);
104 checkPreviewClassfile(classes.resolve("test").resolve("Use.class"),false);
105 }
106
107 @Test
108 public void previewAPI(Path base) throws Exception {
109 Path apiSrc = base.resolve("api-src");
110 tb.writeJavaFiles(apiSrc,
111 """
112 package preview.api;
113 @jdk.internal.javac.PreviewFeature(feature=jdk.internal.javac.PreviewFeature.Feature.TEST)
114 public class Outer {
115 public void test() {}
116 }
117 """,
118 """
119 package preview.impl;
|