Replace uses of Depset.of(ElementType, NestedSet) with Depset.of(Class, NestedSet)

The former method was deprecated.

Do only the trivial changes. Other changes will be done separately to make the review easier.

PiperOrigin-RevId: 514004311
Change-Id: Iacf51f3ef3e16c4dfb32158ae1d0ed3b0c899fe0
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 e76a72d..0a91ee6 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
@@ -684,12 +684,12 @@
 
   @Override
   public Depset getStarlarkInputs() {
-    return Depset.of(Artifact.TYPE, getInputs());
+    return Depset.of(Artifact.class, getInputs());
   }
 
   @Override
   public Depset getStarlarkOutputs() {
-    return Depset.of(Artifact.TYPE, NestedSetBuilder.wrap(Order.STABLE_ORDER, getOutputs()));
+    return Depset.of(Artifact.class, 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 64cc96d..1e098b7 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
@@ -147,7 +147,7 @@
     @Nullable
     @Override
     public Depset getFiles() {
-      return Depset.of(Artifact.TYPE, target.getProvider(FileProvider.class).getFilesToBuild());
+      return Depset.of(Artifact.class, target.getProvider(FileProvider.class).getFilesToBuild());
     }
 
     @Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java
index 4ddf21a..b2247ff 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/FileProvider.java
@@ -60,7 +60,7 @@
    */
   @Override
   public Depset /*<Artifact>*/ getFilesToBuildForStarlark() {
-    return Depset.of(Artifact.TYPE, filesToBuild);
+    return Depset.of(Artifact.class, filesToBuild);
   }
 
   public NestedSet<Artifact> getFilesToBuild() {
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 44720d8..80bf721 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
@@ -287,7 +287,7 @@
 
     NestedSet<Artifact> result = outputGroups.get(key);
     if (result != null) {
-      return Depset.of(Artifact.TYPE, result);
+      return Depset.of(Artifact.class, result);
     } else {
       throw Starlark.errorf("Output group %s not present", key);
     }
@@ -310,7 +310,7 @@
     if (result == null) {
       return null;
     }
-    return Depset.of(Artifact.TYPE, result);
+    return Depset.of(Artifact.class, result);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
index 00a4fe5..54ad5a0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
@@ -111,9 +111,6 @@
   //
   // Goodnight, prince(ss)?, and sweet dreams.
   public static final class SymlinkEntry implements SymlinkEntryApi {
-
-    static final Depset.ElementType TYPE = Depset.ElementType.of(SymlinkEntry.class);
-
     private final PathFragment path;
     private final Artifact artifact;
 
@@ -270,7 +267,7 @@
   /** Returns the collection of runfiles as artifacts. */
   @Override
   public Depset /*<Artifact>*/ getArtifactsForStarlark() {
-    return Depset.of(Artifact.TYPE, artifacts);
+    return Depset.of(Artifact.class, artifacts);
   }
 
   public NestedSet<Artifact> getArtifacts() {
@@ -280,7 +277,7 @@
   /** Returns the symlinks. */
   @Override
   public Depset /*<SymlinkEntry>*/ getSymlinksForStarlark() {
-    return Depset.of(SymlinkEntry.TYPE, symlinks);
+    return Depset.of(SymlinkEntry.class, symlinks);
   }
 
   public NestedSet<SymlinkEntry> getSymlinks() {
@@ -289,7 +286,7 @@
 
   @Override
   public Depset /*<String>*/ getEmptyFilenamesForStarlark() {
-    return Depset.of(Depset.ElementType.STRING, getEmptyFilenames());
+    return Depset.of(String.class, getEmptyFilenames());
   }
 
   public NestedSet<String> getEmptyFilenames() {
@@ -512,7 +509,7 @@
   /** Returns the root symlinks. */
   @Override
   public Depset /*<SymlinkEntry>*/ getRootSymlinksForStarlark() {
-    return Depset.of(SymlinkEntry.TYPE, rootSymlinks);
+    return Depset.of(SymlinkEntry.class, rootSymlinks);
   }
 
   public NestedSet<SymlinkEntry> getRootSymlinks() {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
index ce3cd43..a7d14a2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
@@ -1120,7 +1120,7 @@
             .addToolDependencies(Sequence.cast(tools, TransitiveInfoCollection.class, "tools"))
             .build();
     return Tuple.pair(
-        Depset.of(Artifact.TYPE, helper.getResolvedTools()), helper.getToolsRunfilesSuppliers());
+        Depset.of(Artifact.class, helper.getResolvedTools()), helper.getToolsRunfilesSuppliers());
   }
 
   public StarlarkSemantics getStarlarkSemantics() {
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 9855949..65fb0cd 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
@@ -15,7 +15,6 @@
 package com.google.devtools.build.lib.analysis.test;
 
 import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.collect.nestedset.Depset;
 import com.google.devtools.build.lib.starlarkbuildapi.test.AnalysisFailureApi;
 import net.starlark.java.eval.Printer;
 
@@ -23,10 +22,6 @@
  * 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 Depset.ElementType TYPE = Depset.ElementType.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 246120c..e14862a 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
@@ -67,7 +67,7 @@
 
   @Override
   public Depset /*<AnalysisFailure>*/ getCauses() {
-    return Depset.of(AnalysisFailure.TYPE, causes);
+    return Depset.of(AnalysisFailure.class, causes);
   }
 
   public NestedSet<AnalysisFailure> getCausesNestedSet() {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesInfo.java
index 291076d..12798ce 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/InstrumentedFilesInfo.java
@@ -77,7 +77,7 @@
 
   @Override
   public Depset getInstrumentedFilesForStarlark() {
-    return Depset.of(Artifact.TYPE, getInstrumentedFiles());
+    return Depset.of(Artifact.class, getInstrumentedFiles());
   }
 
   /** Returns a collection of instrumentation metadata files. */
@@ -87,7 +87,7 @@
 
   @Override
   public Depset getInstrumentationMetadataFilesForStarlark() {
-    return Depset.of(Artifact.TYPE, getInstrumentationMetadataFiles());
+    return Depset.of(Artifact.class, getInstrumentationMetadataFiles());
   }
 
   /**
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 b68e2fa..27148fa 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
@@ -168,7 +168,7 @@
       // A shortcut for files to build in Starlark. FileConfiguredTarget and RuleConfiguredTarget
       // always has FileProvider and Error- and PackageGroupConfiguredTarget-s shouldn't be
       // accessible in Starlark.
-      return Depset.of(Artifact.TYPE, getProvider(FileProvider.class).getFilesToBuild());
+      return Depset.of(Artifact.class, getProvider(FileProvider.class).getFilesToBuild());
     }
     return actual.getValue(name);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java
index 40fa2a8..245a594 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAssetsInfo.java
@@ -114,7 +114,7 @@
 
   @Override
   public Depset /*<ParsedAndroidAssets>*/ getDirectParsedAssetsForStarlark() {
-    return Depset.of(ParsedAndroidAssets.TYPE, directParsedAssets);
+    return Depset.of(ParsedAndroidAssets.class, directParsedAssets);
   }
 
   public NestedSet<ParsedAndroidAssets> getDirectParsedAssets() {
@@ -135,7 +135,7 @@
 
   @Override
   public Depset /*<ParsedAndroidAssets>*/ getTransitiveParsedAssetsForStarlark() {
-    return Depset.of(ParsedAndroidAssets.TYPE, transitiveParsedAssets);
+    return Depset.of(ParsedAndroidAssets.class, transitiveParsedAssets);
   }
 
   public NestedSet<ParsedAndroidAssets> getTransitiveParsedAssets() {
@@ -144,7 +144,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getAssetsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveAssets);
+    return Depset.of(Artifact.class, transitiveAssets);
   }
 
   public NestedSet<Artifact> getAssets() {
@@ -153,7 +153,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getSymbolsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveSymbols);
+    return Depset.of(Artifact.class, transitiveSymbols);
   }
 
   public NestedSet<Artifact> getSymbols() {
@@ -168,7 +168,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getCompiledSymbolsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveCompiledSymbols);
+    return Depset.of(Artifact.class, transitiveCompiledSymbols);
   }
 
   NestedSet<Artifact> getCompiledSymbols() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryNativeLibsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryNativeLibsInfo.java
index e6e56ca..ac43dc2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryNativeLibsInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryNativeLibsInfo.java
@@ -57,7 +57,7 @@
       return null;
     }
     return Dict.immutableCopyOf(
-        Maps.transformValues(nativeLibs.getMap(), set -> Depset.of(Artifact.TYPE, set)));
+        Maps.transformValues(nativeLibs.getMap(), set -> Depset.of(Artifact.class, set)));
   }
 
   @Nullable
@@ -75,7 +75,7 @@
     if (transitiveNativeLibs == null) {
       return null;
     }
-    return Depset.of(Artifact.TYPE, transitiveNativeLibs);
+    return Depset.of(Artifact.class, transitiveNativeLibs);
   }
 
   @Nullable
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 1830897..3b27a92 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
@@ -324,7 +324,7 @@
   public ImmutableMap<String, Depset> getNativeLibsStarlark() {
     ImmutableMap.Builder<String, Depset> builder = ImmutableMap.builder();
     for (Map.Entry<String, NestedSet<Artifact>> entry : getNativeLibs().entrySet()) {
-      builder.put(entry.getKey(), Depset.of(Artifact.TYPE, entry.getValue()));
+      builder.put(entry.getKey(), Depset.of(Artifact.class, entry.getValue()));
     }
     return builder.buildOrThrow();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java
index b60b920..d3911f9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlProvider.java
@@ -56,7 +56,7 @@
 
   @Override
   public Depset /*<String>*/ getTransitiveIdlImportRootsForStarlark() {
-    return Depset.of(Depset.ElementType.STRING, transitiveIdlImportRoots);
+    return Depset.of(String.class, transitiveIdlImportRoots);
   }
 
   NestedSet<String> getTransitiveIdlImportRoots() {
@@ -65,7 +65,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveIdlImportsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveIdlImports);
+    return Depset.of(Artifact.class, transitiveIdlImports);
   }
 
   NestedSet<Artifact> getTransitiveIdlImports() {
@@ -74,7 +74,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveIdlJarsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveIdlJars);
+    return Depset.of(Artifact.class, transitiveIdlJars);
   }
 
   NestedSet<Artifact> getTransitiveIdlJars() {
@@ -83,7 +83,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveIdlPreprocessedForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveIdlPreprocessed);
+    return Depset.of(Artifact.class, transitiveIdlPreprocessed);
   }
 
   NestedSet<Artifact> getTransitiveIdlPreprocessed() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java
