aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-02-28 12:16:38 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-28 12:18:44 -0800
commite70aafe68eebfd4f7dedf3cccd19deae72d29db6 (patch)
tree7dd211075236b3c06b34b0517852bdd624d8a87d /src/main/java/com/google/devtools/build/lib/analysis
parent77c4f30b333106ff15de5b5dd42076db01fd22b4 (diff)
Deprecate and remove several uses of the 'values' map in NativeInfo subclasses.
These subclasses should be using @SkylarkCallable(structField = true) instead This is a bit of a memory win, as there is now no need to store field information twice. There are still a couple of stragglers that are more difficult, namely ToolchainInfo and DefaultInfo. Their APIs will likely need some more extensive revamping before proceeding. RELNOTES: None. PiperOrigin-RevId: 187364392
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintSettingInfo.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintValueInfo.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/platform/PlatformInfo.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java9
7 files changed, 18 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java
index 9af9811a50..82c04c259e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java
@@ -15,7 +15,6 @@ package com.google.devtools.build.lib.analysis;
import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Location;
@@ -62,8 +61,7 @@ public final class DefaultInfo extends NativeInfo {
RunfilesProvider runfilesProvider,
FileProvider fileProvider,
FilesToRunProvider filesToRunProvider) {
- // Fields map is not used here to prevent memory regression
- super(PROVIDER, ImmutableMap.<String, Object>of());
+ super(PROVIDER);
this.runfilesProvider = runfilesProvider;
this.fileProvider = fileProvider;
this.filesToRunProvider = filesToRunProvider;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
index f1c14234f1..9561c91229 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
@@ -126,7 +126,7 @@ public final class OutputGroupInfo extends NativeInfo
private final ImmutableMap<String, NestedSet<Artifact>> outputGroups;
public OutputGroupInfo(ImmutableMap<String, NestedSet<Artifact>> outputGroups) {
- super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of());
+ super(SKYLARK_CONSTRUCTOR);
this.outputGroups = outputGroups;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintSettingInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintSettingInfo.java
index 4b3f2f44f7..c2661ad986 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintSettingInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintSettingInfo.java
@@ -15,7 +15,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;
@@ -75,7 +74,7 @@ public class ConstraintSettingInfo extends NativeInfo {
@VisibleForSerialization
ConstraintSettingInfo(Label label, Location location) {
- super(PROVIDER, ImmutableMap.<String, Object>of("label", label), location);
+ super(PROVIDER, location);
this.label = label;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintValueInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintValueInfo.java
index 84f3544428..3a00932a55 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintValueInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/ConstraintValueInfo.java
@@ -15,7 +15,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;
@@ -79,9 +78,6 @@ public class ConstraintValueInfo extends NativeInfo {
ConstraintValueInfo(ConstraintSettingInfo constraint, Label label, Location location) {
super(
SKYLARK_CONSTRUCTOR,
- ImmutableMap.<String, Object>of(
- "constraint", constraint,
- "label", label),
location);
this.constraint = constraint;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/PlatformInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/platform/PlatformInfo.java
index 3b3462d420..90c8217a0c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/PlatformInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/PlatformInfo.java
@@ -113,9 +113,6 @@ public class PlatformInfo extends NativeInfo {
Location location) {
super(
SKYLARK_CONSTRUCTOR,
- ImmutableMap.<String, Object>of(
- "label", label,
- "constraints", constraints.values().asList()),
location);
this.label = label;
@@ -153,7 +150,7 @@ public class PlatformInfo extends NativeInfo {
structField = true
)
public Iterable<ConstraintValueInfo> constraints() {
- return constraints.values();
+ return constraints.values().asList();
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java
index 8b60872cea..63c3abf0a4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/ExecutionInfo.java
@@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.NativeInfo;
import com.google.devtools.build.lib.packages.NativeProvider;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import java.util.Map;
/**
@@ -33,7 +34,7 @@ public final class ExecutionInfo extends NativeInfo {
private final ImmutableMap<String, String> executionInfo;
public ExecutionInfo(Map<String, String> requirements) {
- super(PROVIDER, ImmutableMap.<String, Object>of("requirements", requirements));
+ super(PROVIDER);
this.executionInfo = ImmutableMap.copyOf(requirements);
}
@@ -42,6 +43,11 @@ public final class ExecutionInfo extends NativeInfo {
* platforms, etc. Rule tags, such as "requires-XXX", may also be added
* as keys to the map.
*/
+ @SkylarkCallable(
+ name = "requirements",
+ doc = "A dict indicating special execution requirements, such as hardware platforms.",
+ structField = true
+ )
public ImmutableMap<String, String> getExecutionInfo() {
return executionInfo;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java
index 013ff33bb6..858f46adeb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestEnvironmentInfo.java
@@ -15,10 +15,10 @@
package com.google.devtools.build.lib.analysis.test;
import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.NativeInfo;
import com.google.devtools.build.lib.packages.NativeProvider;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import java.util.Map;
/** Provider containing any additional environment variables for use in the test action. */
@@ -34,13 +34,18 @@ public final class TestEnvironmentInfo extends NativeInfo {
/** Constructs a new provider with the given variable name to variable value mapping. */
public TestEnvironmentInfo(Map<String, String> environment) {
- super(PROVIDER, ImmutableMap.<String, Object>of("environment", environment));
+ super(PROVIDER);
this.environment = Preconditions.checkNotNull(environment);
}
/**
* Returns environment variables which should be set on the test action.
*/
+ @SkylarkCallable(
+ name = "environment",
+ doc = "A dict containing environment variables which should be set on the test action.",
+ structField = true
+ )
public Map<String, String> getEnvironment() {
return environment;
}