Make SplitTransitionProvider implement SkylarkValue
This enforces print representations (repr()) of all classes which implement SplitTransitionProvider (even for Fake API)
RELNOTES: None.
PiperOrigin-RevId: 229457928
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 5673ebb..8ee5c84 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
@@ -25,14 +25,17 @@
import com.google.common.collect.ImmutableList;
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.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.analysis.util.MockRule;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault;
+import com.google.devtools.build.lib.packages.Attribute.SplitTransitionProvider;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -267,20 +270,25 @@
.mandatory()
.allowedFileTypes()
.cfg(
- (AttributeMap map) ->
- (BuildOptions options) -> {
+ new SplitTransitionProvider() {
+ @Override
+ public void repr(SkylarkPrinter printer) {}
+
+ @Override
+ public SplitTransition apply(AttributeMap map) {
+ return (BuildOptions options) -> {
String define = map.get("define", STRING);
BuildOptions newOptions = options.clone();
BuildConfiguration.Options optionsFragment =
newOptions.get(BuildConfiguration.Options.class);
optionsFragment.commandLineBuildVariables =
- optionsFragment
- .commandLineBuildVariables
- .stream()
+ optionsFragment.commandLineBuildVariables.stream()
.filter((pair) -> !pair.getKey().equals(define))
.collect(toImmutableList());
return ImmutableList.of(newOptions);
- }));
+ };
+ }
+ }));
@Override
protected ConfiguredRuleClassProvider getRuleClassProvider() {