diff options
author | 2017-12-28 11:58:15 -0800 | |
---|---|---|
committer | 2017-12-28 11:59:56 -0800 | |
commit | 4e093d8e08454c9c2c04e94fe2e97ef4592198b6 (patch) | |
tree | cde1332470f53d3a45a68b6852a207bc6851d8e2 /src/main/java/com/google/devtools/build/lib/packages/Attribute.java | |
parent | 8bd201631e380327f5a7fb72e11bd493973913b8 (diff) |
Replace Attribute.ConfigurationTransition with config.transitions.ConfigurationTransitionProxy.
The "proxy" part is to dissuade people from writing:
void myfunc(ConfigurationTransition transition)
signatures casually.
Maybe that's actually a better name than "Transition". But I'd rather
rename Transition to ConfigurationTransition in its own change if we
want to do that.
PiperOrigin-RevId: 180285321
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/Attribute.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/Attribute.java | 39 |
1 files changed, 7 insertions, 32 deletions
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 38fdda7317..0a368e1fc8 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,6 +29,7 @@ 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.ConfigurationTransitionProxy; 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.events.EventHandler; @@ -147,32 +148,6 @@ public final class Attribute implements Comparable<Attribute> { } } - /** - * Declaration how the configuration should change when following a label or label list attribute. - * - * <p>Do not add to this. Use {@link - * com.google.devtools.build.lib.analysis.config.PatchTransition} or {@link SplitTransition} - * instead. - */ - public enum ConfigurationTransition implements Transition { - /** No transition, i.e., the same configuration as the current. */ - NONE, - - /** Transition to a null configuration (applies to, e.g., input files). */ - NULL, - - /** Transition from the target configuration to the data configuration. */ - // TODO(bazel-team): Move this elsewhere. - DATA, - - /** - * Transition to one or more configurations. To obtain the actual child configurations, - * invoke {@link Attribute#getSplitTransition(AttributeMap)}. - * See {@link SplitTransition}. - **/ - SPLIT - } - private enum PropertyFlag { MANDATORY, EXECUTABLE, @@ -384,7 +359,7 @@ public final class Attribute implements Comparable<Attribute> { public static class Builder <TYPE> { private final String name; private final Type<TYPE> type; - private Transition configTransition = ConfigurationTransition.NONE; + private Transition configTransition = ConfigurationTransitionProxy.NONE; private RuleClassNamePredicate allowedRuleClassesForLabels = ANY_RULE; private RuleClassNamePredicate allowedRuleClassesForLabelsWarning = NO_RULE; private SplitTransitionProvider splitTransitionProvider; @@ -504,11 +479,11 @@ public final class Attribute implements Comparable<Attribute> { * Defines the configuration transition for this attribute. */ public Builder<TYPE> cfg(SplitTransitionProvider splitTransitionProvider) { - Preconditions.checkState(this.configTransition == ConfigurationTransition.NONE, + Preconditions.checkState(this.configTransition == ConfigurationTransitionProxy.NONE, "the configuration transition is already set"); this.splitTransitionProvider = Preconditions.checkNotNull(splitTransitionProvider); - this.configTransition = ConfigurationTransition.SPLIT; + this.configTransition = ConfigurationTransitionProxy.SPLIT; return this; } @@ -525,9 +500,9 @@ public final class Attribute implements Comparable<Attribute> { * {@code NONE}. */ public Builder<TYPE> cfg(Transition configTransition) { - Preconditions.checkState(this.configTransition == ConfigurationTransition.NONE, + Preconditions.checkState(this.configTransition == ConfigurationTransitionProxy.NONE, "the configuration transition is already set"); - Preconditions.checkArgument(configTransition != ConfigurationTransition.SPLIT, + Preconditions.checkArgument(configTransition != ConfigurationTransitionProxy.SPLIT, "split transitions must be defined using the SplitTransition object"); if (configTransition instanceof SplitTransition) { return cfg((SplitTransition) configTransition); @@ -1829,7 +1804,7 @@ public final class Attribute implements Comparable<Attribute> { ImmutableList<RuleAspect<?>> aspects) { Preconditions.checkNotNull(configTransition); Preconditions.checkArgument( - (configTransition == ConfigurationTransition.NONE) + (configTransition == ConfigurationTransitionProxy.NONE) || type.getLabelClass() == LabelClass.DEPENDENCY || type.getLabelClass() == LabelClass.NONDEP_REFERENCE, "Configuration transitions can only be specified for label or label list attributes"); |