Remove LipoTransition (and replace remaining LIPO_COLLECTOR references).

Rules should now be configured directly with patch transitions.

This brings down our transition interfaces to: Transition, ConfigurationTransition, SplitTransition, PatchTransition.

PiperOrigin-RevId: 168927364
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
index 1a63327..dc79061 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
@@ -60,7 +60,7 @@
 import com.google.devtools.build.lib.rules.cpp.CppFileTypes;
 import com.google.devtools.build.lib.rules.cpp.CppHelper;
 import com.google.devtools.build.lib.rules.cpp.CppRuleClasses;
-import com.google.devtools.build.lib.rules.cpp.CppRuleClasses.LipoTransition;
+import com.google.devtools.build.lib.rules.cpp.transitions.LipoContextCollectorTransition;
 import com.google.devtools.build.lib.util.FileTypeSet;
 
 /**
@@ -235,7 +235,7 @@
           .add(attr("includes", STRING_LIST))
           .add(
               attr(":lipo_context_collector", LABEL)
-                  .cfg(LipoTransition.LIPO_COLLECTOR)
+                  .cfg(LipoContextCollectorTransition.INSTANCE)
                   .value(CppRuleClasses.LIPO_CONTEXT_COLLECTOR)
                   .skipPrereqValidatorCheck())
           .build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
index 5f9f07a..23cc7fc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
@@ -33,7 +33,7 @@
 import com.google.devtools.build.lib.packages.RuleClass;
 import com.google.devtools.build.lib.packages.RuleClass.Builder;
 import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.rules.cpp.CppRuleClasses.LipoTransition;
+import com.google.devtools.build.lib.rules.cpp.transitions.LipoContextCollectorTransition;
 
 /**
  * Rule definition for compiler definition.
@@ -133,7 +133,7 @@
         .add(attr(":libc_top", LABEL).value(LIBC_TOP))
         .add(
             attr(":lipo_context_collector", LABEL)
-                .cfg(LipoTransition.LIPO_COLLECTOR)
+                .cfg(LipoContextCollectorTransition.INSTANCE)
                 .value(CppRuleClasses.LIPO_CONTEXT_COLLECTOR)
                 .skipPrereqValidatorCheck())
         .build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
index bca6407..9530447 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
@@ -46,7 +46,6 @@
 import com.google.devtools.build.lib.packages.RuleTransitionFactory;
 import com.google.devtools.build.lib.rules.cpp.transitions.DisableLipoTransition;
 import com.google.devtools.build.lib.rules.cpp.transitions.EnableLipoTransition;
-import com.google.devtools.build.lib.rules.cpp.transitions.LipoContextCollectorTransition;
 import com.google.devtools.build.lib.util.FileTypeSet;
 import com.google.devtools.build.lib.util.OsUtils;
 
@@ -69,33 +68,13 @@
   };
 
   /**
-   * Configuration transitions required by LIPO.
-   */
-  public enum LipoTransition implements Transition {
-    /**
-     * LIPO context collector.
-     *
-     * <p>This configuration transition leads into a configuration that is used for collecting
-     * C++ compilation contexts for LIPO builds so that e.g. an include path entry required by an
-     * inlined function is there when the place is compiled where it is inlined at.
-     */
-    LIPO_COLLECTOR,
-
-    /**
-     * Transition used for switching back to the LIPO-optimized configuration.
-     */
-    TARGET_CONFIG_FOR_LIPO;
-  }
-
-  /**
    * Declares the implementations for C++ transition enums.
    *
    * <p>New transitions should extend {@link PatchTransition}, which avoids the need for this map.
    */
   public static final ImmutableMap<Transition, Transition> DYNAMIC_TRANSITIONS_MAP =
       ImmutableMap.of(
-          Attribute.ConfigurationTransition.DATA, DisableLipoTransition.INSTANCE,
-          LipoTransition.LIPO_COLLECTOR, LipoContextCollectorTransition.INSTANCE
+          Attribute.ConfigurationTransition.DATA, DisableLipoTransition.INSTANCE
       );
 
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java
index 7415a10..820bc46 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java
@@ -52,6 +52,7 @@
 import com.google.devtools.build.lib.rules.cpp.CppRuleClasses;
 import com.google.devtools.build.lib.rules.cpp.CppSemantics;
 import com.google.devtools.build.lib.rules.cpp.FeatureSpecification;
+import com.google.devtools.build.lib.rules.cpp.transitions.LipoContextCollectorTransition;
 import com.google.devtools.build.lib.rules.proto.ProtoCommon;
 import com.google.devtools.build.lib.rules.proto.ProtoCompileActionBuilder;
 import com.google.devtools.build.lib.rules.proto.ProtoCompileActionBuilder.ToolchainInvocation;
@@ -125,7 +126,7 @@
                     .value(ccToolchainAttrValue))
             .add(
                 attr(":lipo_context_collector", LABEL)
-                    .cfg(CppRuleClasses.LipoTransition.LIPO_COLLECTOR)
+                    .cfg(LipoContextCollectorTransition.INSTANCE)
                     .value(CppRuleClasses.LIPO_CONTEXT_COLLECTOR)
                     .skipPrereqValidatorCheck());