introduce hidden flag to configure bytecode optimizers

--
PiperOrigin-RevId: 151170448
MOS_MIGRATED_REVID=151170448
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 a923355..8751696 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
@@ -130,7 +130,7 @@
 
   /** A RuleAspect that just wraps a pre-existing Aspect that doesn't vary with the Rule. */
   private static class PredefinedRuleAspect extends RuleAspect<AspectClass> {
-    private Aspect aspect;
+    private final Aspect aspect;
 
     public PredefinedRuleAspect(Aspect aspect) {
       super(aspect.getAspectClass(), null);
@@ -438,7 +438,7 @@
    * already undocumented based on its name cannot be marked as undocumented.
    */
   public static class Builder <TYPE> {
-    private String name;
+    private final String name;
     private final Type<TYPE> type;
     private Transition configTransition = ConfigurationTransition.NONE;
     private Predicate<RuleClass> allowedRuleClassesForLabels = Predicates.alwaysTrue();
@@ -1662,8 +1662,8 @@
     private final ImmutableList<Label> labels;
     private final ImmutableSet<Class<?>> requiredConfigurationFragments;
 
-    public LateBoundLabelList() {
-      this(ImmutableList.<Label>of());
+    public LateBoundLabelList(Class<?>... requiredConfigurationFragments) {
+      this(ImmutableList.<Label>of(), requiredConfigurationFragments);
     }
 
     public LateBoundLabelList(List<Label> labels, Class<?>... requiredConfigurationFragments) {