index 504c9fb..22b0574 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryAarInfo.java
@@ -85,7 +85,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveAarArtifactsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveAarArtifacts);
+    return Depset.of(Artifact.class, transitiveAarArtifacts);
   }
 
   public NestedSet<Artifact> getTransitiveAarArtifacts() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java
index 801cd81..c83c67f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryResourceClassJarProvider.java
@@ -57,7 +57,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getResourceClassJarsForStarlark() {
-    return Depset.of(Artifact.TYPE, resourceClassJars);
+    return Depset.of(Artifact.class, resourceClassJars);
   }
 
   public NestedSet<Artifact> getResourceClassJars() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
index e019cc3..87fe835 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
@@ -47,7 +47,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getNativeLibsForStarlark() {
-    return Depset.of(Artifact.TYPE, nativeLibs);
+    return Depset.of(Artifact.class, nativeLibs);
   }
 
   NestedSet<Artifact> getNativeLibs() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverLinkLibrariesProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverLinkLibrariesProvider.java
index 4a8f88c..8b97b70 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverLinkLibrariesProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverLinkLibrariesProvider.java
@@ -61,7 +61,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveNeverLinkLibrariesForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveNeverLinkLibraries);
+    return Depset.of(Artifact.class, transitiveNeverLinkLibraries);
   }
 
   /** Provider class for {@link AndroidNeverLinkLibrariesProvider} objects. */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
index 28f216f..e102274 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
@@ -116,7 +116,7 @@
 
   @Override
   public Depset /*<ValidatedAndroidResources>*/ getTransitiveAndroidResourcesForStarlark() {
-    return Depset.of(ValidatedAndroidResources.TYPE, transitiveAndroidResources);
+    return Depset.of(ValidatedAndroidResources.class, transitiveAndroidResources);
   }
 
   public NestedSet<ValidatedAndroidResources> getTransitiveAndroidResources() {
@@ -125,7 +125,7 @@
 
   @Override
   public Depset /*<ValidatedAndroidResources>*/ getDirectAndroidResourcesForStarlark() {
-    return Depset.of(ValidatedAndroidResources.TYPE, directAndroidResources);
+    return Depset.of(ValidatedAndroidResources.class, directAndroidResources);
   }
 
   public NestedSet<ValidatedAndroidResources> getDirectAndroidResources() {
@@ -134,7 +134,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveResourcesForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveResources);
+    return Depset.of(Artifact.class, transitiveResources);
   }
 
   public NestedSet<Artifact> getTransitiveResources() {
@@ -143,7 +143,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveManifestsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveManifests);
+    return Depset.of(Artifact.class, transitiveManifests);
   }
 
   public NestedSet<Artifact> getTransitiveManifests() {
@@ -152,7 +152,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveAapt2RTxtForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveAapt2RTxt);
+    return Depset.of(Artifact.class, transitiveAapt2RTxt);
   }
 
   public NestedSet<Artifact> getTransitiveAapt2RTxt() {
@@ -161,7 +161,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveAapt2ValidationArtifactsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveAapt2ValidationArtifacts);
+    return Depset.of(Artifact.class, transitiveAapt2ValidationArtifacts);
   }
 
   NestedSet<Artifact> getTransitiveAapt2ValidationArtifacts() {
@@ -170,7 +170,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveSymbolsBinForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveSymbolsBin);
+    return Depset.of(Artifact.class, transitiveSymbolsBin);
   }
 
   public NestedSet<Artifact> getTransitiveSymbolsBin() {
@@ -179,7 +179,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveCompiledSymbolsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveCompiledSymbols);
+    return Depset.of(Artifact.class, transitiveCompiledSymbols);
   }
 
   NestedSet<Artifact> getTransitiveCompiledSymbols() {
@@ -188,7 +188,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveStaticLibForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveStaticLib);
+    return Depset.of(Artifact.class, transitiveStaticLib);
   }
 
   NestedSet<Artifact> getTransitiveStaticLib() {
@@ -197,7 +197,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveRTxtForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveRTxt);
+    return Depset.of(Artifact.class, transitiveRTxt);
   }
 
   NestedSet<Artifact> getTransitiveRTxt() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkApiProvider.java
