Clean up code that directly imports nested classes like Builder, Entry, etc.

PiperOrigin-RevId: 195040539
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
index dde2007..58441b2 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
@@ -89,7 +89,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.nio.charset.StandardCharsets;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 import javax.annotation.Nullable;
@@ -205,7 +204,7 @@
 
   @Override
   public void initializeRuleClasses(ConfiguredRuleClassProvider.Builder builder) {
-    for (Entry<String, RepositoryFunction> handler : repositoryHandlers.entrySet()) {
+    for (Map.Entry<String, RepositoryFunction> handler : repositoryHandlers.entrySet()) {
       RuleDefinition ruleDefinition;
       try {
         ruleDefinition =
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java
index 6781885..6d5f66a 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java
@@ -28,7 +28,6 @@
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.PackageFactory.PackageContext;
 import com.google.devtools.build.lib.packages.RuleClass;
-import com.google.devtools.build.lib.packages.RuleClass.Builder;
 import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
 import com.google.devtools.build.lib.packages.RuleFactory.InvalidRuleException;
 import com.google.devtools.build.lib.packages.WorkspaceFactoryHelper;
@@ -55,60 +54,55 @@
 public class SkylarkRepositoryModule {
 
   @SkylarkSignature(
-    name = "repository_rule",
-    doc =
-        "Creates a new repository rule. Store it in a global value, so that it can be loaded and "
-            + "called from the WORKSPACE file.",
-    returnType = BaseFunction.class,
-    parameters = {
-      @Param(
-        name = "implementation",
-        type = BaseFunction.class,
-        doc =
-            "the function implementing this rule, has to have exactly one parameter: "
-                + "<code><a href=\"repository_ctx.html\">repository_ctx</a></code>. The function "
-                + "is called during loading phase for each instance of the rule."
-      ),
-      @Param(
-        name = "attrs",
-        type = SkylarkDict.class,
-        noneable = true,
-        defaultValue = "None",
-        doc =
-            "dictionary to declare all the attributes of the rule. It maps from an attribute "
-                + "name to an attribute object (see <a href=\"attr.html\">attr</a> "
-                + "module). Attributes starting with <code>_</code> are private, and can be "
-                + "used to add an implicit dependency on a label to a file (a repository "
-                + "rule cannot depend on a generated artifact). The attribute "
-                + "<code>name</code> is implicitly added and must not be specified.",
-        named = true,
-        positional = false
-      ),
-      @Param(
-        name = "local",
-        type = Boolean.class,
-        defaultValue = "False",
-        doc =
-            "Indicate that this rule fetches everything from the local system and should be "
-                + "reevaluated at every fetch.",
-        named = true,
-        positional = false
-      ),
-      @Param(
-        name = "environ",
-        type = SkylarkList.class,
-        generic1 = String.class,
-        defaultValue = "[]",
-        doc =
-            "Provides a list of environment variable that this repository rule depends on. If"
-                + " an environment variable in that list change, the repository will be refetched.",
-        named = true,
-        positional = false
-      )
-    },
-    useAst = true,
-    useEnvironment = true
-  )
+      name = "repository_rule",
+      doc =
+          "Creates a new repository rule. Store it in a global value, so that it can be loaded and "
+              + "called from the WORKSPACE file.",
+      returnType = BaseFunction.class,
+      parameters = {
+        @Param(
+            name = "implementation",
+            type = BaseFunction.class,
+            doc =
+                "the function implementing this rule, has to have exactly one parameter: "
+                    + "<code><a href=\"repository_ctx.html\">repository_ctx</a></code>. The function "
+                    + "is called during loading phase for each instance of the rule."),
+        @Param(
+            name = "attrs",
+            type = SkylarkDict.class,
+            noneable = true,
+            defaultValue = "None",
+            doc =
+                "dictionary to declare all the attributes of the rule. It maps from an attribute "
+                    + "name to an attribute object (see <a href=\"attr.html\">attr</a> "
+                    + "module). Attributes starting with <code>_</code> are private, and can be "
+                    + "used to add an implicit dependency on a label to a file (a repository "
+                    + "rule cannot depend on a generated artifact). The attribute "
+                    + "<code>name</code> is implicitly added and must not be specified.",
+            named = true,
+            positional = false),
+        @Param(
+            name = "local",
+            type = Boolean.class,
+            defaultValue = "False",
+            doc =
+                "Indicate that this rule fetches everything from the local system and should be "
+                    + "reevaluated at every fetch.",
+            named = true,
+            positional = false),
+        @Param(
+            name = "environ",
+            type = SkylarkList.class,
+            generic1 = String.class,
+            defaultValue = "[]",
+            doc =
+                "Provides a list of environment variable that this repository rule depends on. If"
+                    + " an environment variable in that list change, the repository will be refetched.",
+            named = true,
+            positional = false)
+      },
+      useAst = true,
+      useEnvironment = true)
   private static final BuiltinFunction repositoryRule =
       new BuiltinFunction("repository_rule") {
         @SuppressWarnings({"rawtypes", "unused"})
@@ -123,7 +117,7 @@
             throws EvalException {
           funcallEnv.checkLoadingOrWorkspacePhase("repository_rule", ast.getLocation());
           // We'll set the name later, pass the empty string for now.
-          Builder builder = new Builder("", RuleClassType.WORKSPACE, true);
+          RuleClass.Builder builder = new RuleClass.Builder("", RuleClassType.WORKSPACE, true);
 
           builder.addOrOverrideAttribute(attr("$local", BOOLEAN).defaultValue(local).build());
           builder.addOrOverrideAttribute(
@@ -150,9 +144,9 @@
       };
 
   private static final class RepositoryRuleFunction extends BaseFunction {
-    private final Builder builder;
+    private final RuleClass.Builder builder;
 
-    public RepositoryRuleFunction(Builder builder) {
+    public RepositoryRuleFunction(RuleClass.Builder builder) {
       super("repository_rule", FunctionSignature.KWARGS);
       this.builder = builder;
     }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/StlImpls.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/StlImpls.java
index dc651e5..9c64b18 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/StlImpls.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/StlImpls.java
@@ -15,7 +15,7 @@
 package com.google.devtools.build.lib.bazel.rules.android.ndkcrosstools;
 
 import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain.Builder;
+import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain;
 import java.util.List;
 
 /**
@@ -35,7 +35,7 @@
     }
 
     @Override
-    public void addStlImpl(Builder toolchain, String gccVersion) {
+    public void addStlImpl(CToolchain.Builder toolchain, String gccVersion) {
       addBaseStlImpl(toolchain, gccVersion);
       toolchain.addAllUnfilteredCxxFlag(createIncludeFlags(
           ndkPaths.createGnuLibstdcIncludePaths(gccVersion, toolchain.getTargetCpu())));
@@ -51,7 +51,7 @@
     }
 
     @Override
-    public void addStlImpl(Builder toolchain, String gccVersion) {
+    public void addStlImpl(CToolchain.Builder toolchain, String gccVersion) {
       addBaseStlImpl(toolchain, null);
       toolchain.addAllUnfilteredCxxFlag(createIncludeFlags(ndkPaths.createLibcxxIncludePaths()));
       toolchain.addLinkerFlag("-L" + ndkPaths.createLibcppLinkerPath(toolchain.getTargetCpu()));
@@ -67,7 +67,7 @@
     }
 
     @Override
-    public void addStlImpl(Builder toolchain, String gccVersion) {
+    public void addStlImpl(CToolchain.Builder toolchain, String gccVersion) {
       addBaseStlImpl(toolchain, null);
       toolchain.addAllUnfilteredCxxFlag(createIncludeFlags(ndkPaths.createStlportIncludePaths()));
     }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r10e/AndroidNdkCrosstoolsR10e.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r10e/AndroidNdkCrosstoolsR10e.java
index f2ac4b4..c8bb625 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r10e/AndroidNdkCrosstoolsR10e.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r10e/AndroidNdkCrosstoolsR10e.java
@@ -23,7 +23,7 @@
 import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.DefaultCpuToolchain;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map.Entry;
+import java.util.Map;
 
 /**
  * Generates a CrosstoolRelease proto for the Android NDK.
@@ -101,7 +101,7 @@
         .build();
 
     ImmutableList.Builder<DefaultCpuToolchain> defaultCpuToolchains = ImmutableList.builder();
-    for (Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
+    for (Map.Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
       defaultCpuToolchains.add(DefaultCpuToolchain.newBuilder()
           .setCpu(defaultCpu.getKey())
           .setToolchainIdentifier(defaultCpu.getValue() + "-" + stlImpl.getName())
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r11/AndroidNdkCrosstoolsR11.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r11/AndroidNdkCrosstoolsR11.java
index 65ec516..b109110 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r11/AndroidNdkCrosstoolsR11.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r11/AndroidNdkCrosstoolsR11.java
@@ -23,7 +23,7 @@
 import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.DefaultCpuToolchain;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map.Entry;
+import java.util.Map;
 
 /**
  * Generates a CrosstoolRelease proto for the Android NDK.
@@ -104,7 +104,7 @@
         .build();
 
     ImmutableList.Builder<DefaultCpuToolchain> defaultCpuToolchains = ImmutableList.builder();
-    for (Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
+    for (Map.Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
       defaultCpuToolchains.add(DefaultCpuToolchain.newBuilder()
           .setCpu(defaultCpu.getKey())
           .setToolchainIdentifier(defaultCpu.getValue() + "-" + stlImpl.getName())
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r12/AndroidNdkCrosstoolsR12.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r12/AndroidNdkCrosstoolsR12.java
index 3ae8521..335e54e 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r12/AndroidNdkCrosstoolsR12.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r12/AndroidNdkCrosstoolsR12.java
@@ -23,7 +23,7 @@
 import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.DefaultCpuToolchain;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map.Entry;
+import java.util.Map;
 
 /** Generates a CrosstoolRelease proto for the Android NDK. */
 final class AndroidNdkCrosstoolsR12 {
@@ -98,7 +98,7 @@
             .build();
 
     ImmutableList.Builder<DefaultCpuToolchain> defaultCpuToolchains = ImmutableList.builder();
-    for (Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
+    for (Map.Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
       defaultCpuToolchains.add(
           DefaultCpuToolchain.newBuilder()
               .setCpu(defaultCpu.getKey())
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r13/AndroidNdkCrosstoolsR13.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r13/AndroidNdkCrosstoolsR13.java
index 9cb91f2..0348b00 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r13/AndroidNdkCrosstoolsR13.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/r13/AndroidNdkCrosstoolsR13.java
@@ -23,7 +23,7 @@
 import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.DefaultCpuToolchain;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map.Entry;
+import java.util.Map;
 
 /** Generates a CrosstoolRelease proto for the Android NDK. */
 final class AndroidNdkCrosstoolsR13 {
@@ -97,7 +97,7 @@
             .build();
 
     ImmutableList.Builder<DefaultCpuToolchain> defaultCpuToolchains = ImmutableList.builder();
-    for (Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
+    for (Map.Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
       defaultCpuToolchains.add(
           DefaultCpuToolchain.newBuilder()
               .setCpu(defaultCpu.getKey())
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java
index e8137af..eeaf5f2 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java
@@ -23,7 +23,7 @@
 import com.google.devtools.build.lib.actions.ParameterFile;
 import com.google.devtools.build.lib.analysis.FilesToRunProvider;
 import com.google.devtools.build.lib.analysis.RuleContext;
-import com.google.devtools.build.lib.analysis.Runfiles.Builder;
+import com.google.devtools.build.lib.analysis.Runfiles;
 import com.google.devtools.build.lib.analysis.RunfilesProvider;
 import com.google.devtools.build.lib.analysis.RunfilesSupport;
 import com.google.devtools.build.lib.analysis.ShToolchain;
@@ -69,17 +69,18 @@
   }
 
   @Override
-  public void collectRunfilesForBinary(RuleContext ruleContext, Builder builder, PyCommon common) {
+  public void collectRunfilesForBinary(
+      RuleContext ruleContext, Runfiles.Builder builder, PyCommon common) {
     addRuntime(ruleContext, builder);
   }
 
   @Override
-  public void collectDefaultRunfilesForBinary(RuleContext ruleContext, Builder builder) {
+  public void collectDefaultRunfilesForBinary(RuleContext ruleContext, Runfiles.Builder builder) {
     addRuntime(ruleContext, builder);
   }
 
   @Override
-  public void collectDefaultRunfiles(RuleContext ruleContext, Builder builder) {
+  public void collectDefaultRunfiles(RuleContext ruleContext, Runfiles.Builder builder) {
     builder.addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES);
   }
 
@@ -309,7 +310,7 @@
             .build(ruleContext));
   }
 
-  private static void addRuntime(RuleContext ruleContext, Builder builder) {
+  private static void addRuntime(RuleContext ruleContext, Runfiles.Builder builder) {
     BazelPyRuntimeProvider provider = ruleContext.getPrerequisite(
         ":py_interpreter", Mode.TARGET, BazelPyRuntimeProvider.class);
     if (provider != null && provider.interpreter() != null) {
diff --git a/src/main/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimap.java b/src/main/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimap.java
index 5ae3a27..5e0fadb 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimap.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/ImmutableSortedKeyListMultimap.java
@@ -32,7 +32,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
 import javax.annotation.Nullable;
 
@@ -165,8 +164,8 @@
     }
 
     @Override
-    public Set<Entry<K, Collection<V>>> entrySet() {
-      ImmutableSet.Builder<Entry<K, Collection<V>>> builder = ImmutableSet.builder();
+    public Set<Map.Entry<K, Collection<V>>> entrySet() {
+      ImmutableSet.Builder<Map.Entry<K, Collection<V>>> builder = ImmutableSet.builder();
       for (int i = 0; i < sortedKeys.length; i++) {
         builder.add(new SimpleImmutableEntry<>(sortedKeys[i], values[i]));
       }
@@ -333,8 +332,8 @@
   }
 
   @Override
-  public Collection<Entry<K, V>> entries() {
-    ImmutableList.Builder<Entry<K, V>> builder = ImmutableList.builder();
+  public Collection<Map.Entry<K, V>> entries() {
+    ImmutableList.Builder<Map.Entry<K, V>> builder = ImmutableList.builder();
     for (int i = 0; i < sortedKeys.length; i++) {
       for (V value : values[i]) {
         builder.add(new SimpleImmutableEntry<>(sortedKeys[i], value));
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
index 233f374..98fc311 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java
@@ -36,7 +36,6 @@
 import java.util.IdentityHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Queue;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -461,7 +460,7 @@
         Map<String, ? extends Predicate<? super String>> vfsHeuristics =
             VfsHeuristics.vfsTypeHeuristics;
         List<RecorderAndPredicate> recorders = new ArrayList<>(vfsHeuristics.size());
-        for (Entry<String, ? extends Predicate<? super String>> e : vfsHeuristics.entrySet()) {
+        for (Map.Entry<String, ? extends Predicate<? super String>> e : vfsHeuristics.entrySet()) {
           recorders.add(new RecorderAndPredicate(
               new SingleStatRecorder(task + " " + e.getKey(), HISTOGRAM_BUCKETS), e.getValue()));
         }
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java b/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java
index 530547d..ccb353c 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java
@@ -32,7 +32,6 @@
 import com.google.perftools.profiles.ProfileProto.Function;
 import com.google.perftools.profiles.ProfileProto.Line;
 import com.google.perftools.profiles.ProfileProto.Profile;
-import com.google.perftools.profiles.ProfileProto.Profile.Builder;
 import com.google.perftools.profiles.ProfileProto.Sample;
 import com.google.perftools.profiles.ProfileProto.ValueType;
 import java.io.FileOutputStream;
@@ -342,7 +341,7 @@
     final Map<String, Long> table = new HashMap<>();
     long index = 1; // 0 is reserved
 
-    LocationTable(Builder profile, FunctionTable functionTable) {
+    LocationTable(Profile.Builder profile, FunctionTable functionTable) {
       this.profile = profile;
       this.functionTable = functionTable;
     }
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/output/SkylarkHtml.java b/src/main/java/com/google/devtools/build/lib/profiler/output/SkylarkHtml.java
index d01f93e..b560e1f 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/output/SkylarkHtml.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/output/SkylarkHtml.java
@@ -18,11 +18,9 @@
 import com.google.devtools.build.lib.profiler.statistics.SkylarkStatistics;
 import com.google.devtools.build.lib.profiler.statistics.TasksStatistics;
 import com.google.devtools.build.lib.util.LongArrayList;
-
 import java.io.PrintStream;
 import java.util.Arrays;
 import java.util.Map;
-import java.util.Map.Entry;
 
 /**
  * Formats {@link SkylarkStatistics} as HTML tables and histogram charts.
@@ -165,7 +163,7 @@
   private void printHistogramData(Map<String, LongArrayList> functionDurations, String category) {
     lnPrintf("'%s': {", category);
     down();
-    for (Entry<String, LongArrayList> entry : functionDurations.entrySet()) {
+    for (Map.Entry<String, LongArrayList> entry : functionDurations.entrySet()) {
       String function = entry.getKey();
       LongArrayList durations = entry.getValue();
       lnPrintf("'%s': google.visualization.arrayToDataTable(", function);
@@ -211,7 +209,7 @@
       lnPrintf("%s.addColumn('number', 'relative (%%)');", tmpVar);
       lnPrintf("%s.addRows([", tmpVar);
       down();
-      for (Entry<String, TasksStatistics> entry : taskStatistics.entrySet()) {
+      for (Map.Entry<String, TasksStatistics> entry : taskStatistics.entrySet()) {
         String function = entry.getKey();
         TasksStatistics stats = entry.getValue();
         TasksStatistics selfStats = taskSelfStatistics.get(function);
diff --git a/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java b/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java
index 4dff272..ff98837 100644
--- a/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java
+++ b/src/main/java/com/google/devtools/build/lib/profiler/statistics/SkylarkStatistics.java
@@ -21,7 +21,6 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Map.Entry;
 
 /**
  * Extracts the execution times of user-defined and built-in Skylark functions and computes
@@ -208,7 +207,7 @@
       Map<String, LongArrayList> durationsMap,
       Map<String, LongArrayList> selfDurationsMap) {
     long totalTime = 0;
-    for (Entry<String, Collection<Task>> entry : functionTasks.asMap().entrySet()) {
+    for (Map.Entry<String, Collection<Task>> entry : functionTasks.asMap().entrySet()) {
       String function = entry.getKey();
       Collection<Task> tasks = entry.getValue();
       LongArrayList durations;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/Alias.java b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
index ad57397..85e651a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/Alias.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
@@ -30,7 +30,6 @@
 import com.google.devtools.build.lib.analysis.VisibilityProviderImpl;
 import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
 import com.google.devtools.build.lib.packages.RuleClass;
-import com.google.devtools.build.lib.packages.RuleClass.Builder;
 import com.google.devtools.build.lib.util.FileTypeSet;
 
 /**
@@ -56,7 +55,7 @@
    */
   public static class AliasRule implements RuleDefinition {
     @Override
-    public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) {
+    public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment environment) {
       return builder
           /*<!-- #BLAZE_RULE(alias).ATTRIBUTE(actual) -->
           The target this alias refers to. It does not need to be a rule, it can also be an input
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
index 1e217bc..de5e22f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
@@ -14,7 +14,7 @@
 package com.google.devtools.build.lib.rules.config;
 
 import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.Builder;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
 import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
 import com.google.devtools.build.lib.rules.core.CoreRules;
 
@@ -29,7 +29,7 @@
   }
 
   @Override
-  public void init(Builder builder) {
+  public void init(ConfiguredRuleClassProvider.Builder builder) {
     builder.addRuleDefinition(new ConfigRuleClasses.ConfigBaseRule());
     builder.addRuleDefinition(new ConfigRuleClasses.ConfigSettingRule());
     builder.addConfig(ConfigFeatureFlagOptions.class, new ConfigFeatureFlagConfiguration.Loader());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java b/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java
index 8b293cf..75fa2d6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java
@@ -15,7 +15,7 @@
 
 import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.lib.analysis.BaseRuleClasses;
-import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.Builder;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
 import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
 import com.google.devtools.build.lib.analysis.test.TestConfiguration;
 import com.google.devtools.build.lib.packages.NativeProvider;
@@ -29,7 +29,7 @@
   }
 
   @Override
-  public void init(Builder builder) {
+  public void init(ConfiguredRuleClassProvider.Builder builder) {
     builder.addConfig(TestConfiguration.TestOptions.class, new TestConfiguration.Loader());
     builder.addRuleDefinition(new BaseRuleClasses.RootRule());
     builder.addRuleDefinition(new BaseRuleClasses.BaseRule());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java
index 30b17dc..748f008 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java
@@ -14,7 +14,7 @@
 package com.google.devtools.build.lib.rules.cpp.transitions;
 
 import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.Builder;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
 import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
 
 /** Rule set to deal with LIPO data transitions */
@@ -26,7 +26,7 @@
   }
 
   @Override
-  public void init(Builder builder) {
+  public void init(ConfiguredRuleClassProvider.Builder builder) {
     builder.setLipoDataTransition(DisableLipoTransition.INSTANCE);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java
index 3eab22e..b369ab9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java
@@ -26,7 +26,6 @@
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.Attribute;
 import com.google.devtools.build.lib.packages.RuleClass;
-import com.google.devtools.build.lib.packages.RuleClass.Builder;
 import com.google.devtools.build.lib.util.FileType;
 
 /**
@@ -46,7 +45,7 @@
                   : DEFAULT_PROTO_COMPILER);
 
   @Override
-  public RuleClass build(Builder builder, final RuleDefinitionEnvironment env) {
+  public RuleClass build(RuleClass.Builder builder, final RuleDefinitionEnvironment env) {
 
     return builder
         .requiresConfigurationFragments(ProtoConfiguration.class)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMultimapCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMultimapCodec.java
index 08faecc..f5f407f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMultimapCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMultimapCodec.java
@@ -20,7 +20,7 @@
 import com.google.protobuf.CodedOutputStream;
 import java.io.IOException;
 import java.util.Collection;
-import java.util.Map.Entry;
+import java.util.Map;
 
 /**
  * A codec for {@link ImmutableMultimap}. Handles both {@link ImmutableListMultimap} and {@link
@@ -46,7 +46,7 @@
       throw new SerializationException("Unexpected multimap type: " + obj.getClass());
     }
     codedOut.writeInt32NoTag(obj.asMap().size());
-    for (Entry<K, Collection<V>> entry : obj.asMap().entrySet()) {
+    for (Map.Entry<K, Collection<V>> entry : obj.asMap().entrySet()) {
       context.serialize(entry.getKey(), codedOut);
       context.serialize(entry.getValue(), codedOut);
     }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Type.java b/src/main/java/com/google/devtools/build/lib/syntax/Type.java
index b2ce2d3..d8509e3 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Type.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Type.java
@@ -31,7 +31,6 @@
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
 import java.util.logging.Level;
 import javax.annotation.Nullable;
@@ -441,7 +440,7 @@
     @Override
     public <T> void visitLabels(LabelVisitor<T> visitor, Object value, T context)
         throws InterruptedException {
-      for (Entry<KeyT, ValueT> entry : cast(value).entrySet()) {
+      for (Map.Entry<KeyT, ValueT> entry : cast(value).entrySet()) {
         keyType.visitLabels(visitor, entry.getKey(), context);
         valueType.visitLabels(visitor, entry.getValue(), context);
       }
@@ -503,7 +502,7 @@
       // It's possible that #convert() calls transform non-equal keys into equal ones so we can't
       // just use ImmutableMap.Builder() here (that throws on collisions).
       LinkedHashMap<KeyT, ValueT> result = new LinkedHashMap<>();
-      for (Entry<?, ?> elem : o.entrySet()) {
+      for (Map.Entry<?, ?> elem : o.entrySet()) {
         result.put(
             keyType.convert(elem.getKey(), "dict key element", context),
             valueType.convert(elem.getValue(), "dict value element", context));
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
index 38da81c..2169c18 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
@@ -22,7 +22,6 @@
 import com.google.common.io.ByteSource;
 import com.google.common.io.CharStreams;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.vfs.Dirent.Type;
 import com.google.devtools.common.options.EnumConverter;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -584,17 +583,17 @@
 
   protected static Dirent.Type direntFromStat(FileStatus stat) {
     if (stat == null) {
-      return Type.UNKNOWN;
+      return Dirent.Type.UNKNOWN;
     } else if (stat.isSpecialFile()) {
-        return Type.UNKNOWN;
+      return Dirent.Type.UNKNOWN;
     } else if (stat.isFile()) {
-      return Type.FILE;
+      return Dirent.Type.FILE;
     } else if (stat.isDirectory()) {
-      return Type.DIRECTORY;
+      return Dirent.Type.DIRECTORY;
     } else if (stat.isSymbolicLink()) {
-      return Type.SYMLINK;
+      return Dirent.Type.SYMLINK;
     } else {
-      return Type.UNKNOWN;
+      return Dirent.Type.UNKNOWN;
     }
   }
 
diff --git a/src/main/java/com/google/devtools/common/options/processor/OptionProcessor.java b/src/main/java/com/google/devtools/common/options/processor/OptionProcessor.java
index 0f1989c..485efcd 100644
--- a/src/main/java/com/google/devtools/common/options/processor/OptionProcessor.java
+++ b/src/main/java/com/google/devtools/common/options/processor/OptionProcessor.java
@@ -26,7 +26,7 @@
 import com.google.devtools.common.options.OptionsParser;
 import com.google.devtools.common.options.OptionsParsingException;
 import java.util.List;
-import java.util.Map.Entry;
+import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -107,7 +107,7 @@
     builder.put(long.class, typeUtils.getPrimitiveType(TypeKind.LONG));
     primitiveTypeMap = builder.build();
 
-    for (Entry<Class<?>, Converter<?>> entry : Converters.DEFAULT_CONVERTERS.entrySet()) {
+    for (Map.Entry<Class<?>, Converter<?>> entry : Converters.DEFAULT_CONVERTERS.entrySet()) {
       Class<?> converterClass = entry.getKey();
       String typeName = converterClass.getCanonicalName();
       TypeElement typeElement = elementUtils.getTypeElement(typeName);