From 4e6c29f8528589b37c862c6e4692cfed08a392e1 Mon Sep 17 00:00:00 2001 From: Aosen Xiong Date: Wed, 2 Jul 2025 23:06:33 -0400 Subject: [PATCH 1/2] Run time retention for `AnnotatedFor` --- .../org/checkerframework/framework/qual/AnnotatedFor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java b/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java index 48c4f7ab47f..135da508f9c 100644 --- a/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java +++ b/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java @@ -26,7 +26,7 @@ * @checker_framework.manual #compiling-libraries Compiling partially-annotated libraries */ @Documented -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PACKAGE}) public @interface AnnotatedFor { /** From b39ecc63fd1413cb56f32fd3312a66e50cffe02c Mon Sep 17 00:00:00 2001 From: Alex Cook <43047600+thisisalexandercook@users.noreply.github.com> Date: Mon, 5 Jan 2026 12:49:39 -0500 Subject: [PATCH 2/2] Clarify effect of AnnotatedFor annotation Update documentation to clarify annotation usage --- .../org/checkerframework/framework/qual/AnnotatedFor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java b/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java index 135da508f9c..200474664bb 100644 --- a/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java +++ b/src/java.base/share/classes/org/checkerframework/framework/qual/AnnotatedFor.java @@ -16,7 +16,7 @@ * using it in a fully-annotated library nor in an application that does not export APIs for * clients. * - *

This annotation has no effect unless the {@code + *

This annotation is retained in bytecode but has no effect unless the {@code * -AuseConservativeDefaultsForUncheckedCode=source} command-line argument is supplied. Ordinarily, * the {@code -AuseConservativeDefaultsForUncheckedCode=source} command-line argument causes * unannotated locations to be defaulted using conservative defaults, and it suppresses all