Remove Label.parseAbsolute(string, boolean). The goal is to get rid of all label methods that don't explicitly pass a repository mapping.

RELNOTES: None
PiperOrigin-RevId: 201717665
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 ddc6ab5..e85915f 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
@@ -100,16 +100,21 @@
   // If we don't want to support old built-in rules and Skylark simultaneously
   // (except for transition phase) it's probably OK.
   private static final LoadingCache<String, Label> labelCache =
-      CacheBuilder.newBuilder().build(new CacheLoader<String, Label>() {
-        @Override
-        public Label load(String from) throws Exception {
-          try {
-            return Label.parseAbsolute(from, false);
-          } catch (LabelSyntaxException e) {
-            throw new Exception(from);
-          }
-        }
-      });
+      CacheBuilder.newBuilder()
+          .build(
+              new CacheLoader<String, Label>() {
+                @Override
+                public Label load(String from) throws Exception {
+                  try {
+                    return Label.parseAbsolute(
+                        from,
+                        /* defaultToMain=*/ false,
+                        /* repositoryMapping= */ ImmutableMap.of());
+                  } catch (LabelSyntaxException e) {
+                    throw new Exception(from);
+                  }
+                }
+              });
 
   // TODO(bazel-team): Remove the code duplication (BaseRuleClasses and this class).
   /** Parent rule class for non-executable non-test Skylark rules. */
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
index 9899f2c..b81efab 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
@@ -99,28 +99,12 @@
    *
    * <p>Treats labels in the default repository as being in the main repository instead.
    */
-  public static Label parseAbsolute(String absName) throws LabelSyntaxException {
-    return parseAbsolute(absName, true);
-  }
-
-  /**
-   * Factory for Labels from absolute string form. e.g.
-   *
-   * <pre>
-   * //foo/bar
-   * //foo/bar:quux
-   * {@literal @}foo
-   * {@literal @}foo//bar
-   * {@literal @}foo//bar:baz
-   * </pre>
-   *
-   * @param defaultToMain Treat labels in the default repository as being in the main one instead.
-   */
   @Deprecated
-  // TODO(dannark): Remove usages of this method, use other parseAbsolute() instead
-  public static Label parseAbsolute(String absName, boolean defaultToMain)
-      throws LabelSyntaxException {
-    return parseAbsolute(absName, defaultToMain, /* repositoryMapping= */ ImmutableMap.of());
+  // TODO(b/110698008): deprecate this method and only have parseAbsolute() methods that pass
+  // a repositoryMapping
+  public static Label parseAbsolute(String absName) throws LabelSyntaxException {
+    return parseAbsolute(
+        absName, /* defaultToMain= */ true, /* repositoryMapping= */ ImmutableMap.of());
   }
 
   /**
@@ -185,9 +169,11 @@
    *
    * <p>Do not use this when the argument is not hard-wired.
    */
+  @Deprecated
+  // TODO(b/110698008): create parseAbsoluteUnchecked that passes repositoryMapping
   public static Label parseAbsoluteUnchecked(String absName, boolean defaultToMain) {
     try {
-      return parseAbsolute(absName, defaultToMain);
+      return parseAbsolute(absName, defaultToMain, /* repositoryMapping= */ ImmutableMap.of());
     } catch (LabelSyntaxException e) {
       throw new IllegalArgumentException(e);
     }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BuildType.java b/src/main/java/com/google/devtools/build/lib/packages/BuildType.java
index ecc397b..1e48835 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BuildType.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/BuildType.java
@@ -267,7 +267,8 @@
         }
         // TODO(b/110101445): check if context is ever actually null
         if (context == null) {
-          return Label.parseAbsolute((String) x, false);
+          return Label.parseAbsolute(
+              (String) x, /* defaultToMain= */ false, /* repositoryMapping= */ ImmutableMap.of());
           // TODO(b/110308446): remove instances of context being a Label
         } else if (context instanceof Label) {
           return ((Label) context)
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index 36c172b..1f75b1e 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -355,7 +355,11 @@
     Attribute attribute = Iterables.getOnlyElement(aspect.getAttributes());
     assertThat(attribute.getName()).isEqualTo("$extra_deps");
     assertThat(attribute.getDefaultValue(null))
-        .isEqualTo(Label.parseAbsolute("//foo/bar:baz", false));
+        .isEqualTo(
+            Label.parseAbsolute(
+                "//foo/bar:baz",
+                /* defaultToMain= */ false,
+                /* repositoryMapping= */ ImmutableMap.of()));
   }
 
   @Test
@@ -467,19 +471,36 @@
   public void testLabelAttrDefaultValueAsString() throws Exception {
     Attribute sligleAttr = buildAttribute("a1", "attr.label(default = '//foo:bar')");
     assertThat(sligleAttr.getDefaultValueForTesting())
-        .isEqualTo(Label.parseAbsolute("//foo:bar", false));
+        .isEqualTo(
+            Label.parseAbsolute(
+                "//foo:bar",
+                /* defaultToMain= */ false,
+                /* repositoryMapping= */ ImmutableMap.of()));
 
     Attribute listAttr =
         buildAttribute("a2", "attr.label_list(default = ['//foo:bar', '//bar:foo'])");
     assertThat(listAttr.getDefaultValueForTesting())
         .isEqualTo(
             ImmutableList.of(
-                Label.parseAbsolute("//foo:bar", false), Label.parseAbsolute("//bar:foo", false)));
+                Label.parseAbsolute(
+                    "//foo:bar",
+                    /* defaultToMain= */ false,
+                    /* repositoryMapping= */ ImmutableMap.of()),
+                Label.parseAbsolute(
+                    "//bar:foo",
+                    /* defaultToMain= */ false,
+                    /*repositoryMapping= */ ImmutableMap.of())));
 
     Attribute dictAttr =
         buildAttribute("a3", "attr.label_keyed_string_dict(default = {'//foo:bar': 'my value'})");
     assertThat(dictAttr.getDefaultValueForTesting())
-        .isEqualTo(ImmutableMap.of(Label.parseAbsolute("//foo:bar", false), "my value"));
+        .isEqualTo(
+            ImmutableMap.of(
+                Label.parseAbsolute(
+                    "//foo:bar",
+                    /* defaultToMain= */ false,
+                    /* repositoryMapping= */ ImmutableMap.of()),
+                "my value"));
   }
 
   @Test