Require semantics field for Environment.Builder
Follow-up of unknown commit.
RELNOTES: None
PiperOrigin-RevId: 172922507
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
index 90e20da..3d09253 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
@@ -692,7 +692,7 @@
Frame globalFrame = new Frame(mutability, parent);
Frame dynamicFrame = new Frame(mutability, null);
if (semantics == null) {
- semantics = SkylarkSemantics.DEFAULT_SEMANTICS;
+ throw new IllegalArgumentException("must call either setSemantics or useDefaultSemantics");
}
if (importedExtensions == null) {
importedExtensions = ImmutableMap.of();
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java
index 1be64cb..1254fef 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.syntax;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.devtools.build.lib.testutil.MoreAsserts.expectThrows;
import static org.junit.Assert.fail;
import com.google.common.collect.Sets;
@@ -94,6 +95,18 @@
}
@Test
+ public void testBuilderRequiresSemantics() throws Exception {
+ try (Mutability mut = Mutability.create("test")) {
+ IllegalArgumentException expected =
+ expectThrows(
+ IllegalArgumentException.class,
+ () -> Environment.builder(mut).build());
+ assertThat(expected).hasMessageThat()
+ .contains("must call either setSemantics or useDefaultSemantics");
+ }
+ }
+
+ @Test
public void testGetVariableNames() throws Exception {
Environment outerEnv;
Environment innerEnv;