aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/DynamicTransitionMapper.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Attribute.java33
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java6
12 files changed, 38 insertions, 63 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
index 7b9d60d175..d268e7d2b3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.config.PatchTransition;
import com.google.devtools.build.lib.analysis.config.TransitionResolver;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -422,7 +423,7 @@ public abstract class DependencyResolver {
* transition does not apply.
*
* <p>Even though the attribute may have a split, splits don't have to apply in every
- * configuration (see {@link Attribute.SplitTransition#split}).
+ * configuration (see {@link SplitTransition#split}).
*/
private static Collection<BuildOptions> getSplitOptions(ConfiguredAttributeMapper attributeMap,
Attribute attribute,
@@ -430,9 +431,7 @@ public abstract class DependencyResolver {
if (!attribute.hasSplitConfigurationTransition()) {
return ImmutableList.<BuildOptions>of();
}
- @SuppressWarnings("unchecked") // Attribute.java doesn't have the BuildOptions symbol.
- Attribute.SplitTransition<BuildOptions> transition =
- (Attribute.SplitTransition<BuildOptions>) attribute.getSplitTransition(attributeMap);
+ SplitTransition transition = attribute.getSplitTransition(attributeMap);
return transition.split(ruleConfig.getOptions());
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 6abf4912a1..ce2569a1a6 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -47,6 +47,7 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.analysis.config.FragmentCollection;
import com.google.devtools.build.lib.analysis.config.PatchTransition;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.fileset.FilesetProvider;
@@ -65,7 +66,6 @@ import com.google.devtools.build.lib.packages.Aspect;
import com.google.devtools.build.lib.packages.AspectDescriptor;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
-import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy;
@@ -768,10 +768,8 @@ public final class RuleContext extends TargetContext
checkAttribute(attributeName, Mode.SPLIT);
Attribute attributeDefinition = attributes().getAttributeDefinition(attributeName);
- @SuppressWarnings("unchecked") // Attribute.java doesn't have the BuildOptions symbol.
- SplitTransition<BuildOptions> transition =
- (SplitTransition<BuildOptions>) attributeDefinition.getSplitTransition(
- ConfiguredAttributeMapper.of(rule, configConditions));
+ SplitTransition transition = attributeDefinition.getSplitTransition(
+ ConfiguredAttributeMapper.of(rule, configConditions));
List<ConfiguredTarget> deps = targetMap.get(attributeName);
List<BuildOptions> splitOptions = transition.split(getConfiguration().getOptions());
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java
index b984ee4d55..41cb44d3c0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java
@@ -16,9 +16,9 @@ package com.google.devtools.build.lib.analysis.config;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
-import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
import java.util.List;
/**
@@ -35,7 +35,7 @@ import java.util.List;
* combination thereof. We implement this class as a {@link SplitTransition} since that abstraction
* captures all possible combinations.
*/
-public class ComposingSplitTransition implements SplitTransition<BuildOptions> {
+public class ComposingSplitTransition implements SplitTransition {
private Transition transition1;
private Transition transition2;
@@ -63,7 +63,7 @@ public class ComposingSplitTransition implements SplitTransition<BuildOptions> {
*/
private Transition verifySupported(Transition transition) {
Preconditions.checkArgument(transition instanceof PatchTransition
- || transition instanceof SplitTransition<?>);
+ || transition instanceof SplitTransition);
return transition;
}
@@ -77,7 +77,7 @@ public class ComposingSplitTransition implements SplitTransition<BuildOptions> {
} else if (transition instanceof PatchTransition) {
return ImmutableList.<BuildOptions>of(((PatchTransition) transition).apply(fromOptions));
} else if (transition instanceof SplitTransition) {
- SplitTransition split = (SplitTransition<BuildOptions>) transition;
+ SplitTransition split = (SplitTransition) transition;
List<BuildOptions> splitOptions = split.split(fromOptions);
if (splitOptions.isEmpty()) {
return ImmutableList.<BuildOptions>of(fromOptions);
@@ -91,4 +91,3 @@ public class ComposingSplitTransition implements SplitTransition<BuildOptions> {
}
}
}
-
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
index 9a16f0b2db..d09219eaee 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
@@ -26,6 +26,7 @@ import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.analysis.Dependency;
import com.google.devtools.build.lib.analysis.TargetAndConfiguration;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety;
@@ -417,10 +418,8 @@ public final class ConfigurationResolver {
} else if (transition instanceof PatchTransition) {
// TODO(bazel-team): safety-check that this never mutates fromOptions.
result = ImmutableList.<BuildOptions>of(((PatchTransition) transition).apply(fromOptions));
- } else if (transition instanceof Attribute.SplitTransition) {
- @SuppressWarnings("unchecked") // Attribute.java doesn't have the BuildOptions symbol.
- List<BuildOptions> toOptions =
- ((Attribute.SplitTransition<BuildOptions>) transition).split(fromOptions);
+ } else if (transition instanceof SplitTransition) {
+ List<BuildOptions> toOptions = ((SplitTransition) transition).split(fromOptions);
if (toOptions.isEmpty()) {
// When the split returns an empty list, it's signaling it doesn't apply to this instance.
// So return the original options.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/DynamicTransitionMapper.java b/src/main/java/com/google/devtools/build/lib/analysis/config/DynamicTransitionMapper.java
index 0ccb19a40a..4c492017c7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/DynamicTransitionMapper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/DynamicTransitionMapper.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.analysis.config;
import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -72,7 +73,7 @@ public final class DynamicTransitionMapper {
*/
public Transition map(Transition fromTransition) {
if (fromTransition instanceof PatchTransition
- || fromTransition instanceof Attribute.SplitTransition<?>
+ || fromTransition instanceof SplitTransition
|| fromTransition == null) {
return fromTransition;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
index b84c5dbfbd..27c3548a2c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
@@ -17,10 +17,10 @@ package com.google.devtools.build.lib.analysis.config;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.analysis.TargetAndConfiguration;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
-import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
import com.google.devtools.build.lib.packages.ConfiguredAttributeMapper;
import com.google.devtools.build.lib.packages.InputFile;
import com.google.devtools.build.lib.packages.PackageGroup;
@@ -112,8 +112,7 @@ public final class TransitionResolver {
// TODO(gregce): make the below transitions composable (i.e. take away the "else" clauses).
// The "else" is a legacy restriction from static configurations.
if (attribute.hasSplitConfigurationTransition()) {
- currentTransition = split(currentTransition,
- (SplitTransition<BuildOptions>) attribute.getSplitTransition(attributeMap));
+ currentTransition = split(currentTransition, attribute.getSplitTransition(attributeMap));
} else {
// III. Attributes determine configurations. The configuration of a prerequisite is determined
// by the attribute.
@@ -195,8 +194,7 @@ public final class TransitionResolver {
/**
* Applies the given split and composes it after an existing transition.
*/
- private static Transition split(Transition currentTransition,
- SplitTransition<BuildOptions> split) {
+ private static Transition split(Transition currentTransition, SplitTransition split) {
Preconditions.checkState(currentTransition != Attribute.ConfigurationTransition.NULL,
"cannot apply splits after null transitions (null transitions are expected to be final)");
Preconditions.checkState(currentTransition != HostTransition.INSTANCE,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java
index 9dc4eeedb9..dd1cea17ee 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java
@@ -24,6 +24,7 @@ import java.util.List;
* handle this.
*/
@ThreadSafety.Immutable
+@FunctionalInterface
public interface SplitTransition extends Transition {
/**
* Return the list of {@code BuildOptions} after splitting; empty if not applicable.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
index b04a855b5c..78e393fb51 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
@@ -20,13 +20,13 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.config.HostTransition;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.Attribute.AllowedValueSet;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
import com.google.devtools.build.lib.packages.Attribute.SkylarkComputedDefaultTemplate;
-import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
import com.google.devtools.build.lib.packages.Attribute.SplitTransitionProvider;
import com.google.devtools.build.lib.packages.AttributeValueSource;
import com.google.devtools.build.lib.packages.BuildType;
@@ -298,8 +298,8 @@ public final class SkylarkAttr implements SkylarkValue {
builder.cfg(ConfigurationTransition.DATA);
} else if (trans.equals("host")) {
builder.cfg(HostTransition.INSTANCE);
- } else if (trans instanceof SplitTransition<?>) {
- builder.cfg((SplitTransition<?>) trans);
+ } else if (trans instanceof SplitTransition) {
+ builder.cfg((SplitTransition) trans);
} else if (trans instanceof SplitTransitionProvider) {
builder.cfg((SplitTransitionProvider) trans);
} else if (!trans.equals("target")) {
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 b736613863..38fdda7317 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
@@ -29,8 +29,8 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
-import com.google.devtools.build.lib.concurrent.ThreadSafety;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassNamePredicate;
@@ -148,23 +148,6 @@ public final class Attribute implements Comparable<Attribute> {
}
/**
- * A configuration split transition; this should be used to transition to multiple configurations
- * simultaneously. Note that the corresponding rule implementations must have special support to
- * handle this.
- *
- * <p>{@code T} must always be {@code BuildOptions}, but it can't be defined that way because
- * the symbol isn't available here.
- */
- // TODO(bazel-team): Serializability constraints?
- @ThreadSafety.Immutable
- public interface SplitTransition<T> extends Transition {
- /**
- * Return the list of {@code BuildOptions} after splitting; empty if not applicable.
- */
- List<T> split(T buildOptions);
- }
-
- /**
* Declaration how the configuration should change when following a label or label list attribute.
*
* <p>Do not add to this. Use {@link
@@ -316,7 +299,7 @@ public final class Attribute implements Comparable<Attribute> {
/**
* Returns the {@link SplitTransition} given the attribute mapper of the originating rule.
*/
- SplitTransition<?> apply(AttributeMap attributeMap);
+ SplitTransition apply(AttributeMap attributeMap);
}
/**
@@ -325,14 +308,14 @@ public final class Attribute implements Comparable<Attribute> {
*/
private static class BasicSplitTransitionProvider implements SplitTransitionProvider {
- private final SplitTransition<?> splitTransition;
+ private final SplitTransition splitTransition;
- BasicSplitTransitionProvider(SplitTransition<?> splitTransition) {
+ BasicSplitTransitionProvider(SplitTransition splitTransition) {
this.splitTransition = splitTransition;
}
@Override
- public SplitTransition<?> apply(AttributeMap attributeMap) {
+ public SplitTransition apply(AttributeMap attributeMap) {
return splitTransition;
}
}
@@ -533,7 +516,7 @@ public final class Attribute implements Comparable<Attribute> {
* Defines the configuration transition for this attribute. Defaults to
* {@code NONE}.
*/
- public Builder<TYPE> cfg(SplitTransition<?> configTransition) {
+ public Builder<TYPE> cfg(SplitTransition configTransition) {
return cfg(new BasicSplitTransitionProvider(Preconditions.checkNotNull(configTransition)));
}
@@ -547,7 +530,7 @@ public final class Attribute implements Comparable<Attribute> {
Preconditions.checkArgument(configTransition != ConfigurationTransition.SPLIT,
"split transitions must be defined using the SplitTransition object");
if (configTransition instanceof SplitTransition) {
- return cfg((SplitTransition<?>) configTransition);
+ return cfg((SplitTransition) configTransition);
} else {
this.configTransition = configTransition;
return this;
@@ -1971,7 +1954,7 @@ public final class Attribute implements Comparable<Attribute> {
* @return a SplitTransition<BuildOptions> object
* @throws IllegalStateException if {@link #hasSplitConfigurationTransition} is not true
*/
- public SplitTransition<?> getSplitTransition(AttributeMap attributeMapper) {
+ public SplitTransition getSplitTransition(AttributeMap attributeMapper) {
Preconditions.checkState(hasSplitConfigurationTransition());
return splitTransitionProvider.apply(attributeMapper);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 6a8a0a9eb2..c08da7a41f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -37,13 +37,13 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.HostTransition;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.config.transitions.Transition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.Attribute.AllowedValueSet;
import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
-import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.Rule;
@@ -206,11 +206,9 @@ public final class AndroidRuleClasses {
(rule, attributes, configuration) -> configuration.getSdk());
}
- public static final SplitTransition<BuildOptions> ANDROID_SPLIT_TRANSITION =
- new AndroidSplitTransition();
+ public static final SplitTransition ANDROID_SPLIT_TRANSITION = new AndroidSplitTransition();
- private static final class AndroidSplitTransition
- implements SplitTransition<BuildOptions>, SkylarkValue {
+ private static final class AndroidSplitTransition implements SplitTransition, SkylarkValue {
private static void setCrosstoolToAndroid(BuildOptions output, BuildOptions input) {
AndroidConfiguration.Options inputAndroidOptions =
input.get(AndroidConfiguration.Options.class);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java
index fe8a9dd36d..be66ad689c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java
@@ -14,8 +14,7 @@
package com.google.devtools.build.lib.rules.android;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -47,7 +46,7 @@ public class AndroidSkylarkCommon {
+ "the --fat_apk_cpu and --android_crosstool_top flags.",
structField = true
)
- public SplitTransition<BuildOptions> getAndroidSplitTransition() {
+ public SplitTransition getAndroidSplitTransition() {
return AndroidRuleClasses.ANDROID_SPLIT_TRANSITION;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
index 394c2202b7..8284011f06 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
@@ -24,7 +24,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Options;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
+import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.packages.Attribute.SplitTransitionProvider;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
@@ -125,7 +125,7 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider
}
@Override
- public SplitTransition<?> apply(AttributeMap attrMapper) {
+ public SplitTransition apply(AttributeMap attrMapper) {
String platformTypeString = attrMapper.get(PlatformRule.PLATFORM_TYPE_ATTR_NAME, STRING);
String minimumOsVersionString = attrMapper.get(PlatformRule.MINIMUM_OS_VERSION, STRING);
PlatformType platformType;
@@ -164,7 +164,7 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider
* platform-specific cpu flag for a particular platform type (for example, --watchos_cpus
* for watchos platform type).
*/
- protected static class AppleBinaryTransition implements SplitTransition<BuildOptions> {
+ protected static class AppleBinaryTransition implements SplitTransition {
private final PlatformType platformType;
// TODO(b/37096178): This should be a mandatory attribute.