diff options
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.java | 7 |
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 { |