Skip to content

Commit 8389e24

Browse files
author
Vicente Romero
committedNov 26, 2024
8345058: Javac issues different error messages for the modifiers of the requires directive
Reviewed-by: mcimadamore
1 parent 8da6435 commit 8389e24

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
 

‎src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java

+3
Original file line numberDiff line numberDiff line change
@@ -4215,6 +4215,9 @@ List<JCDirective> moduleDirectiveList() {
42154215
}
42164216
isTransitive = true;
42174217
break;
4218+
} else if (token.name() == names.transitive && isTransitive) {
4219+
log.error(DiagnosticFlag.SYNTAX, token.pos, Errors.RepeatedModifier);
4220+
break;
42184221
} else {
42194222
break loop;
42204223
}

‎test/langtools/tools/javac/modules/RequiresTransitiveTest.java

+35
Original file line numberDiff line numberDiff line change
@@ -221,4 +221,39 @@ public class C7 { }""");
221221

222222
return src;
223223
}
224+
225+
@Test
226+
public void testRepeatedModifiers(Path base) throws Exception {
227+
Path src = base.resolve("src");
228+
Path src_m1 = src.resolve("m1");
229+
tb.writeJavaFiles(src_m1,
230+
"""
231+
module m1 {
232+
requires static static java.sql;
233+
requires transitive transitive java.desktop;
234+
}
235+
"""
236+
);
237+
Path classes = base.resolve("classes");
238+
Files.createDirectories(classes);
239+
240+
String log = new JavacTask(tb, Task.Mode.CMDLINE)
241+
.options("-XDrawDiagnostics",
242+
"--module-source-path", src.toString())
243+
.files(findJavaFiles(src))
244+
.outdir(classes)
245+
.run(Task.Expect.FAIL)
246+
.writeAll()
247+
.getOutput(Task.OutputKind.DIRECT);
248+
249+
String[] expect = {
250+
"module-info.java:2:21: compiler.err.repeated.modifier",
251+
"module-info.java:3:25: compiler.err.repeated.modifier"
252+
};
253+
254+
for (String e: expect) {
255+
if (!log.contains(e))
256+
throw new Exception("expected output not found: " + e);
257+
}
258+
}
224259
}

1 commit comments

Comments
 (1)

openjdk-notifier[bot] commented on Nov 26, 2024

@openjdk-notifier[bot]
Please sign in to comment.