diff options
author | 2018-02-02 15:52:22 -0800 | |
---|---|---|
committer | 2018-02-02 15:53:55 -0800 | |
commit | a56a6adf7c5d2829ea99f393f1a2d2d3d4488e0f (patch) | |
tree | 2a7ec0955afd09a9fb1d39801b85dca6c2567bba /src/test/java | |
parent | 64d9a4d6dcd720a3b7a60ff550a17a7707dd41d0 (diff) |
Stop allowing generic LateBoundDefault value types. Such types are always either a Label or a List<Label>. We can easily enforce this through static type checking, so do it.
This will help with LateBoundDefault serialization, since we don't have to serialize an arbitrary object.
PiperOrigin-RevId: 184347100
Diffstat (limited to 'src/test/java')
6 files changed, 31 insertions, 28 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java index 9b11f04fb9..d6d0a967be 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java @@ -28,6 +28,7 @@ import com.google.devtools.build.lib.packages.AdvertisedProviderSet; import com.google.devtools.build.lib.packages.AspectDefinition; import com.google.devtools.build.lib.packages.AspectParameters; import com.google.devtools.build.lib.packages.Attribute; +import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault; import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy; @@ -76,8 +77,8 @@ public class AspectDefinitionTest { Attribute implicit = attr("$runtime", BuildType.LABEL) .value(Label.parseAbsoluteUnchecked("//run:time")) .build(); - LateBoundDefault<Void, Label> latebound = - LateBoundDefault.fromConstant(Label.parseAbsoluteUnchecked("//run:away")); + LabelLateBoundDefault<Void> latebound = + LateBoundDefault.fromConstantForTesting(Label.parseAbsoluteUnchecked("//run:away")); AspectDefinition simple = new AspectDefinition.Builder(TEST_ASPECT_CLASS) .add(implicit) .add(attr(":latebound", BuildType.LABEL).value(latebound)) diff --git a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java index b4d91c341f..5673ebbeb3 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java @@ -27,10 +27,9 @@ 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.util.BuildViewTestCase; import com.google.devtools.build.lib.analysis.util.MockRule; -import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.Location; -import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault; +import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault; import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.NoSuchTargetException; import com.google.devtools.build.lib.packages.Package; @@ -236,8 +235,8 @@ public class CircularDependencyTest extends BuildViewTestCase { /** A late bound dependency which depends on the 'dep' label if the 'define' is in --defines. */ // TODO(b/65746853): provide a way to do this without passing the entire configuration - private static final LateBoundDefault<BuildConfiguration, Label> LATE_BOUND_DEP = - LateBoundDefault.fromTargetConfiguration( + private static final LabelLateBoundDefault<BuildConfiguration> LATE_BOUND_DEP = + LabelLateBoundDefault.fromTargetConfiguration( BuildConfiguration.class, null, (rule, attributes, config) -> diff --git a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java index fe0bd77489..75e51e4aec 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java @@ -65,7 +65,7 @@ public class ConfigurationsForLateBoundTargetsTest extends AnalysisTestCase { .add( attr(":latebound_attr", LABEL) .value( - Attribute.LateBoundDefault.fromConstant( + Attribute.LateBoundDefault.fromConstantForTesting( Label.parseAbsoluteUnchecked("//foo:latebound_dep"))) .cfg(CHANGE_FOO_FLAG_TRANSITION)) .requiresConfigurationFragments(LateBoundSplitUtil.TestFragment.class); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java index 0be1b97e4e..c5bfa97a43 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java @@ -111,7 +111,7 @@ public class LateBoundSplitUtil { .allowedRuleClasses(Attribute.ANY_RULE) .cfg(SIMPLE_SPLIT) .value( - Attribute.LateBoundDefault.fromConstant( + Attribute.LateBoundDefault.fromConstantForTesting( Label.parseAbsoluteUnchecked("//foo:latebound_dep")))) .requiresConfigurationFragments(TestFragment.class); }); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java index 7f7049c152..ee090f9a4e 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java @@ -88,20 +88,25 @@ public class ConstraintsTest extends AbstractConstraintsTest { .compatibleWith(env.getLabel("//buildenv/rule_class_compat:a")) .restrictedTo(env.getLabel("//buildenv/rule_class_compat:b"))); - private static final MockRule RULE_WITH_IMPLICIT_AND_LATEBOUND_DEFAULTS = () -> MockRule.define( - "rule_with_implicit_and_latebound_deps", - (builder, env) -> - builder - .setUndocumented() - .add(Attribute.attr("$implicit", BuildType.LABEL) - .value(Label.parseAbsoluteUnchecked("//helpers:implicit"))) - .add(Attribute.attr(":latebound", BuildType.LABEL) - .value( - Attribute.LateBoundDefault.fromConstant( - Label.parseAbsoluteUnchecked("//helpers:latebound")))) - .add(Attribute.attr("normal", BuildType.LABEL) - .allowedFileTypes(FileTypeSet.NO_FILE) - .value(Label.parseAbsoluteUnchecked("//helpers:default")))); + private static final MockRule RULE_WITH_IMPLICIT_AND_LATEBOUND_DEFAULTS = + () -> + MockRule.define( + "rule_with_implicit_and_latebound_deps", + (builder, env) -> + builder + .setUndocumented() + .add( + Attribute.attr("$implicit", BuildType.LABEL) + .value(Label.parseAbsoluteUnchecked("//helpers:implicit"))) + .add( + Attribute.attr(":latebound", BuildType.LABEL) + .value( + Attribute.LateBoundDefault.fromConstantForTesting( + Label.parseAbsoluteUnchecked("//helpers:latebound")))) + .add( + Attribute.attr("normal", BuildType.LABEL) + .allowedFileTypes(FileTypeSet.NO_FILE) + .value(Label.parseAbsoluteUnchecked("//helpers:default")))); private static final MockRule RULE_WITH_ENFORCED_IMPLICIT_ATTRIBUTE = () -> MockRule.define( "rule_with_enforced_implicit_deps", diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java index ac8872f4c4..353f62f4a4 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java @@ -43,7 +43,7 @@ import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.AspectDefinition; import com.google.devtools.build.lib.packages.AspectParameters; -import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault; +import com.google.devtools.build.lib.packages.Attribute.LabelListLateBoundDefault; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.NativeAspectClass; import com.google.devtools.build.lib.packages.Rule; @@ -731,11 +731,9 @@ public class TestAspects { attr("$dep", LABEL).value(Label.parseAbsoluteUnchecked("//extra:extra"))); // TODO(b/65746853): provide a way to do this without passing the entire configuration - private static final LateBoundDefault<?, List<Label>> PLUGINS_LABEL_LIST = - LateBoundDefault.fromTargetConfiguration( - JavaConfiguration.class, - ImmutableList.of(), - (rule, attributes, javaConfig) -> javaConfig.getPlugins()); + private static final LabelListLateBoundDefault<?> PLUGINS_LABEL_LIST = + LabelListLateBoundDefault.fromTargetConfiguration( + JavaConfiguration.class, (rule, attributes, javaConfig) -> javaConfig.getPlugins()); public static final MockRule LATE_BOUND_DEP_RULE = () -> MockRule.ancestor(BASE_RULE.getClass()).factory(DummyRuleFactory.class).define( |