Some simplifications for package serialization.
PiperOrigin-RevId: 183842057
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 6a389b1..858ae01 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -824,6 +824,11 @@
return configurationFragmentMap;
}
+ /** Returns all skylark objects in global scope for this RuleClassProvider. */
+ public Map<String, Object> getTransitiveGlobalBindings() {
+ return globals.getTransitiveBindings();
+ }
+
/** Returns all registered {@link BuildConfiguration.Fragment} classes. */
public ImmutableSortedSet<Class<? extends BuildConfiguration.Fragment>> getAllFragments() {
ImmutableSortedSet.Builder<Class<? extends BuildConfiguration.Fragment>> fragmentsBuilder =
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index b07d02a..4bbd3bf 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1585,7 +1585,7 @@
@Override
public void serialize(
PackageCodecDependencies codecDeps, Package input, CodedOutputStream codedOut)
- throws IOException {
+ throws IOException, SerializationException {
codecDeps.getPackageSerializer().serialize(input, codedOut);
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
index af25075..a06e454 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageSerializerInterface.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.packages;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.protobuf.CodedOutputStream;
import java.io.IOException;
@@ -31,5 +32,6 @@
* @param codedOut the stream to write {@code pkg}'s serialized representation to
* @throws IOException on failure writing to {@code codedOut}
*/
- void serialize(Package pkg, CodedOutputStream codedOut) throws IOException;
+ void serialize(Package pkg, CodedOutputStream codedOut)
+ throws SerializationException, IOException;
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java
index a2da054..8f83d75 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkInfo.java
@@ -230,7 +230,8 @@
}
/** A {@link SkylarkInfo} implementation that stores its values in a map. */
- private static final class MapBackedSkylarkInfo extends SkylarkInfo {
+ // TODO(b/72448383): Make private.
+ public static final class MapBackedSkylarkInfo extends SkylarkInfo {
private final ImmutableMap<String, Object> values;