diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
index 4a99825..c790fab 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
@@ -599,7 +599,7 @@
       BuildLangTypedAttributeValuesMap attributeValues =
           new BuildLangTypedAttributeValuesMap((Map<String, Object>) args[0]);
       try {
-        PackageContext pkgContext = (PackageContext) env.lookup(PackageFactory.PKG_CONTEXT);
+        PackageContext pkgContext = (PackageContext) env.dynamicLookup(PackageFactory.PKG_CONTEXT);
         if (pkgContext == null) {
           throw new EvalException(ast.getLocation(),
               "Cannot instantiate a rule when loading a .bzl file. Rules can only be called from "
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index 108a0cf..2ff000b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -1142,7 +1142,7 @@
    */
   public static PackageContext getContext(Environment env, Location location)
       throws EvalException {
-    PackageContext value = (PackageContext) env.lookup(PKG_CONTEXT);
+    PackageContext value = (PackageContext) env.dynamicLookup(PKG_CONTEXT);
     if (value == null) {
       // if PKG_CONTEXT is missing, we're not called from a BUILD file. This happens if someone
       // uses native.some_func() in the wrong place.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java
index d9a135f..5766cdc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileFunction.java
@@ -87,7 +87,7 @@
                     "Failed to evaluate resolved file " + key.getPath()));
           }
         }
-        Object resolved = resolvedEnvironment.lookup("resolved");
+        Object resolved = resolvedEnvironment.moduleLookup("resolved");
         if (resolved == null) {
           throw new ResolvedFileFunctionException(
               new BuildFileContainsErrorsException(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java
index 9dc5ed8..b39c104 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java
@@ -509,7 +509,7 @@
     AssignmentStatement assignmentStatement = (AssignmentStatement) statement;
     ImmutableSet<Identifier> boundIdentifiers = assignmentStatement.getLValue().boundIdentifiers();
     for (Identifier ident : boundIdentifiers) {
-      Object lookup = extensionEnv.lookup(ident.getName());
+      Object lookup = extensionEnv.moduleLookup(ident.getName());
       if (lookup instanceof SkylarkExportable) {
         try {
           SkylarkExportable exportable = (SkylarkExportable) lookup;
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 ca7cd8c..01d33fb 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
@@ -1123,7 +1123,7 @@
    * <p>TODO(laurentlb): Remove this method. Callers should know where the value is defined and use
    * the corresponding method (e.g. localLookup or moduleLookup).
    */
-  public Object lookup(String varname) {
+  Object lookup(String varname) {
     // Lexical frame takes precedence, then globals, then dynamics.
     Object lexicalValue = lexicalFrame.get(varname);
     if (lexicalValue != null) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkUtils.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkUtils.java
index cc92fd7..5d0c01f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkUtils.java
@@ -47,7 +47,7 @@
   private static final String BAZEL_INFO_KEY = "$bazel";
 
   private static BazelInfo getInfo(Environment env) {
-    Object info = env.lookup(BAZEL_INFO_KEY);
+    Object info = env.moduleLookup(BAZEL_INFO_KEY);
     if (info != null) {
       return (BazelInfo) info;
     }
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java
index 6275d22..fae5ed4 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkdebug/server/SkylarkDebugServerTest.java
@@ -441,7 +441,7 @@
                 Scope.newBuilder()
                     .setName("global")
                     .addBinding(getValueProto("c", 3))
-                    .addBinding(getValueProto("fn", env.lookup("fn"))))
+                    .addBinding(getValueProto("fn", env.moduleLookup("fn"))))
             .build());
 
     assertFramesEqualIgnoringValueIdentifiers(
@@ -458,7 +458,7 @@
                     .setName("global")
                     .addBinding(getValueProto("a", 1))
                     .addBinding(getValueProto("c", 3))
-                    .addBinding(getValueProto("fn", env.lookup("fn"))))
+                    .addBinding(getValueProto("fn", env.moduleLookup("fn"))))
             .build());
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java b/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java
index f1aa92f..e72f01b 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java
@@ -64,7 +64,7 @@
     //
     // input1.BUILD contains:
     // x = [1,2,'foo',4] + [1,2, "%s%d" % ('foo', 1)]
-    assertThat(env.lookup("x"))
+    assertThat(env.moduleLookup("x"))
         .isEqualTo(SkylarkList.createImmutable(Tuple.of(1, 2, "foo", 4, 1, 2, "foo1")));
   }
 
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 88fff09..25d3d5e 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
@@ -176,12 +176,12 @@
               .setEventHandler(Environment.FAIL_FAST_HANDLER)
               .build();
       env.update("x", 1);
-      assertThat(env.lookup("x")).isEqualTo(1);
+      assertThat(env.moduleLookup("x")).isEqualTo(1);
       env.update("y", 2);
-      assertThat(env.lookup("y")).isEqualTo(2);
-      assertThat(env.lookup("x")).isEqualTo(1);
+      assertThat(env.moduleLookup("y")).isEqualTo(2);
+      assertThat(env.moduleLookup("x")).isEqualTo(1);
       env.update("x", 3);
-      assertThat(env.lookup("x")).isEqualTo(3);
+      assertThat(env.moduleLookup("x")).isEqualTo(3);
     }
     try {
       // This update to an existing variable should fail because the environment was frozen.
@@ -205,7 +205,7 @@
         newEnvironmentWithSkylarkOptions("--incompatible_static_name_resolution=true")
             .setup("special_var", 42);
     BuildFileAST.eval(env, "special_var = 41");
-    assertThat(env.lookup("special_var")).isEqualTo(41);
+    assertThat(env.moduleLookup("special_var")).isEqualTo(41);
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java b/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java
index 7385f42..ab9e1fc 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java
@@ -167,7 +167,7 @@
   }
 
   public Object lookup(String varname) throws Exception {
-    return env.lookup(varname);
+    return env.moduleLookup(varname);
   }
 
   public Object eval(String... input) throws Exception {
