Remove implicit _stl attribute from C++ rules.

PiperOrigin-RevId: 695922607
Change-Id: I42bae9605bea5c2b4fea6a6a83f060bef1bea53e
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
index 5309498..ee7ae99 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcStarlarkInternal.java
@@ -44,15 +44,12 @@
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.packages.Attribute.ComputedDefault;
-import com.google.devtools.build.lib.packages.AttributeMap;
 import com.google.devtools.build.lib.packages.Info;
 import com.google.devtools.build.lib.packages.License;
 import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
 import com.google.devtools.build.lib.packages.StarlarkInfo;
 import com.google.devtools.build.lib.packages.StarlarkProvider;
 import com.google.devtools.build.lib.packages.StructImpl;
-import com.google.devtools.build.lib.packages.Types;
 import com.google.devtools.build.lib.rules.cpp.CcLinkingContext.Linkstamp;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.LibraryToLinkValue;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.SequenceBuilder;
@@ -62,7 +59,6 @@
 import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
 import com.google.devtools.build.lib.starlarkbuildapi.FileApi;
-import com.google.devtools.build.lib.starlarkbuildapi.NativeComputedDefaultApi;
 import com.google.devtools.build.lib.starlarkbuildapi.core.ProviderApi;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import javax.annotation.Nullable;
@@ -290,25 +286,6 @@
     }
   }
 
-  /**
-   * TODO(bazel-team): This can be re-written directly to Starlark but it will cause a memory
-   * regression due to the way StarlarkComputedDefault is stored for each rule.
-   */
-  static class StlComputedDefault extends ComputedDefault implements NativeComputedDefaultApi {
-    @Override
-    @Nullable
-    public Object getDefault(AttributeMap rule) {
-      return rule.getOrDefault("tags", Types.STRING_LIST, ImmutableList.of()).contains("__CC_STL__")
-          ? null
-          : Label.parseCanonicalUnchecked("@//third_party/stl");
-    }
-  }
-
-  @StarlarkMethod(name = "stl_computed_default", documented = false)
-  public ComputedDefault getStlComputedDefault() {
-    return new StlComputedDefault();
-  }
-
   @StarlarkMethod(
       name = "create_cc_launcher_info",
       doc = "Create a CcLauncherInfo instance.",
diff --git a/src/main/starlark/builtins_bzl/common/cc/attrs.bzl b/src/main/starlark/builtins_bzl/common/cc/attrs.bzl
index 808c5d4..4c06a8c 100644
--- a/src/main/starlark/builtins_bzl/common/cc/attrs.bzl
+++ b/src/main/starlark/builtins_bzl/common/cc/attrs.bzl
@@ -398,7 +398,6 @@
     "licenses": attr.license() if hasattr(attr, "license") else attr.string_list(),
     "_cc_binary": attr.bool(),
     "_is_test": attr.bool(default = False),
-    "_stl": semantics.get_stl(),
     # TODO(b/288421584): necessary because IDE aspect can't see toolchains
     "_cc_toolchain": attr.label(default = "@" + semantics.get_repo() + "//tools/cpp:current_cc_toolchain"),
     "_def_parser": semantics.get_def_parser(),
diff --git a/src/main/starlark/builtins_bzl/common/cc/cc_library.bzl b/src/main/starlark/builtins_bzl/common/cc/cc_library.bzl
index a627675..79b8848 100755
--- a/src/main/starlark/builtins_bzl/common/cc/cc_library.bzl
+++ b/src/main/starlark/builtins_bzl/common/cc/cc_library.bzl
@@ -947,7 +947,6 @@
 """),
         # buildifier: disable=attr-license
         "licenses": attr.license() if hasattr(attr, "license") else attr.string_list(),
-        "_stl": semantics.get_stl(),
         "_def_parser": semantics.get_def_parser(),
         # TODO(b/288421584): necessary because IDE aspect can't see toolchains
         "_cc_toolchain": attr.label(default = "@" + semantics.get_repo() + "//tools/cpp:current_cc_toolchain"),
diff --git a/src/main/starlark/builtins_bzl/common/cc/semantics.bzl b/src/main/starlark/builtins_bzl/common/cc/semantics.bzl
index 37f4fe2..1bc46c5 100644
--- a/src/main/starlark/builtins_bzl/common/cc/semantics.bzl
+++ b/src/main/starlark/builtins_bzl/common/cc/semantics.bzl
@@ -31,9 +31,6 @@
 def _get_semantics():
     return _builtins.internal.bazel_cc_internal.semantics
 
-def _get_stl():
-    return attr.label()
-
 def _get_repo():
     return "bazel_tools"
 
@@ -170,7 +167,6 @@
     get_distribs_attr = _get_distribs_attr,
     get_licenses_attr = _get_licenses_attr,
     get_def_parser = _get_def_parser,
-    get_stl = _get_stl,
     should_create_empty_archive = _should_create_empty_archive,
     get_grep_includes = _get_grep_includes,
     get_implementation_deps_allowed_attr = _get_implementation_deps_allowed_attr,
diff --git a/src/main/starlark/builtins_bzl/common/python/py_internal.bzl b/src/main/starlark/builtins_bzl/common/python/py_internal.bzl
index b48f1fd..8e160cc 100644
--- a/src/main/starlark/builtins_bzl/common/python/py_internal.bzl
+++ b/src/main/starlark/builtins_bzl/common/python/py_internal.bzl
@@ -44,9 +44,6 @@
 def _cc_semantics_get_runtimes_toolchain(*args, **kwargs):
     return cc_semantics.get_runtimes_toolchain(*args, **kwargs)
 
-def _cc_semantics_get_stl(*args, **kwargs):
-    return cc_semantics.get_stl(*args, **kwargs)
-
 def _cc_toolchain_strip_files(cc_toolchain, *args, **kwargs):
     return cc_toolchain._strip_files
 
@@ -166,7 +163,6 @@
     cc_launcher_info_cc_info = _cc_launcher_info_cc_info,
     cc_semantics_get_cc_runtimes = _cc_semantics_get_cc_runtimes,
     cc_semantics_get_runtimes_toolchain = _cc_semantics_get_runtimes_toolchain,
-    cc_semantics_get_stl = _cc_semantics_get_stl,
     cc_toolchain_strip_files = _cc_toolchain_strip_files,
     cc_toolchain_build_info_files = _cc_toolchain_build_info_files,
     compilation_outputs = _compilation_outputs,