diff --git a/test/langtools/tools/javac/diags/Example.java b/test/langtools/tools/javac/diags/Example.java index 91d3bace4d8..45aa6190b9a 100644 --- a/test/langtools/tools/javac/diags/Example.java +++ b/test/langtools/tools/javac/diags/Example.java @@ -602,9 +602,13 @@ class Example implements Comparable { */ private static void scanForKeys(JCDiagnostic d, Set keys) { keys.add(d.getCode()); - for (Object o: d.getArgs()) { - if (o instanceof JCDiagnostic) { - scanForKeys((JCDiagnostic) o, keys); + List todoArgs = new ArrayList<>(Arrays.asList(d.getArgs())); + while (!todoArgs.isEmpty()) { + Object o = todoArgs.removeLast(); + if (o instanceof JCDiagnostic sd) { + scanForKeys(sd, keys); + } else if (o instanceof List l) { + todoArgs.addAll(l); } } for (JCDiagnostic sd: d.getSubdiagnostics()) diff --git a/test/langtools/tools/javac/diags/examples/NotExhaustiveDetails.java b/test/langtools/tools/javac/diags/examples/NotExhaustiveDetails.java index 463e5e6516b..1a7e82b12e7 100644 --- a/test/langtools/tools/javac/diags/examples/NotExhaustiveDetails.java +++ b/test/langtools/tools/javac/diags/examples/NotExhaustiveDetails.java @@ -22,6 +22,7 @@ */ // key: compiler.err.not.exhaustive.details +// key: compiler.misc.not.exhaustive.detail // options: -XDexhaustivityTimeout=-1 class NotExhaustiveDetails { diff --git a/test/langtools/tools/javac/diags/examples/NotExhaustiveStatementDetails.java b/test/langtools/tools/javac/diags/examples/NotExhaustiveStatementDetails.java index 8d7253aa7d7..650a81a01af 100644 --- a/test/langtools/tools/javac/diags/examples/NotExhaustiveStatementDetails.java +++ b/test/langtools/tools/javac/diags/examples/NotExhaustiveStatementDetails.java @@ -22,6 +22,7 @@ */ // key: compiler.err.not.exhaustive.statement.details +// key: compiler.misc.not.exhaustive.detail // options: -XDexhaustivityTimeout=-1 class NotExhaustiveDetails {