From bb87c12dda25ebad124907625a9cdb973cf9e1f2 Mon Sep 17 00:00:00 2001 From: John Cater Date: Fri, 28 Jul 2017 16:28:32 +0200 Subject: Remove the type data from ToolchainInfo, it is reduntant with DeclaredToolchainInfo. Fixes #3458. Change-Id: I24dd6d9d24432b9aaf0229de658f07e465ad63cb PiperOrigin-RevId: 163466882 --- .../build/lib/analysis/platform/ToolchainInfo.java | 34 +++++++--------------- .../lib/analysis/platform/ToolchainInfoTest.java | 12 -------- .../build/lib/rules/platform/ToolchainTest.java | 3 -- .../lib/rules/platform/ToolchainTestCase.java | 1 - src/test/shell/bazel/toolchain_test.sh | 4 +-- 5 files changed, 12 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java index 16e5a857ac..d8d1282ef4 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.analysis.platform; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.NativeClassObjectConstructor; @@ -49,13 +48,12 @@ public class ToolchainInfo extends SkylarkClassObject { FunctionSignature.of( /*numMandatoryPositionals=*/ 0, /*numOptionalPositionals=*/ 0, - /*numMandatoryNamedOnly*/ 1, + /*numMandatoryNamedOnly*/ 0, /*starArg=*/ false, /*kwArg=*/ true, - /*names=*/ "type", - "data"), + /*names=*/ "data"), /*defaultValues=*/ null, - /*types=*/ ImmutableList.of(SkylarkType.of(Label.class), SkylarkType.DICT)); + /*types=*/ ImmutableList.of(SkylarkType.DICT)); /** Skylark constructor and identifier for this provider. */ public static final NativeClassObjectConstructor SKYLARK_CONSTRUCTOR = @@ -64,34 +62,24 @@ public class ToolchainInfo extends SkylarkClassObject { @Override protected ToolchainInfo createInstanceFromSkylark(Object[] args, Location loc) throws EvalException { - // Based on SIGNATURE above, the args are label, map. - Label type = (Label) args[0]; Map data = - SkylarkDict.castSkylarkDictOrNoneToDict(args[1], String.class, Object.class, "data"); - return ToolchainInfo.create(type, data, loc); + SkylarkDict.castSkylarkDictOrNoneToDict(args[0], String.class, Object.class, "data"); + return ToolchainInfo.create(data, loc); } }; - private final Label type; - - private ToolchainInfo(Label type, Map toolchainData, Location loc) { + private ToolchainInfo(Map toolchainData, Location loc) { super( SKYLARK_CONSTRUCTOR, - ImmutableMap.builder().put("type", type).putAll(toolchainData).build(), + ImmutableMap.builder().putAll(toolchainData).build(), loc); - - this.type = type; - } - - public Label type() { - return type; } - public static ToolchainInfo create(Label type, Map toolchainData) { - return create(type, toolchainData, Location.BUILTIN); + public static ToolchainInfo create(Map toolchainData) { + return create(toolchainData, Location.BUILTIN); } - public static ToolchainInfo create(Label type, Map toolchainData, Location loc) { - return new ToolchainInfo(type, toolchainData, loc); + public static ToolchainInfo create(Map toolchainData, Location loc) { + return new ToolchainInfo(toolchainData, loc); } } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfoTest.java b/src/test/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfoTest.java index b37ee76666..d642994955 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfoTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfoTest.java @@ -35,7 +35,6 @@ public class ToolchainInfoTest extends BuildViewTestCase { "test/toolchain/my_toolchain.bzl", "def _impl(ctx):", " toolchain = platform_common.ToolchainInfo(", - " type = Label('//test/toolchain:my_toolchain_type'),", " extra_label = ctx.attr.extra_label,", " extra_str = ctx.attr.extra_str)", " return [toolchain]", @@ -61,8 +60,6 @@ public class ToolchainInfoTest extends BuildViewTestCase { ToolchainInfo provider = PlatformProviderUtils.toolchain(toolchain); assertThat(provider).isNotNull(); - assertThat(provider.type()).isEqualTo(makeLabel("//test/toolchain:my_toolchain_type")); - ConfiguredTarget extraLabel = (ConfiguredTarget) provider.getValue("extra_label"); assertThat(extraLabel).isNotNull(); assertThat(extraLabel.getLabel()).isEqualTo(makeLabel("//test/toolchain:dep")); @@ -75,23 +72,14 @@ public class ToolchainInfoTest extends BuildViewTestCase { .addEqualityGroup( // Base case. ToolchainInfo.create( - makeLabel("//toolchain:tc1"), ImmutableMap.of("foo", "val1", "bar", "val2"), Location.BUILTIN), ToolchainInfo.create( - makeLabel("//toolchain:tc1"), - ImmutableMap.of("foo", "val1", "bar", "val2"), - Location.BUILTIN)) - .addEqualityGroup( - // Different type. - ToolchainInfo.create( - makeLabel("//toolchain:tc2"), ImmutableMap.of("foo", "val1", "bar", "val2"), Location.BUILTIN)) .addEqualityGroup( // Different data. ToolchainInfo.create( - makeLabel("//toolchain:tc1"), ImmutableMap.of("foo", "val1", "bar", "val3"), Location.BUILTIN)) .testEquals(); diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTest.java b/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTest.java index e00314b84e..c58af1f069 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTest.java @@ -48,15 +48,12 @@ public class ToolchainTest extends BuildViewTestCase { scratch.file( "toolchain/toolchain_def.bzl", "def _impl(ctx):", - " toolchain_type = ctx.attr._toolchain_type[platform_common.ToolchainTypeInfo]", " toolchain = platform_common.ToolchainInfo(", - " type = toolchain_type,", " data = ctx.attr.data)", " return [toolchain]", "toolchain_def = rule(", " implementation = _impl,", " attrs = {", - " '_toolchain_type': attr.label(default = Label('//toolchain:demo_toolchain')),", " 'data': attr.string()})"); scratch.file( "toolchain/BUILD", diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTestCase.java index 3b9548d9a6..bea2f5f227 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/ToolchainTestCase.java @@ -89,7 +89,6 @@ public abstract class ToolchainTestCase extends SkylarkTestCase { "toolchain/toolchain_def.bzl", "def _impl(ctx):", " toolchain = platform_common.ToolchainInfo(", - " type = Label('//toolchain:test_toolchain'),", " data = ctx.attr.data)", " return [toolchain]", "test_toolchain = rule(", diff --git a/src/test/shell/bazel/toolchain_test.sh b/src/test/shell/bazel/toolchain_test.sh index 6490bf2d13..19739d3631 100755 --- a/src/test/shell/bazel/toolchain_test.sh +++ b/src/test/shell/bazel/toolchain_test.sh @@ -52,7 +52,6 @@ function write_test_toolchain() { cat >> toolchain/toolchain.bzl < $TEST_log || fail "Build failed" - expect_log 'type = "//toolchain:test_toolchain"' expect_log 'extra_label = "//:dep_rule"' expect_log 'extra_str = "bar"' } -- cgit v1.2.3