Make most of Attribute DynamicCodec'ed, rather than use AutoCodec. This is a general clean-up, but also I'm getting a bizarre test failure from the @AutoCodec annotation and it goes away when I remove it.

PiperOrigin-RevId: 251715454
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index ac63988..0f7cfe3 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -71,12 +71,11 @@
  * </code> may share many attributes in common).
  */
 @Immutable
-@AutoCodec
 public final class Attribute implements Comparable<Attribute> {
 
   public static final RuleClassNamePredicate ANY_RULE = RuleClassNamePredicate.unspecified();
 
-  public static final RuleClassNamePredicate NO_RULE = RuleClassNamePredicate.only();
+  private static final RuleClassNamePredicate NO_RULE = RuleClassNamePredicate.only();
 
   /** Wraps the information necessary to construct an Aspect. */
   @VisibleForSerialization
@@ -84,7 +83,7 @@
     protected final C aspectClass;
     protected final Function<Rule, AspectParameters> parametersExtractor;
 
-    protected RuleAspect(C aspectClass, Function<Rule, AspectParameters> parametersExtractor) {
+    private RuleAspect(C aspectClass, Function<Rule, AspectParameters> parametersExtractor) {
       this.aspectClass = aspectClass;
       this.parametersExtractor = parametersExtractor;
     }
@@ -105,8 +104,8 @@
   }
 
   private static class NativeRuleAspect extends RuleAspect<NativeAspectClass> {
-    public NativeRuleAspect(NativeAspectClass aspectClass,
-        Function<Rule, AspectParameters> parametersExtractor) {
+    NativeRuleAspect(
+        NativeAspectClass aspectClass, Function<Rule, AspectParameters> parametersExtractor) {
       super(aspectClass, parametersExtractor);
     }
 
@@ -117,11 +116,13 @@
     }
   }
 
+  @VisibleForSerialization
   @AutoCodec
   static class SkylarkRuleAspect extends RuleAspect<SkylarkAspectClass> {
     private final SkylarkDefinedAspect aspect;
 
-    public SkylarkRuleAspect(SkylarkDefinedAspect aspect) {
+    @VisibleForSerialization
+    SkylarkRuleAspect(SkylarkDefinedAspect aspect) {
       super(aspect.getAspectClass(), aspect.getDefaultParametersExtractor());
       this.aspect = aspect;
     }
@@ -142,7 +143,7 @@
   private static class PredefinedRuleAspect extends RuleAspect<AspectClass> {
     private final Aspect aspect;
 
-    public PredefinedRuleAspect(Aspect aspect) {
+    PredefinedRuleAspect(Aspect aspect) {
       super(aspect.getAspectClass(), null);
       this.aspect = aspect;
     }
@@ -153,8 +154,7 @@
     }
   }
 
-  @VisibleForSerialization
-  enum PropertyFlag {
+  private enum PropertyFlag {
     MANDATORY,
     EXECUTABLE,
     UNDOCUMENTED,
@@ -274,17 +274,9 @@
     String checkValid(Rule from, Rule to);
   }
 
-  @AutoCodec
-  public static final ValidityPredicate ANY_EDGE =
-      new ValidityPredicate() {
-        @Override
-        public String checkValid(Rule from, Rule to) {
-          return null;
-        }
-      };
+  @AutoCodec public static final ValidityPredicate ANY_EDGE = (from, to) -> null;
 
   /** A predicate class to check if the value of the attribute comes from a predefined set. */
-  @AutoCodec
   public static class AllowedValueSet implements PredicateWithMessage<Object> {
 
     private final Set<Object> allowedValues;
@@ -299,12 +291,6 @@
       allowedValues = ImmutableSet.copyOf(values);
     }
 
-    @AutoCodec.Instantiator
-    @VisibleForSerialization
-    AllowedValueSet(Set<Object> allowedValues) {
-      this.allowedValues = allowedValues;
-    }
-
     @Override
     public boolean apply(Object input) {
       return allowedValues.contains(input);
@@ -344,7 +330,6 @@
   }
 
   /** A factory to generate {@link Attribute} instances. */
-  @AutoCodec
   public static class ImmutableAttributeFactory {
     private final Type<?> type;
     private final String doc;
@@ -362,8 +347,7 @@
     private final RequiredProviders requiredProviders;
     private final ImmutableList<RuleAspect<?>> aspects;
 
-    @AutoCodec.VisibleForSerialization
-    ImmutableAttributeFactory(
+    private ImmutableAttributeFactory(
         Type<?> type,
         String doc,
         ImmutableSet<PropertyFlag> propertyFlags,
@@ -1398,7 +1382,6 @@
    * calling {@link #computePossibleValues}, which returns a {@link SkylarkComputedDefault} that
    * contains a lookup table.
    */
-  @AutoCodec
   public static final class SkylarkComputedDefaultTemplate {
     private final Type<?> type;
     private final SkylarkCallbackFunction callback;
@@ -1542,7 +1525,6 @@
    * {@link #getPossibleValues(Type, Rule)} and {@link #getDefault(AttributeMap)} do lookups in that
    * table.
    */
-  @AutoCodec
   static final class SkylarkComputedDefault extends ComputedDefault {
 
     private final List<Type<?>> dependencyTypes;
@@ -1596,10 +1578,9 @@
     }
   }
 
-  @AutoCodec.VisibleForSerialization
   static class SimpleLateBoundDefault<FragmentT, ValueT>
       extends LateBoundDefault<FragmentT, ValueT> {
-    @AutoCodec.VisibleForSerialization protected final Resolver<FragmentT, ValueT> resolver;
+    private final Resolver<FragmentT, ValueT> resolver;
 
     private SimpleLateBoundDefault(boolean useHostConfiguration,
         Class<FragmentT> fragmentClass,
@@ -1731,7 +1712,9 @@
     }
   }
 
-  private static class AlwaysNullLateBoundDefault extends SimpleLateBoundDefault<Void, Void> {
+  @AutoCodec.VisibleForSerialization
+  static class AlwaysNullLateBoundDefault extends SimpleLateBoundDefault<Void, Void> {
+    @AutoCodec @AutoCodec.VisibleForSerialization
     static final AlwaysNullLateBoundDefault INSTANCE = new AlwaysNullLateBoundDefault();
 
     private AlwaysNullLateBoundDefault() {
@@ -1740,10 +1723,9 @@
   }
 
   /** A {@link LateBoundDefault} for a {@link Label}. */
-  @AutoCodec
   public static class LabelLateBoundDefault<FragmentT>
       extends SimpleLateBoundDefault<FragmentT, Label> {
-    @AutoCodec.VisibleForSerialization
+    @VisibleForTesting
     protected LabelLateBoundDefault(
         boolean useHostConfiguration,
         Class<FragmentT> fragmentClass,
@@ -1827,11 +1809,9 @@
   }
 
   /** A {@link LateBoundDefault} for a {@link List} of {@link Label} objects. */
-  @AutoCodec
   public static class LabelListLateBoundDefault<FragmentT>
       extends SimpleLateBoundDefault<FragmentT, List<Label>> {
-    @AutoCodec.VisibleForSerialization
-    LabelListLateBoundDefault(
+    private LabelListLateBoundDefault(
         boolean useHostConfiguration,
         Class<FragmentT> fragmentClass,
         Resolver<FragmentT, List<Label>> resolver) {
@@ -1935,7 +1915,6 @@
    * @param transitionFactory the configuration transition for this attribute (which must be of type
    *     LABEL, LABEL_LIST, NODEP_LABEL or NODEP_LABEL_LIST).
    */
-  @VisibleForSerialization
   Attribute(
       String name,
       String doc,