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;