Stop removing onlyLoadingPhase bindings

They are now disabled based on a dynamic flag instead. It's all too easy
to bypass removal with duplication, anyway, as in my_native_glob = native.glob

--
MOS_MIGRATED_REVID=101714237
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkNativeModule.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkNativeModule.java
index c2186b9..1f32cbd 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkNativeModule.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkNativeModule.java
@@ -29,8 +29,8 @@
 /**
  * A class for the Skylark native module.
  */
-@SkylarkModule(name = "native", namespace = true, onlyLoadingPhase = true, doc =
-      "A built-in module to support native rules and other package helper functions. "
+@SkylarkModule(name = "native", namespace = true, doc =
+    "A built-in module to support native rules and other package helper functions. "
     + "All native rules appear as functions in this module. Note that the native module is only "
     + "available in the loading phase (i.e. for macros, not for rule implementations).<br/>"
     + "Extra helper functions:")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java
index 35dfa4d..635b1ed 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java
@@ -51,7 +51,6 @@
 @SkylarkModule(
   name = "attr",
   namespace = true,
-  onlyLoadingPhase = true,
   doc =
       "Module for creating new attributes. "
           + "They are only for use with the <a href=\"globals.html#rule\">rule</a> function."
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
index 274d527..a7c9b4f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
@@ -59,9 +59,6 @@
       SkylarkEnvironment env = ruleContext.getRule().getRuleClassObject()
           .getRuleDefinitionEnvironment().cloneEnv(
               ruleContext.getAnalysisEnvironment().getEventHandler());
-      // Collect the symbols to disable statically and pass at the next call, so we don't need to
-      // clone the RuleDefinitionEnvironment.
-      env.disableOnlyLoadingPhaseObjects();
       Object target = ruleImplementation.call(ImmutableList.<Object>of(skylarkRuleContext),
           ImmutableMap.<String, Object>of(), null, env);
 
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 b6acb05..3b4342a 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
@@ -90,12 +90,6 @@
   protected Map<PathFragment, SkylarkEnvironment> importedExtensions;
 
   /**
-   * A set of disabled namespaces propagating through function calling. This is needed because
-   * UserDefinedFunctions lock the definition Environment which should be immutable.
-   */
-  protected Set<Class<?>> disabledNameSpaces = new HashSet<>();
-
-  /**
    * A set of variables propagating through function calling. It's only used to call
    * native rules from Skylark build extensions.
    */
@@ -360,10 +354,6 @@
 
   private Map<String, BaseFunction> getNamespaceFunctions(Class<?> nameSpace) {
     nameSpace = getCanonicalRepresentation(nameSpace);
-    if (disabledNameSpaces.contains(nameSpace)
-        || (parent != null && parent.disabledNameSpaces.contains(nameSpace))) {
-      return null;
-    }
     Environment topLevel = this;
     while (topLevel.parent != null) {
       topLevel = topLevel.parent;
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java
index c200b83..cc23817 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java
@@ -22,9 +22,7 @@
 import com.google.devtools.build.lib.util.Fingerprint;
 
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
@@ -81,7 +79,6 @@
       // This should never happen.
       throw new IllegalStateException(e);
     }
-    childEnv.disabledNameSpaces = callerEnv.disabledNameSpaces;
     return childEnv;
   }
 
@@ -198,24 +195,6 @@
     return variable != null ? EvalUtils.getSkylarkType(variable.getClass()) : null;
   }
 
-  /**
-   * Removes the functions and the modules (i.e. the symbol of the module from the top level
-   * Environment and the functions attached to it) from the Environment which should be present
-   * only during the loading phase.
-   */
-  public void disableOnlyLoadingPhaseObjects() {
-    List<Class<?>> modulesToRemove = new ArrayList<>();
-    for (Map.Entry<String, Object> entry : env.entrySet()) {
-      Object object = entry.getValue();
-      if (object.getClass().isAnnotationPresent(SkylarkModule.class)) {
-        if (object.getClass().getAnnotation(SkylarkModule.class).onlyLoadingPhase()) {
-          modulesToRemove.add(entry.getValue().getClass());
-        }
-      }
-    }
-    disabledNameSpaces.addAll(modulesToRemove);
-  }
-
   public void handleEvent(Event event) {
     eventHandler.handle(event);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkModule.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkModule.java
index a9c0f9b..477bffb 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkModule.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkModule.java
@@ -33,6 +33,4 @@
   boolean documented() default true;
 
   boolean namespace() default false;
-
-  boolean onlyLoadingPhase() default false;
 }