bazel: pass SkylarkType not Class to Depset.of where convenient

This CL addresses Artifact, Label, and String.
A few ad-hoc classes remain.

PiperOrigin-RevId: 282013214
diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
index 9595c43..0aa4b19 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
@@ -521,12 +521,12 @@
 
   @Override
   public Depset getSkylarkInputs() {
-    return Depset.of(Artifact.class, NestedSetBuilder.wrap(Order.STABLE_ORDER, getInputs()));
+    return Depset.of(Artifact.TYPE, NestedSetBuilder.wrap(Order.STABLE_ORDER, getInputs()));
   }
 
   @Override
   public Depset getSkylarkOutputs() {
-    return Depset.of(Artifact.class, NestedSetBuilder.wrap(Order.STABLE_ORDER, getOutputs()));
+    return Depset.of(Artifact.TYPE, NestedSetBuilder.wrap(Order.STABLE_ORDER, getOutputs()));
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java
index 9ed513c..290cfa7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java
@@ -46,7 +46,7 @@
       FilesToRunProvider filesToRunProvider) {
     this(
         Location.BUILTIN,
-        Depset.of(Artifact.class, fileProvider.getFilesToBuild()),
+        Depset.of(Artifact.TYPE, fileProvider.getFilesToBuild()),
         Runfiles.EMPTY,
         (runfilesProvider == null) ? Runfiles.EMPTY : runfilesProvider.getDataRunfiles(),
         (runfilesProvider == null) ? Runfiles.EMPTY : runfilesProvider.getDefaultRunfiles(),
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
index aa90fac..ac99a11 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
@@ -248,7 +248,7 @@
 
     NestedSet<Artifact> result = outputGroups.get(key);
     if (result != null) {
-      return Depset.of(Artifact.class, result);
+      return Depset.of(Artifact.TYPE, result);
     } else {
       throw new EvalException(loc, String.format(
           "Output group %s not present", key
@@ -272,7 +272,7 @@
     if (result == null) {
       return null;
     }
-    return Depset.of(Artifact.class, result);
+    return Depset.of(Artifact.TYPE, result);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
index 4d3aaaa1..cdce097 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
@@ -53,7 +53,7 @@
     NestedSet<Artifact> result = provider != null
         ? provider.getOutputGroup(group)
         : NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER);
-    return Depset.of(Artifact.class, result);
+    return Depset.of(Artifact.TYPE, result);
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java
index f3b64a5..f5424be 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java
@@ -1101,7 +1101,7 @@
             .addToolDependencies(tools.getContents(TransitiveInfoCollection.class, "tools"))
             .build();
     return Tuple.<Object>of(
-        Depset.of(Artifact.class, helper.getResolvedTools()), helper.getToolsRunfilesSuppliers());
+        Depset.of(Artifact.TYPE, helper.getResolvedTools()), helper.getToolsRunfilesSuppliers());
   }
 
   public StarlarkSemantics getSkylarkSemantics() {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailure.java b/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailure.java
index 9a3fb05..0ad5e12 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailure.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailure.java
@@ -17,12 +17,16 @@
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.skylarkbuildapi.test.AnalysisFailureApi;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
+import com.google.devtools.build.lib.syntax.SkylarkType;
 
 /**
  * Encapsulates information about an analysis-phase error which would have occurred during a build.
  */
 public class AnalysisFailure implements AnalysisFailureApi {
 
+  /** The Starlark type symbol for AnalysisFailure values. */
+  public static final SkylarkType TYPE = SkylarkType.of(AnalysisFailure.class);
+
   private final Label label;
   private final String message;
 
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailureInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailureInfo.java
index db35cc8..ba4d2d8 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailureInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/AnalysisFailureInfo.java
@@ -20,7 +20,6 @@
 import com.google.devtools.build.lib.packages.Info;
 import com.google.devtools.build.lib.skylarkbuildapi.test.AnalysisFailureInfoApi;
 import com.google.devtools.build.lib.syntax.Depset;
-import com.google.devtools.build.lib.syntax.SkylarkType;
 
 /**
  * Implementation of {@link AnalysisFailureInfoApi}.
@@ -68,7 +67,7 @@
 
   @Override
   public Depset /*<AnalysisFailure>*/ getCauses() {
-    return Depset.of(SkylarkType.of(AnalysisFailure.class), causes);
+    return Depset.of(AnalysisFailure.TYPE, causes);
   }
 
   public NestedSet<AnalysisFailure> getCausesNestedSet() {
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 a58f47a..3e0d82c 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
@@ -30,6 +30,7 @@
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
+import com.google.devtools.build.lib.syntax.SkylarkType;
 import com.google.devtools.build.lib.syntax.StarlarkThread;
 import com.google.devtools.build.lib.util.StringUtilities;
 import com.google.devtools.build.lib.vfs.PathFragment;
@@ -60,6 +61,9 @@
 public final class Label
     implements Comparable<Label>, Serializable, SkylarkValue, SkyKey, CommandLineItem {
 
+  /** The Starlark type symbol for Label values. */
+  public static final SkylarkType TYPE = SkylarkType.of(Label.class);
+
   /**
    * Package names that aren't made relative to the current repository because they mean special
    * things to Bazel.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
index 660b225..2e1b239 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
@@ -136,7 +136,7 @@
       // A shortcut for files to build in Skylark. FileConfiguredTarget and RuleConfiguredTarget
       // always has FileProvider and Error- and PackageGroupConfiguredTarget-s shouldn't be
       // accessible in Skylark.
-      return Depset.of(Artifact.class, getProvider(FileProvider.class).getFilesToBuild());
+      return Depset.of(Artifact.TYPE, getProvider(FileProvider.class).getFilesToBuild());
     }
     return actual.getValue(name);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java
index d27d910..343a9fc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java
@@ -304,7 +304,7 @@
   public ImmutableMap<String, Depset> getNativeLibsSkylark() {
     ImmutableMap.Builder<String, Depset> builder = ImmutableMap.builder();
     for (Map.Entry<String, NestedSet<Artifact>> entry : getNativeLibs().entrySet()) {
-      builder.put(entry.getKey(), Depset.of(Artifact.class, entry.getValue()));
+      builder.put(entry.getKey(), Depset.of(Artifact.TYPE, entry.getValue()));
     }
     return builder.build();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java
index 44f8995..e619f3e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java
@@ -39,6 +39,7 @@
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
 import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcCompilationContextApi;
 import com.google.devtools.build.lib.syntax.Depset;
+import com.google.devtools.build.lib.syntax.SkylarkType;
 import com.google.devtools.build.lib.util.Pair;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.build.skyframe.SkyFunction.Environment;
@@ -139,7 +140,7 @@
 
   @Override
   public Depset getSkylarkDefines() {
-    return Depset.of(String.class, NestedSetBuilder.wrap(Order.STABLE_ORDER, getDefines()));
+    return Depset.of(SkylarkType.STRING, NestedSetBuilder.wrap(Order.STABLE_ORDER, getDefines()));
   }
 
   @Override
@@ -150,7 +151,7 @@
 
   @Override
   public Depset getSkylarkHeaders() {
-    return Depset.of(Artifact.class, getDeclaredIncludeSrcs());
+    return Depset.of(Artifact.TYPE, getDeclaredIncludeSrcs());
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java
index 7bfb643..8c03b1f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java
@@ -409,7 +409,7 @@
 
   @Override
   public Depset getSkylarkNonCodeInputs() {
-    return Depset.of(Artifact.class, getNonCodeInputs());
+    return Depset.of(Artifact.TYPE, getNonCodeInputs());
   }
 
   public NestedSet<LinkOptions> getUserLinkFlags() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
index 78dbfa8..44b287d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -429,7 +429,7 @@
 
   @Override
   public Depset getAllFilesForStarlark() {
-    return Depset.of(Artifact.class, getAllFiles());
+    return Depset.of(Artifact.TYPE, getAllFiles());
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
index 05e9589..60123df 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
@@ -161,7 +161,7 @@
 
   @Override
   public Depset skylarkJavaBaseInputs() {
-    return Depset.of(Artifact.class, javaBaseInputs());
+    return Depset.of(Artifact.TYPE, javaBaseInputs());
   }
 
   // Not all of JavaRuntimeInfo is exposed to Skylark, which makes implementing deep equality
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
index a8b6a93..85ca87b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
@@ -411,7 +411,7 @@
 
   @Override
   public Depset getSkylarkBootclasspath() {
-    return Depset.of(Artifact.class, getBootclasspath());
+    return Depset.of(Artifact.TYPE, getBootclasspath());
   }
 
   @Override
@@ -421,6 +421,6 @@
 
   @Override
   public Depset getSkylarkTools() {
-    return Depset.of(Artifact.class, getTools());
+    return Depset.of(Artifact.TYPE, getTools());
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java
index 75662cd..f5bb666 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java
@@ -83,7 +83,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getDynamicFrameworkFiles() {
-    return Depset.of(SkylarkType.of(Artifact.class), dynamicFrameworkFiles);
+    return Depset.of(Artifact.TYPE, dynamicFrameworkFiles);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java
index d0ca811..4672240 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java
@@ -260,7 +260,7 @@
     // of plain NestedSets because the Skylark caller may want to return this directly from their
     // implementation function.
     Map<String, SkylarkValue> outputGroups =
-        Maps.transformValues(output.getOutputGroups(), v -> Depset.of(Artifact.class, v));
+        Maps.transformValues(output.getOutputGroups(), v -> Depset.of(Artifact.TYPE, v));
 
     ImmutableMap<String, Object> fields =
         ImmutableMap.of(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java
index e1aa79e..d2cf13c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java
@@ -64,7 +64,7 @@
     for (PathFragment path : pathFragments) {
       result.add(path.getSafePathString());
     }
-    return Depset.of(String.class, result.build());
+    return Depset.of(SkylarkType.STRING, result.build());
   }
 
   /** A converter for ObjcProvider values. */
@@ -128,7 +128,7 @@
       for (SdkFramework framework : (Iterable<SdkFramework>) javaValue) {
         result.add(framework.getName());
       }
-      return Depset.of(String.class, result.build());
+      return Depset.of(SkylarkType.STRING, result.build());
     }
 
     @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyInfo.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyInfo.java
index d275f2b..d1080f3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyInfo.java
@@ -183,7 +183,7 @@
         throws EvalException {
       Depset imports =
           importsUncast.equals(Starlark.UNBOUND)
-              ? Depset.of(String.class, NestedSetBuilder.emptySet(Order.COMPILE_ORDER))
+              ? Depset.of(SkylarkType.STRING, NestedSetBuilder.emptySet(Order.COMPILE_ORDER))
               : (Depset) importsUncast;
 
       if (!depsetHasTypeAndCompatibleOrder(transitiveSources, Artifact.TYPE, Order.COMPILE_ORDER)) {
@@ -265,9 +265,9 @@
       Preconditions.checkNotNull(transitiveSources);
       return new PyInfo(
           location,
-          Depset.of(Artifact.class, transitiveSources),
+          Depset.of(Artifact.TYPE, transitiveSources),
           usesSharedLibraries,
-          Depset.of(String.class, imports),
+          Depset.of(SkylarkType.STRING, imports),
           hasPy2OnlySources,
           hasPy3OnlySources);
     }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
index 29e33c5..80b2047 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfo.java
@@ -80,7 +80,7 @@
         /*location=*/ null,
         /*interpreterPath=*/ null,
         interpreter,
-        Depset.of(Artifact.class, files),
+        Depset.of(Artifact.TYPE, files),
         pythonVersion);
   }
 
@@ -211,7 +211,7 @@
 
       if (isInBuildRuntime) {
         if (filesDepset == null) {
-          filesDepset = Depset.of(Artifact.class, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
+          filesDepset = Depset.of(Artifact.TYPE, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
         }
         return new PyRuntimeInfo(
             loc, /*interpreterPath=*/ null, interpreter, filesDepset, parsedPythonVersion);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyStructUtils.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyStructUtils.java
index 59d6ef4..33ed69c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyStructUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyStructUtils.java
@@ -75,7 +75,8 @@
     // TRANSITIVE_SOURCES is mandatory
     builder.put(USES_SHARED_LIBRARIES, false);
     builder.put(
-        IMPORTS, Depset.of(String.class, NestedSetBuilder.<String>emptySet(Order.COMPILE_ORDER)));
+        IMPORTS,
+        Depset.of(SkylarkType.STRING, NestedSetBuilder.<String>emptySet(Order.COMPILE_ORDER)));
     builder.put(HAS_PY2_ONLY_SOURCES, false);
     builder.put(HAS_PY3_ONLY_SOURCES, false);
     DEFAULTS = builder.build();
@@ -227,7 +228,7 @@
     private Builder() {}
 
     public Builder setTransitiveSources(NestedSet<Artifact> transitiveSources) {
-      this.transitiveSources = Depset.of(Artifact.class, transitiveSources);
+      this.transitiveSources = Depset.of(Artifact.TYPE, transitiveSources);
       return this;
     }
 
@@ -237,7 +238,7 @@
     }
 
     public Builder setImports(NestedSet<String> imports) {
-      this.imports = Depset.of(String.class, imports);
+      this.imports = Depset.of(SkylarkType.STRING, imports);
       return this;
     }