index 23692b2..4f28991 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkApiProvider.java
@@ -102,7 +102,7 @@
   @Override
   public Depset /*<Artifact>*/ getResources() {
     return Depset.of(
-        Artifact.TYPE, collectDirectArtifacts(ValidatedAndroidResources::getResources));
+        Artifact.class, collectDirectArtifacts(ValidatedAndroidResources::getResources));
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/BaselineProfileProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/BaselineProfileProvider.java
index 28880b2..4fb9b64 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/BaselineProfileProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/BaselineProfileProvider.java
@@ -49,7 +49,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveBaselineProfilesForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveBaselineProfiles);
+    return Depset.of(Artifact.class, transitiveBaselineProfiles);
   }
 
   public NestedSet<Artifact> getTransitiveBaselineProfiles() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidAssets.java b/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidAssets.java
index 508842d..b3c1f08 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidAssets.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidAssets.java
@@ -15,16 +15,12 @@
 
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.collect.nestedset.Depset;
 import com.google.devtools.build.lib.starlarkbuildapi.android.ParsedAndroidAssetsApi;
 import java.util.Objects;
 import javax.annotation.Nullable;
 
 /** Parsed Android assets which can be merged together with assets from dependencies. */
 public class ParsedAndroidAssets extends AndroidAssets implements ParsedAndroidAssetsApi {
-
-  public static final Depset.ElementType TYPE = Depset.ElementType.of(ParsedAndroidAssets.class);
-
   private final Artifact symbols;
   @Nullable private final Artifact compiledSymbols;
   private final Label label;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java b/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java
index fa46add..05a9ec1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java
@@ -15,7 +15,6 @@
 
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.analysis.RuleErrorConsumer;
-import com.google.devtools.build.lib.collect.nestedset.Depset;
 import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
 import com.google.devtools.build.lib.starlarkbuildapi.android.ValidatedAndroidDataApi;
 import java.util.Objects;
@@ -27,10 +26,6 @@
 /** Wraps validated and packaged Android resource information */
 public class ValidatedAndroidResources extends MergedAndroidResources
     implements ValidatedAndroidDataApi<Artifact, AndroidResourcesInfo> {
-
-  public static final Depset.ElementType TYPE =
-      Depset.ElementType.of(ValidatedAndroidResources.class);
-
   private final Artifact rTxt;
   private final Artifact sourceJar;
   private final Artifact apk;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java b/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java
index 8fc80b4..c6c5d9e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/databinding/DataBindingV2Provider.java
@@ -67,7 +67,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getClassInfosForStarlark() {
-    return Depset.of(Artifact.TYPE, classInfos);
+    return Depset.of(Artifact.class, classInfos);
   }
 
   public NestedSet<Artifact> getClassInfos() {
@@ -76,7 +76,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getSetterStoresForStarlark() {
-    return Depset.of(Artifact.TYPE, setterStores);
+    return Depset.of(Artifact.class, setterStores);
   }
 
   public NestedSet<Artifact> getSetterStores() {
@@ -85,7 +85,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveBRFilesForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveBRFiles);
+    return Depset.of(Artifact.class, transitiveBRFiles);
   }
 
   public NestedSet<Artifact> getTransitiveBRFiles() {
@@ -99,7 +99,7 @@
 
   @Override
   public Depset /*<LabelJavaPackagePair>*/ getTransitiveLabelAndJavaPackagesForStarlark() {
-    return Depset.of(LabelJavaPackagePair.TYPE, transitiveLabelAndJavaPackages);
+    return Depset.of(LabelJavaPackagePair.class, transitiveLabelAndJavaPackages);
   }
 
   public NestedSet<LabelJavaPackagePair> getTransitiveLabelAndJavaPackages() {
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 26c8a4a..b9cf2af 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
@@ -158,20 +158,18 @@
 
   @Override
   public Depset getStarlarkDefines() {
-    return Depset.of(
-        Depset.ElementType.STRING, NestedSetBuilder.wrap(Order.STABLE_ORDER, getDefines()));
+    return Depset.of(String.class, NestedSetBuilder.wrap(Order.STABLE_ORDER, getDefines()));
   }
 
   @Override
   public Depset getStarlarkNonTransitiveDefines() {
     return Depset.of(
-        Depset.ElementType.STRING,
-        NestedSetBuilder.wrap(Order.STABLE_ORDER, getNonTransitiveDefines()));
+        String.class, NestedSetBuilder.wrap(Order.STABLE_ORDER, getNonTransitiveDefines()));
   }
 
   @Override
   public Depset getStarlarkHeaders() {
-    return Depset.of(Artifact.TYPE, getDeclaredIncludeSrcs());
+    return Depset.of(Artifact.class, getDeclaredIncludeSrcs());
   }
 
   @Override
@@ -202,7 +200,7 @@
   @Override
   public Depset getStarlarkSystemIncludeDirs() {
     return Depset.of(
-        Depset.ElementType.STRING,
+        String.class,
         NestedSetBuilder.wrap(
             Order.STABLE_ORDER,
             getSystemIncludeDirs().stream()
@@ -213,7 +211,7 @@
   @Override
   public Depset getStarlarkFrameworkIncludeDirs() {
     return Depset.of(
-        Depset.ElementType.STRING,
+        String.class,
         NestedSetBuilder.wrap(
             Order.STABLE_ORDER,
             getFrameworkIncludeDirs().stream()
@@ -224,7 +222,7 @@
   @Override
   public Depset getStarlarkIncludeDirs() {
     return Depset.of(
-        Depset.ElementType.STRING,
+        String.class,
         NestedSetBuilder.wrap(
             Order.STABLE_ORDER,
             getIncludeDirs().stream()
@@ -235,7 +233,7 @@
   @Override
   public Depset getStarlarkQuoteIncludeDirs() {
     return Depset.of(
-        Depset.ElementType.STRING,
+        String.class,
         NestedSetBuilder.wrap(
             Order.STABLE_ORDER,
             getQuoteIncludeDirs().stream()
@@ -247,18 +245,18 @@
   public Depset getStarlarkTransitiveCompilationPrerequisites(StarlarkThread thread)
       throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getTransitiveCompilationPrerequisites());
+    return Depset.of(Artifact.class, getTransitiveCompilationPrerequisites());
   }
 
   @Override
   public Depset getStarlarkValidationArtifacts() {
-    return Depset.of(Artifact.TYPE, getHeaderTokens());
+    return Depset.of(Artifact.class, getHeaderTokens());
   }
 
   @Override
   public Depset getStarlarkVirtualToOriginalHeaders(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Depset.ElementType.of(Tuple.class), getVirtualToOriginalHeaders());
+    return Depset.of(Tuple.class, getVirtualToOriginalHeaders());
   }
 
   /**
@@ -555,7 +553,7 @@
   public Depset getStarlarkTransitiveModules(boolean usePic, StarlarkThread thread)
       throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getTransitiveModules(usePic));
+    return Depset.of(Artifact.class, getTransitiveModules(usePic));
   }
 
   /**
@@ -571,7 +569,7 @@
   @Override
   public Depset getStarlarkAdditionalInputs(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getAdditionalInputs());
+    return Depset.of(Artifact.class, getAdditionalInputs());
   }
 
   /** Adds additional transitive inputs needed for compilation to builder. */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java
index ddfcfae..0f050f4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationOutputs.java
@@ -126,14 +126,14 @@
   @Override
   public Depset getStarlarkTemps(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getTemps());
+    return Depset.of(Artifact.class, getTemps());
   }
 
   @Override
   public Depset getStarlarkFilesToCompile(
       boolean parseHeaders, boolean usePic, StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getFilesToCompile(parseHeaders, usePic));
+    return Depset.of(Artifact.class, getFilesToCompile(parseHeaders, usePic));
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcDebugInfoContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcDebugInfoContext.java
index 687f094..35b41b7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcDebugInfoContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcDebugInfoContext.java
@@ -82,12 +82,12 @@
 
   @Override
   public Depset getStarlarkTransitiveFiles() {
-    return Depset.of(Artifact.TYPE, getTransitiveDwoFiles());
+    return Depset.of(Artifact.class, getTransitiveDwoFiles());
   }
 
   @Override
   public Depset getStarlarkTransitivePicFiles() {
-    return Depset.of(Artifact.TYPE, getTransitivePicDwoFiles());
+    return Depset.of(Artifact.class, getTransitivePicDwoFiles());
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java
index 946caf6..2d9fde2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java
@@ -77,7 +77,8 @@
   @Override
   public Depset getCcTransitiveNativeLibraries(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(LibraryToLink.TYPE, getCcNativeLibraryInfo().getTransitiveCcNativeLibraries());
+    return Depset.of(
+        LibraryToLink.class, getCcNativeLibraryInfo().getTransitiveCcNativeLibraries());
   }
 
   public CcDebugInfoContext getCcDebugInfoContext() {
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 098d850..d8c6fae 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
@@ -114,8 +114,6 @@
     private final NestedSet<Artifact> declaredIncludeSrcs;
     private final int nestedDigest;
 
-    public static final Depset.ElementType TYPE = Depset.ElementType.of(Linkstamp.class);
-
     // TODO(janakr): if action key context is not available, the digest can be computed lazily,
     // only if we are doing an equality comparison and artifacts are equal. That should never
     // happen, so doing an expensive digest should be ok then. If this is ever moved to Starlark
@@ -154,7 +152,7 @@
     @Override
     public Depset getDeclaredIncludeSrcsForStarlark(StarlarkThread thread) throws EvalException {
       CcModule.checkPrivateStarlarkificationAllowlist(thread);
-      return Depset.of(Artifact.TYPE, getDeclaredIncludeSrcs());
+      return Depset.of(Artifact.class, getDeclaredIncludeSrcs());
     }
 
     @Override
@@ -189,9 +187,6 @@
   @Immutable
   public static class LinkerInput
       implements LinkerInputApi<LibraryToLink, LtoBackendArtifacts, Artifact> {
-
-    public static final Depset.ElementType TYPE = Depset.ElementType.of(LinkerInput.class);
-
     // Identifies which target created the LinkerInput. It doesn't have to be unique between
     // LinkerInputs.
     private final Label owner;
@@ -473,7 +468,7 @@
 
   @Override
   public Depset getStarlarkLinkerInputs() {
-    return Depset.of(LinkerInput.TYPE, linkerInputs);
+    return Depset.of(LinkerInput.class, linkerInputs);
   }
 
   @Override
@@ -485,7 +480,7 @@
   public Object getStarlarkLibrariesToLink(StarlarkSemantics semantics) {
     // TODO(plf): Flag can be removed already.
     if (semantics.getBool(BuildLanguageOptions.INCOMPATIBLE_DEPSET_FOR_LIBRARIES_TO_LINK_GETTER)) {
-      return Depset.of(LibraryToLink.TYPE, getLibraries());
+      return Depset.of(LibraryToLink.class, getLibraries());
     } else {
       return StarlarkList.immutableCopyOf(getLibraries().toList());
     }
@@ -493,7 +488,7 @@
 
   @Override
   public Depset getStarlarkNonCodeInputs() {
-    return Depset.of(Artifact.TYPE, getNonCodeInputs());
+    return Depset.of(Artifact.class, getNonCodeInputs());
   }
 
   public NestedSet<LinkOptions> getUserLinkFlags() {
@@ -522,7 +517,7 @@
   @Override
   public Depset getLinkstampsForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Linkstamp.TYPE, getLinkstamps());
+    return Depset.of(Linkstamp.class, getLinkstamps());
   }
 
   public NestedSet<Artifact> getNonCodeInputs() {
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 7e544d6..c285a47 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
@@ -431,14 +431,14 @@
 
   @Override
   public Depset getAllFilesForStarlark() {
-    return Depset.of(Artifact.TYPE, getAllFiles());
+    return Depset.of(Artifact.class, getAllFiles());
   }
 
   @Override
   public Depset getStaticRuntimeLibForStarlark(
       FeatureConfigurationForStarlark featureConfigurationForStarlark) throws EvalException {
     return Depset.of(
-        Artifact.TYPE,
+        Artifact.class,
         getStaticRuntimeLinkInputs(featureConfigurationForStarlark.getFeatureConfiguration()));
   }
 
@@ -446,7 +446,7 @@
   public Depset getDynamicRuntimeLibForStarlark(
       FeatureConfigurationForStarlark featureConfigurationForStarlark) throws EvalException {
     return Depset.of(
-        Artifact.TYPE,
+        Artifact.class,
         getDynamicRuntimeLinkInputs(featureConfigurationForStarlark.getFeatureConfiguration()));
   }
 
@@ -473,7 +473,7 @@
   @Override
   public Depset getAllFilesIncludingLibcForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getAllFilesIncludingLibc());
+    return Depset.of(Artifact.class, getAllFilesIncludingLibc());
   }
 
   /** Returns the files necessary for compilation. */
@@ -484,7 +484,7 @@
   @Override
   public Depset getCompilerFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getCompilerFiles());
+    return Depset.of(Artifact.class, getCompilerFiles());
   }
 
   /**
@@ -507,7 +507,7 @@
   @Override
   public Depset getStripFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getStripFiles());
+    return Depset.of(Artifact.class, getStripFiles());
   }
 
   /** Returns the files necessary for an 'objcopy' invocation. */
@@ -518,7 +518,7 @@
   @Override
   public Depset getObjcopyFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getObjcopyFiles());
+    return Depset.of(Artifact.class, getObjcopyFiles());
   }
 
   /**
@@ -532,7 +532,7 @@
   @Override
   public Depset getAsFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getAsFiles());
+    return Depset.of(Artifact.class, getAsFiles());
   }
 
   /**
@@ -546,7 +546,7 @@
   @Override
   public Depset getArFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getArFiles());
+    return Depset.of(Artifact.class, getArFiles());
   }
 
   /** Returns the files necessary for linking, including the files needed for libc. */
@@ -557,7 +557,7 @@
   @Override
   public Depset getLinkerFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getLinkerFiles());
+    return Depset.of(Artifact.class, getLinkerFiles());
   }
 
   public NestedSet<Artifact> getDwpFiles() {
@@ -567,7 +567,7 @@
   @Override
   public Depset getDwpFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getDwpFiles());
+    return Depset.of(Artifact.class, getDwpFiles());
   }
 
   /** Returns the files necessary for capturing code coverage. */
@@ -578,7 +578,7 @@
   @Override
   public Depset getCoverageFilesForStarlark(StarlarkThread thread) throws EvalException {
     CcModule.checkPrivateStarlarkificationAllowlist(thread);
-    return Depset.of(Artifact.TYPE, getCoverageFiles());
+    return Depset.of(Artifact.class, getCoverageFiles());
   }
 
   public NestedSet<Artifact> getLibcLink(CppConfiguration cppConfiguration) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java
index cf27040..e3f138d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java
@@ -146,8 +146,8 @@
       BuildLibraryOutput buildLibraryOutput =
           buildLibraries(starlarkRuleContext.getRuleContext(), staticMode, forDynamicLibrary);
       Depset linkerInputs =
-          Depset.of(CcLinkingContext.LinkerInput.TYPE, buildLibraryOutput.getLinkerInputs());
-      Depset runtimeLibraries = Depset.of(Artifact.TYPE, buildLibraryOutput.getRuntimeLibraries());
+          Depset.of(CcLinkingContext.LinkerInput.class, buildLibraryOutput.getLinkerInputs());
+      Depset runtimeLibraries = Depset.of(Artifact.class, buildLibraryOutput.getRuntimeLibraries());
       return Tuple.pair(linkerInputs, runtimeLibraries);
     } catch (RuleErrorException e) {
       throw new EvalException(e);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java
index d456c59..d97ebd2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java
@@ -22,7 +22,6 @@
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.collect.nestedset.Depset;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.starlarkbuildapi.cpp.LibraryToLinkApi;
@@ -41,8 +40,6 @@
 @Immutable
 public abstract class LibraryToLink implements LibraryToLinkApi<Artifact, LtoBackendArtifacts> {
 
-  public static final Depset.ElementType TYPE = Depset.ElementType.of(LibraryToLink.class);
-
   public static ImmutableList<Artifact> getDynamicLibrariesForRuntime(
       boolean linkingStatically, Iterable<LibraryToLink> libraries) {
     ImmutableList.Builder<Artifact> dynamicLibrariesForRuntimeBuilder = ImmutableList.builder();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/AndroidLintTool.java b/src/main/java/com/google/devtools/build/lib/rules/java/AndroidLintTool.java
index aa1808b..33877b8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/AndroidLintTool.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/AndroidLintTool.java
@@ -25,7 +25,6 @@
 import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.Depset;
-import com.google.devtools.build.lib.collect.nestedset.Depset.ElementType;
 import javax.annotation.Nullable;
 import net.starlark.java.annot.StarlarkMethod;
 import net.starlark.java.eval.Sequence;
@@ -82,12 +81,12 @@
 
   @StarlarkMethod(name = "jvm_opts", documented = false, structField = true)
   public Depset starlarkJvmOpts() {
-    return Depset.of(ElementType.STRING, tool().jvmOpts());
+    return Depset.of(String.class, tool().jvmOpts());
   }
 
   @StarlarkMethod(name = "data", documented = false, structField = true)
   public Depset starlarkData() {
-    return Depset.of(Artifact.TYPE, tool().data());
+    return Depset.of(Artifact.class, tool().data());
   }
 
   @StarlarkMethod(name = "lint_opts", documented = false, structField = true)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java
index dbeb8a4..5fe6529 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java
@@ -86,13 +86,13 @@
   @Override
   @Nullable
   public Depset /*<Artifact>*/ getRuntimeClasspath() {
-    return runtimeClasspath == null ? null : Depset.of(Artifact.TYPE, runtimeClasspath);
+    return runtimeClasspath == null ? null : Depset.of(Artifact.class, runtimeClasspath);
   }
 
   @Override
   @Nullable
   public Depset /*<Artifact>*/ getCompilationClasspath() {
-    return compilationClasspath == null ? null : Depset.of(Artifact.TYPE, compilationClasspath);
+    return compilationClasspath == null ? null : Depset.of(Artifact.class, compilationClasspath);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
index 7d6a534..7d0a8aa 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
@@ -165,7 +165,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveGenClassJarsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveGenClassJars);
+    return Depset.of(Artifact.class, transitiveGenClassJars);
   }
 
   NestedSet<Artifact> getTransitiveGenClassJars() {
@@ -174,7 +174,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveGenSourceJarsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveGenSourceJars);
+    return Depset.of(Artifact.class, transitiveGenSourceJars);
   }
 
   NestedSet<Artifact> getTransitiveGenSourceJars() {
@@ -183,7 +183,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getProcessorClasspathForStarlark() {
-    return Depset.of(Artifact.TYPE, processorClasspath);
+    return Depset.of(Artifact.class, processorClasspath);
   }
 
   NestedSet<Artifact> getProcessorClasspath() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
index 07e381a..e271d85 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
@@ -38,7 +38,6 @@
 import com.google.devtools.build.lib.starlarkbuildapi.FileApi;
 import com.google.devtools.build.lib.starlarkbuildapi.cpp.CcInfoApi;
 import com.google.devtools.build.lib.starlarkbuildapi.java.JavaInfoApi;
-import com.google.devtools.build.lib.starlarkbuildapi.java.JavaInfoApi.JavaInfoProviderApi;
 import com.google.devtools.build.lib.starlarkbuildapi.java.JavaModuleFlagsProviderApi;
 import com.google.errorprone.annotations.CanIgnoreReturnValue;
 import java.util.ArrayList;
@@ -292,7 +291,7 @@
         getProviderAsNestedSet(
             JavaCompilationArgsProvider.class,
             JavaCompilationArgsProvider::getDirectCompileTimeJars);
-    return Depset.of(Artifact.TYPE, compileTimeJars);
+    return Depset.of(Artifact.class, compileTimeJars);
   }
 
   @Override
@@ -301,7 +300,7 @@
         getProviderAsNestedSet(
             JavaCompilationArgsProvider.class,
             JavaCompilationArgsProvider::getDirectFullCompileTimeJars);
-    return Depset.of(Artifact.TYPE, fullCompileTimeJars);
+    return Depset.of(Artifact.class, fullCompileTimeJars);
   }
 
   @Override
@@ -347,7 +346,7 @@
   @Override
   public Depset /*<Artifact>*/ getTransitiveDeps() {
     return Depset.of(
-        Artifact.TYPE,
+        Artifact.class,
         getProviderAsNestedSet(
             JavaCompilationArgsProvider.class,
             JavaCompilationArgsProvider::getTransitiveCompileTimeJars));
@@ -356,7 +355,7 @@
   @Override
   public Depset /*<Artifact>*/ getTransitiveRuntimeDeps() {
     return Depset.of(
-        Artifact.TYPE,
+        Artifact.class,
         getProviderAsNestedSet(
             JavaCompilationArgsProvider.class, JavaCompilationArgsProvider::getRuntimeJars));
   }
@@ -364,7 +363,7 @@
   @Override
   public Depset /*<Artifact>*/ getTransitiveSourceJars() {
     return Depset.of(
-        Artifact.TYPE,
+        Artifact.class,
         getProviderAsNestedSet(
             JavaSourceJarsProvider.class, JavaSourceJarsProvider::getTransitiveSourceJars));
   }
@@ -378,7 +377,7 @@
 
   @Override
   public Depset /*<LibraryToLink>*/ getTransitiveNativeLibrariesForStarlark() {
-    return Depset.of(LibraryToLink.TYPE, getTransitiveNativeLibraries());
+    return Depset.of(LibraryToLink.class, getTransitiveNativeLibraries());
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaModuleFlagsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaModuleFlagsProvider.java
index 93a51e9..1337a65 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaModuleFlagsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaModuleFlagsProvider.java
@@ -50,12 +50,12 @@
 
   @Override
   public Depset /*String*/ getAddExports() {
-    return Depset.of(Depset.ElementType.STRING, addExports);
+    return Depset.of(String.class, addExports);
   }
 
   @Override
   public Depset /*String*/ getAddOpens() {
-    return Depset.of(Depset.ElementType.STRING, addOpens);
+    return Depset.of(String.class, addOpens);
   }
 
   public JavaModuleFlagsProvider(NestedSet<String> addExports, NestedSet<String> addOpens) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationProvider.java
index 174d14e..ed1ad7b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationProvider.java
@@ -96,7 +96,7 @@
   @StarlarkMethod(name = "data", documented = false, useStarlarkThread = true)
   public Depset starlarkData(StarlarkThread starlarkThread) throws EvalException {
     checkPrivateAccess(starlarkThread);
-    return Depset.of(Artifact.TYPE, data());
+    return Depset.of(Artifact.class, data());
   }
 
 }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfo.java
index 0fc7dad..24c9a3c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfo.java
@@ -137,17 +137,17 @@
 
     @Override
     public Depset /*<FileApi>*/ getProcessorJarsForStarlark() {
-      return Depset.of(Artifact.TYPE, processorClasspath());
+      return Depset.of(Artifact.class, processorClasspath());
     }
 
     @Override
     public Depset /*<String>*/ getProcessorClassesForStarlark() {
-      return Depset.of(Depset.ElementType.STRING, processorClasses());
+      return Depset.of(String.class, processorClasses());
     }
 
     @Override
     public Depset /*<FileApi>*/ getProcessorDataForStarlark() {
-      return Depset.of(Artifact.TYPE, data());
+      return Depset.of(Artifact.class, data());
     }
 
     public boolean isEmpty() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java
index 18f446e..aa0e89f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java
@@ -44,7 +44,7 @@
   /** Returns the artifacts included on the runtime classpath of this binary. */
   @Override
   public Depset /*<Artifact>*/ getRuntimeClasspath() {
-    return Depset.of(Artifact.TYPE, runtimeClasspath);
+    return Depset.of(Artifact.class, runtimeClasspath);
   }
 
   public NestedSet<Artifact> getRuntimeClasspathNestedSet() {
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 5d0cd11..d8f9190 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
@@ -195,7 +195,7 @@
 
   @Override
   public Depset starlarkHermeticInputs() {
-    return Depset.of(Artifact.TYPE, hermeticInputs());
+    return Depset.of(Artifact.class, hermeticInputs());
   }
 
   @Override
@@ -229,7 +229,7 @@
 
   @Override
   public Depset starlarkJavaBaseInputs() {
-    return Depset.of(Artifact.TYPE, javaBaseInputs());
+    return Depset.of(Artifact.class, javaBaseInputs());
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java
index 145ebbe..703f869 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java
@@ -505,11 +505,11 @@
       return runtimeClasspath;
     } else {
       return Depset.of(
-          Artifact.TYPE,
+          Artifact.class,
           NestedSetBuilder.wrap(
               Order.STABLE_ORDER,
               Iterables.filter(
-                  runtimeClasspath.toList(),
+                  runtimeClasspath.toList(Artifact.class),
                   Predicates.not(Predicates.in(excludedArtifacts.getSet().toSet())))));
     }
   }
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 3ceb05b..730099c 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
@@ -30,7 +30,6 @@
 import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.Depset;
-import com.google.devtools.build.lib.collect.nestedset.Depset.ElementType;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.packages.BuiltinProvider;
@@ -498,17 +497,17 @@
 
   @Override
   public Depset getStarlarkBootclasspath() {
-    return Depset.of(Artifact.TYPE, getBootclasspath().bootclasspath());
+    return Depset.of(Artifact.class, getBootclasspath().bootclasspath());
   }
 
   @Override
   public Depset getStarlarkJvmOptions() {
-    return Depset.of(ElementType.STRING, getJvmOptions());
+    return Depset.of(String.class, getJvmOptions());
   }
 
   @Override
   public Depset getStarlarkTools() {
-    return Depset.of(Artifact.TYPE, getTools());
+    return Depset.of(Artifact.class, getTools());
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
index fe9f82f..f86b573 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
@@ -44,7 +44,7 @@
 
   @Override
   public Depset /*<Artifact>*/ getTransitiveProguardSpecsForStarlark() {
-    return Depset.of(Artifact.TYPE, transitiveProguardSpecs);
+    return Depset.of(Artifact.class, transitiveProguardSpecs);
   }
 
   public NestedSet<Artifact> getTransitiveProguardSpecs() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java
index b028f89..ef03866 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/GeneratedExtensionRegistryProvider.java
@@ -72,7 +72,7 @@
   /** @return the proto jars used to generate the registry. */
   @Override
   public Depset /*<Artifact>*/ getInputsForStarlark() {
-    return Depset.of(Artifact.TYPE, inputs);
+    return Depset.of(Artifact.class, inputs);
   }
 
   public NestedSet<Artifact> getInputs() {
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 a19c1d8..9ea4ab9 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
@@ -78,12 +78,12 @@
 
   @Override
   public Depset /*<String>*/ getDynamicFrameworkDirs() {
-    return Depset.of(Depset.ElementType.STRING, dynamicFrameworkDirs);
+    return Depset.of(String.class, dynamicFrameworkDirs);
   }
 
   @Override
   public Depset /*<Artifact>*/ getDynamicFrameworkFiles() {
-    return Depset.of(Artifact.TYPE, dynamicFrameworkFiles);
+    return Depset.of(Artifact.class, dynamicFrameworkFiles);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStarlarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStarlarkCommon.java
index bbc8c97..081864a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStarlarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStarlarkCommon.java
@@ -362,7 +362,7 @@
     // instead of plain NestedSets because the Starlark caller may want to return this directly from
     // their implementation function.
     Map<String, StarlarkValue> outputGroups =
-        Maps.transformValues(linkingOutputs.getOutputGroups(), v -> Depset.of(Artifact.TYPE, v));
+        Maps.transformValues(linkingOutputs.getOutputGroups(), v -> Depset.of(Artifact.class, v));
 
     ImmutableMap.Builder<String, Object> fields = ImmutableMap.builder();
     fields.put("objc", linkingOutputs.getDepsObjcProvider());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
index 9adf9b4..3628179 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationAttributes.java
@@ -23,7 +23,6 @@
 import com.google.devtools.build.lib.analysis.RuleContext;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.Depset;
-import com.google.devtools.build.lib.collect.nestedset.Depset.ElementType;
 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;
@@ -353,12 +352,12 @@
 
   @StarlarkMethod(name = "hdrs", documented = false, structField = true)
   public Depset hdrsForStarlark() {
-    return Depset.of(Artifact.TYPE, hdrs());
+    return Depset.of(Artifact.class, hdrs());
   }
 
   @StarlarkMethod(name = "textual_hdrs", documented = false, structField = true)
   public Depset textualHdrsForStarlark() {
-    return Depset.of(Artifact.TYPE, textualHdrs());
+    return Depset.of(Artifact.class, textualHdrs());
   }
 
   /**
@@ -378,7 +377,7 @@
   @StarlarkMethod(name = "includes", documented = false, structField = true)
   public Depset includesForStarlark() {
     return Depset.of(
-        ElementType.STRING,
+        String.class,
         NestedSetBuilder.wrap(
             Order.COMPILE_ORDER,
             includes().toList().stream()
@@ -389,7 +388,7 @@
   @StarlarkMethod(name = "sdk_includes", documented = false, structField = true)
   public Depset sdkIncludesForStarlark() {
     return Depset.of(
-        ElementType.STRING,
+        String.class,
         NestedSetBuilder.wrap(
             Order.COMPILE_ORDER,
             sdkIncludes().toList().stream()
@@ -411,12 +410,12 @@
 
   @StarlarkMethod(name = "sdk_frameworks", documented = false, structField = true)
   public Depset sdkFrameworksForStarlark() {
-    return Depset.of(ElementType.STRING, sdkFrameworks);
+    return Depset.of(String.class, sdkFrameworks);
   }
 
   @StarlarkMethod(name = "weak_sdk_frameworks", documented = false, structField = true)
   public Depset weakSdkFrameworksForStarlark() {
-    return Depset.of(ElementType.STRING, weakSdkFrameworks);
+    return Depset.of(String.class, weakSdkFrameworks);
   }
 
   /** Returns the SDK frameworks to be linked weakly. */
@@ -426,7 +425,7 @@
 
   @StarlarkMethod(name = "sdk_dylibs", documented = false, structField = true)
   public Depset sdkDylibsForStarlark() {
-    return Depset.of(ElementType.STRING, sdkDylibs);
+    return Depset.of(String.class, sdkDylibs);
   }
 
   /**
@@ -444,8 +443,8 @@
       })
   public Depset headerSearchPathsForStarlark(String genfilesDir) {
     return Depset.of(
-        ElementType.STRING,
-        NestedSetBuilder.stableOrder()
+        String.class,
+        NestedSetBuilder.<String>stableOrder()
             .addAll(
                 headerSearchPaths(PathFragment.create(genfilesDir)).toList().stream()
                     .map(PathFragment::toString)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
index f2f23d2..954eee5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
@@ -256,7 +256,7 @@
 
   @Override
   public Depset /*<Artifact>*/ dynamicFrameworkFileForStarlark() {
-    return Depset.of(Artifact.TYPE, dynamicFrameworkFile());
+    return Depset.of(Artifact.class, dynamicFrameworkFile());
   }
 
   NestedSet<Artifact> dynamicFrameworkFile() {
@@ -265,18 +265,18 @@
 
   @Override
   public Depset /*<Artifact>*/ forceLoadLibrary() {
-    return Depset.of(Artifact.TYPE, get(FORCE_LOAD_LIBRARY));
+    return Depset.of(Artifact.class, get(FORCE_LOAD_LIBRARY));
   }
 
   @Override
   public Depset /*<Artifact>*/ importedLibrary() {
-    return Depset.of(Artifact.TYPE, get(IMPORTED_LIBRARY));
+    return Depset.of(Artifact.class, get(IMPORTED_LIBRARY));
   }
 
   @Override
   public Depset /*<String>*/ strictIncludeForStarlark() {
     return Depset.of(
-        Depset.ElementType.STRING,
+        String.class,
         NestedSetBuilder.wrap(
             Order.STABLE_ORDER,
             getStrictDependencyIncludes().stream()
@@ -286,27 +286,27 @@
 
   @Override
   public Depset /*<Artifact>*/ j2objcLibrary() {
-    return Depset.of(Artifact.TYPE, get(J2OBJC_LIBRARY));
+    return Depset.of(Artifact.class, get(J2OBJC_LIBRARY));
   }
 
   @Override
   public Depset /*<Artifact>*/ library() {
-    return Depset.of(Artifact.TYPE, get(LIBRARY));
+    return Depset.of(Artifact.class, get(LIBRARY));
   }
 
   @Override
   public Depset /*<Artifact>*/ linkInputs() {
-    return Depset.of(Artifact.TYPE, get(LINK_INPUTS));
+    return Depset.of(Artifact.class, get(LINK_INPUTS));
   }
 
   @Override
   public Depset /*<String>*/ linkopt() {
-    return Depset.of(Depset.ElementType.STRING, get(LINKOPT));
+    return Depset.of(String.class, get(LINKOPT));
   }
 
   @Override
   public Depset /*<Artifact>*/ moduleMap() {
-    return Depset.of(Artifact.TYPE, get(MODULE_MAP));
+    return Depset.of(Artifact.class, get(MODULE_MAP));
   }
 
   @Override
@@ -316,17 +316,17 @@
 
   @Override
   public Depset /*<String>*/ sdkDylib() {
-    return Depset.of(Depset.ElementType.STRING, get(SDK_DYLIB));
+    return Depset.of(String.class, get(SDK_DYLIB));
   }
 
   @Override
   public Depset sdkFramework() {
-    return Depset.of(Depset.ElementType.STRING, get(SDK_FRAMEWORK));
+    return Depset.of(String.class, get(SDK_FRAMEWORK));
   }
 
   @Override
   public Depset /*<Artifact>*/ sourceForStarlark() {
-    return Depset.of(Artifact.TYPE, source());
+    return Depset.of(Artifact.class, source());
   }
 
   NestedSet<Artifact> source() {
@@ -340,7 +340,7 @@
 
   @Override
   public Depset /*<Artifact>*/ staticFrameworkFileForStarlark() {
-    return Depset.of(Artifact.TYPE, staticFrameworkFile());
+    return Depset.of(Artifact.class, staticFrameworkFile());
   }
 
   NestedSet<Artifact> staticFrameworkFile() {
@@ -349,12 +349,12 @@
 
   @Override
   public Depset /*<Artifact>*/ umbrellaHeader() {
-    return Depset.of(Artifact.TYPE, get(UMBRELLA_HEADER));
+    return Depset.of(Artifact.class, get(UMBRELLA_HEADER));
   }
 
   @Override
   public Depset weakSdkFramework() {
-    return Depset.of(Depset.ElementType.STRING, get(WEAK_SDK_FRAMEWORK));
+    return Depset.of(String.class, get(WEAK_SDK_FRAMEWORK));
   }
 
   /**
@@ -721,7 +721,7 @@
 
   @Override
   public Depset /*<String>*/ dynamicFrameworkNamesForStarlark() {
-    return Depset.of(Depset.ElementType.STRING, dynamicFrameworkNames());
+    return Depset.of(String.class, dynamicFrameworkNames());
   }
 
   NestedSet<String> dynamicFrameworkNames() {
@@ -730,7 +730,7 @@
 
   @Override
   public Depset /*<String>*/ dynamicFrameworkPathsForStarlark() {
-    return Depset.of(Depset.ElementType.STRING, dynamicFrameworkPaths());
+    return Depset.of(String.class, dynamicFrameworkPaths());
   }
 
   NestedSet<String> dynamicFrameworkPaths() {
@@ -739,7 +739,7 @@
 
   @Override
   public Depset /*<String>*/ staticFrameworkNamesForStarlark() {
-    return Depset.of(Depset.ElementType.STRING, staticFrameworkNames());
+    return Depset.of(String.class, staticFrameworkNames());
   }
 
   NestedSet<String> staticFrameworkNames() {
@@ -748,7 +748,7 @@
 
   @Override
   public Depset /*<String>*/ staticFrameworkPathsForStarlark() {
-    return Depset.of(Depset.ElementType.STRING, staticFrameworkPaths());
+    return Depset.of(String.class, staticFrameworkPaths());
   }
 
   NestedSet<String> staticFrameworkPaths() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderStarlarkConverters.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderStarlarkConverters.java
index eaef6e6..0e3e865 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderStarlarkConverters.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderStarlarkConverters.java
@@ -61,7 +61,7 @@
     for (PathFragment path : pathFragments.toList()) {
       result.add(path.getSafePathString());
     }
-    return Depset.of(Depset.ElementType.STRING, result.build());
+    return Depset.of(String.class, result.build());
   }
 
   /** A converter for ObjcProvider values. */
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 d853092..b7b84d9 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
@@ -196,7 +196,7 @@
         throws EvalException {
       Depset imports =
           importsUncast.equals(Starlark.UNBOUND)
-              ? Depset.of(Depset.ElementType.STRING, NestedSetBuilder.emptySet(Order.COMPILE_ORDER))
+              ? Depset.of(String.class, NestedSetBuilder.emptySet(Order.COMPILE_ORDER))
               : (Depset) importsUncast;
 
       if (!depsetHasTypeAndCompatibleOrder(transitiveSources, Artifact.TYPE, Order.COMPILE_ORDER)) {
@@ -280,9 +280,9 @@
       Preconditions.checkNotNull(transitiveSources);
       return new PyInfo(
           location,
-          Depset.of(Artifact.TYPE, transitiveSources),
+          Depset.of(Artifact.class, transitiveSources),
           usesSharedLibraries,
-          Depset.of(Depset.ElementType.STRING, imports),
+          Depset.of(String.class, 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 a3d3be0..a6839ca 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
@@ -116,9 +116,9 @@
         /* location= */ null,
         /* interpreterPath= */ null,
         interpreter,
-        Depset.of(Artifact.TYPE, files),
+        Depset.of(Artifact.class, files),
         coverageTool,
-        coverageFiles == null ? null : Depset.of(Artifact.TYPE, coverageFiles),
+        coverageFiles == null ? null : Depset.of(Artifact.class, coverageFiles),
         pythonVersion,
         stubShebang,
         bootstrapTemplate);
@@ -138,7 +138,7 @@
         /* interpreter= */ null,
         /* files= */ null,
         coverageTool,
-        coverageFiles == null ? null : Depset.of(Artifact.TYPE, coverageFiles),
+        coverageFiles == null ? null : Depset.of(Artifact.class, coverageFiles),
         pythonVersion,
         stubShebang,
         bootstrapTemplate);
@@ -320,7 +320,7 @@
       Location loc = thread.getCallerLocation();
       if (isInBuildRuntime) {
         if (filesDepset == null) {
-          filesDepset = Depset.of(Artifact.TYPE, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
+          filesDepset = Depset.of(Artifact.class, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
         }
         return new PyRuntimeInfo(
             loc,
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/android/DataBindingV2ProviderApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/android/DataBindingV2ProviderApi.java
index eb86313..5184216 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/android/DataBindingV2ProviderApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/android/DataBindingV2ProviderApi.java
@@ -53,9 +53,6 @@
               + "it, you will be broken when it is removed.",
       documented = false)
   final class LabelJavaPackagePair implements StarlarkValue {
-
-    public static final Depset.ElementType TYPE = Depset.ElementType.of(LabelJavaPackagePair.class);
-
     private final String label;
     private final String javaPackage;
 
diff --git a/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java b/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java
index 7f2a67a..7f98e1c 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java
@@ -303,8 +303,7 @@
   @Test
   public void testListDepsetConversion() throws Exception {
     Object input =
-        Depset.of(
-            Depset.ElementType.STRING, NestedSetBuilder.create(Order.STABLE_ORDER, "a", "b", "c"));
+        Depset.of(String.class, NestedSetBuilder.create(Order.STABLE_ORDER, "a", "b", "c"));
     Type.STRING_LIST.convert(input, null);
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProviderTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProviderTest.java
index 6a1fe2e..19072f9 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProviderTest.java
@@ -111,7 +111,7 @@
   public void directFieldsAddFromStarlark() throws Exception {
     ImmutableList<Artifact> artifacts =
         ImmutableList.of(createArtifact("/foo"), createArtifact("/bar"));
-    Depset set = Depset.of(Artifact.TYPE, NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts));
+    Depset set = Depset.of(Artifact.class, NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts));
     ObjcProvider.StarlarkBuilder builder = objcProviderBuilder();
     builder.addElementsFromStarlark(ObjcProvider.SOURCE, set);
     builder.addElementsFromStarlark(ObjcProvider.MODULE_MAP, set);
diff --git a/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/DebuggerSerializationTest.java b/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/DebuggerSerializationTest.java
index 459a7ef..3262b4b 100644
--- a/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/DebuggerSerializationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/DebuggerSerializationTest.java
@@ -60,8 +60,7 @@
   public void testSimpleNestedSet() {
     Set<String> children = ImmutableSet.of("a", "b");
     Depset set =
-        Depset.of(
-            Depset.ElementType.STRING, NestedSetBuilder.stableOrder().addAll(children).build());
+        Depset.of(String.class, NestedSetBuilder.<String>stableOrder().addAll(children).build());
 
     Value value = getValueProto("name", set);
 
@@ -90,7 +89,7 @@
     ImmutableSet<String> directChildren = ImmutableSet.of("a", "b");
     Depset outerSet =
         Depset.of(
-            Depset.ElementType.STRING,
+            String.class,
             NestedSetBuilder.<String>linkOrder()
                 .addAll(directChildren)
                 .addTransitive(innerNestedSet)