From 895b48fc7fbb64f6e0ca4eee420d79fd2ff24110 Mon Sep 17 00:00:00 2001 From: Liam Miller-Cushon Date: Wed, 5 Nov 2025 08:43:34 +0100 Subject: [PATCH] Update tests --- .../.CompletionErrorOnEnclosingType.java.swp | Bin 0 -> 16384 bytes .../CompletionErrorOnEnclosingType.java | 97 ++++++++++++++++-- 2 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 test/langtools/tools/javac/annotations/typeAnnotations/.CompletionErrorOnEnclosingType.java.swp diff --git a/test/langtools/tools/javac/annotations/typeAnnotations/.CompletionErrorOnEnclosingType.java.swp b/test/langtools/tools/javac/annotations/typeAnnotations/.CompletionErrorOnEnclosingType.java.swp new file mode 100644 index 0000000000000000000000000000000000000000..8020d3bd75d1df557e32560d2327bf5cf6312520 GIT binary patch literal 16384 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 annotations, RoundEnvironment roundEnv) { + if (!first) { + return false; + } + Element te = processingEnv.getElementUtils().getTypeElement("B"); + for (var f : ElementFilter.fieldsIn(te.getEnclosedElements())) { + TypeMirror t = f.asType(); + processingEnv + .getMessager() + .printMessage( + Diagnostic.Kind.NOTE, + "%s (%s) has annotations [%s]" + .formatted(f, t, t.getAnnotationMirrors())); + } + first = false; + return false; + } + } + + void testAnnotationProcessing() throws Exception { + setup(); + + List log = + new JavacTask(tb) + .outdir(out) + .classpath(out) + .options("-XDrawDiagnostics") + .files(src.resolve("C.java")) + .processors(new Processor()) + .run(Expect.SUCCESS) + .writeAll() + .getOutputLines(Task.OutputKind.DIRECT); var expectedOutput = + List.of( + "- compiler.note.proc.messager: a (@Anno A) has" + + " annotations [@Anno]"); + if (!expectedOutput.equals(log)) { + throw new Exception("expected output not found: " + log); + } + + // now if we remove A.class there will be an error and the annotations won't be available + // but javac should not crash + tb.deleteFiles(out.resolve("A.class")); + + log = + new JavacTask(tb) + .outdir(out) + .classpath(out) + .options("-XDrawDiagnostics") + .files(src.resolve("C.java")) + .processors(new Processor()) + .run(Expect.FAIL) + .writeAll() + .getOutputLines(Task.OutputKind.DIRECT); + + expectedOutput = List.of( "B.class:-:-: compiler.err.cant.attach.type.annotations: @Anno, B, a," - + " (compiler.misc.class.file.not.found: A)", + + " (compiler.misc.class.file.not.found: A)", + "- compiler.note.proc.messager: a (A) has annotations []", "1 error"); - // FIXME - expectedOutput = List.of(""); if (!expectedOutput.equals(log)) { throw new Exception("expected output not found: " + log); }