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