aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
index af59425e7b..867dbca164 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
@@ -32,8 +32,13 @@ import java.lang.annotation.Target;
* The {@code _AutoCodec} suffix is added to the {@code Target} to obtain the generated class name.
* In the example, that results in a class named {@code Target_AutoCodec} but applications should
* not need to directly access the generated class.
+ *
+ * <p>If applied to a field (which must be static and final), the field is stored as a "constant"
+ * allowing for trivial serialization of it as an integer tag (see {@code CodecScanner} and
+ * {@code ObjectCodecRegistery}). In order to do that, a trivial associated "RegisteredSingleton"
+ * class is generated.
*/
-@Target(ElementType.TYPE)
+@Target({ElementType.TYPE, ElementType.FIELD})
// TODO(janakr): remove once serialization is complete.
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoCodec {