Replace Package.Builder.Helper with PackageSettings object

Use a boolean instead of inheritance to toggle the features Helper was enabling.
The bulk PackageSettings object is likely unnecessary - we could have threaded a
boolean along, but given how much wiring we had to do the renaming/repurposing
was far less tedious.

PiperOrigin-RevId: 320211700
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 8fa17ca..421ab01 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -38,6 +38,7 @@
 import com.google.devtools.build.lib.events.EventHandler;
 import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable;
 import com.google.devtools.build.lib.packages.License.DistributionType;
+import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;
 import com.google.devtools.build.lib.packages.RuleClass.Builder.ThirdPartyLicenseExistencePolicy;
 import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
 import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
@@ -76,6 +77,8 @@
  * strictly immutable, so until their types are guaranteed immutable we're not applying the
  * {@code @Immutable} annotation here.
  *
+ * <p>This class should not be extended - it's only non-final for mocking!
+ *
  * <p>When changing this class, make sure to make corresponding changes to serialization!
  */
 @SuppressWarnings("JavaLangClash")
@@ -94,6 +97,8 @@
    */
   private final PackageIdentifier packageIdentifier;
 
+  private final boolean suggestNoSuchTargetCorrections;
+
   /** The filename of this package's BUILD file. */
   private RootedPath filename;
 
@@ -214,20 +219,20 @@
   }
 
   /**
-   * Package initialization, part 1 of 3: instantiates a new package with the
-   * given name.
+   * Package initialization, part 1 of 3: instantiates a new package with the given name.
    *
-   * <p>As part of initialization, {@link Builder} constructs {@link InputFile}
-   * and {@link PackageGroup} instances that require a valid Package instance where
-   * {@link Package#getNameFragment()} is accessible. That's why these settings are
-   * applied here at the start.
+   * <p>As part of initialization, {@link Builder} constructs {@link InputFile} and {@link
+   * PackageGroup} instances that require a valid Package instance where {@link
+   * Package#getNameFragment()} is accessible. That's why these settings are applied here at the
+   * start.
    *
-   * @precondition {@code name} must be a suffix of
-   * {@code filename.getParentDirectory())}.
+   * @precondition {@code name} must be a suffix of {@code filename.getParentDirectory())}.
    */
-  protected Package(PackageIdentifier packageId, String runfilesPrefix) {
+  protected Package(
+      PackageIdentifier packageId, String runfilesPrefix, boolean suggestNoSuchTargetCorrections) {
     this.packageIdentifier = packageId;
     this.workspaceName = runfilesPrefix;
+    this.suggestNoSuchTargetCorrections = suggestNoSuchTargetCorrections;
   }
 
   /** Returns this packages' identifier. */
@@ -587,7 +592,9 @@
       return target;
     }
 
-    // No such target.
+    if (!suggestNoSuchTargetCorrections) {
+      throw makeNoSuchTargetException(targetName, /*suffix=*/ "");
+    }
 
     // If there's a file on the disk that's not mentioned in the BUILD file,
     // produce a more informative error.  NOTE! this code path is only executed
@@ -772,7 +779,7 @@
   }
 
   public static Builder newExternalPackageBuilder(
-      Builder.Helper helper,
+      PackageSettings helper,
       RootedPath workspacePath,
       String runfilesPrefix,
       StarlarkSemantics starlarkSemantics) {
@@ -794,24 +801,25 @@
     public static final ImmutableMap<RepositoryName, RepositoryName> EMPTY_REPOSITORY_MAPPING =
         ImmutableMap.of();
 
-    public interface Helper {
+    /** Defines configuration to control the runtime behavior of {@link Package}s. */
+    public interface PackageSettings {
       /**
-       * Returns a fresh {@link Package} instance that a {@link Builder} will internally mutate
-       * during package loading. Called by {@link PackageFactory}.
+       * Returns if {@link NoSuchTargetException}s thrown from {@link #getTarget} should attempt to
+       * suggest existing alternatives. The benefit is potentially improved error messaging, while
+       * the drawback is extra I/O and CPU work, which might not be desired in all environments.
        */
-      Package createFreshPackage(PackageIdentifier packageId, String runfilesPrefix);
+      boolean suggestNoSuchTargetCorrections();
     }
 
-    /** {@link Helper} that simply calls the {@link Package} constructor. */
-    public static class DefaultHelper implements Helper {
-      public static final DefaultHelper INSTANCE = new DefaultHelper();
+    /** Default {@link PackageSettings}. */
+    public static class DefaultPackageSettings implements PackageSettings {
+      public static final DefaultPackageSettings INSTANCE = new DefaultPackageSettings();
 
-      private DefaultHelper() {
-      }
+      private DefaultPackageSettings() {}
 
       @Override
-      public Package createFreshPackage(PackageIdentifier packageId, String runfilesPrefix) {
-        return new Package(packageId, runfilesPrefix);
+      public boolean suggestNoSuchTargetCorrections() {
+        return true;
       }
     }
 
@@ -915,12 +923,12 @@
     private boolean alreadyBuilt = false;
 
     Builder(
-        Helper helper,
+        PackageSettings packageSettings,
         PackageIdentifier id,
         String runfilesPrefix,
         boolean noImplicitFileExport,
         ImmutableMap<RepositoryName, RepositoryName> repositoryMapping) {
-      this.pkg = helper.createFreshPackage(id, runfilesPrefix);
+      this.pkg = new Package(id, runfilesPrefix, packageSettings.suggestNoSuchTargetCorrections());
       this.noImplicitFileExport = noImplicitFileExport;
       this.repositoryMapping = repositoryMapping;
       if (pkg.getName().startsWith("javatests/")) {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index 5a0fac6..0161fb2 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -31,6 +31,7 @@
 import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable;
 import com.google.devtools.build.lib.events.StoredEventHandler;
 import com.google.devtools.build.lib.packages.Globber.BadGlobException;
+import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;
 import com.google.devtools.build.lib.packages.PackageValidator.InvalidPackageException;
 import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
 import com.google.devtools.build.lib.packages.RuleFactory.BuildLangTypedAttributeValuesMap;
@@ -128,7 +129,7 @@
   private final ImmutableMap<String, Object> nativeModuleBindingsForBuild;
   private final ImmutableMap<String, Object> nativeModuleBindingsForWorkspace;
 
-  private final Package.Builder.Helper packageBuilderHelper;
+  private final PackageSettings packageSettings;
   private final PackageValidator packageValidator;
   private final PackageLoadingListener packageLoadingListener;
 
@@ -160,8 +161,8 @@
   }
 
   @VisibleForTesting
-  public Package.Builder.Helper getPackageBuilderHelperForTesting() {
-    return packageBuilderHelper;
+  public PackageSettings getPackageSettingsForTesting() {
+    return packageSettings;
   }
 
   /**
@@ -180,7 +181,7 @@
       RuleClassProvider ruleClassProvider,
       Iterable<EnvironmentExtension> environmentExtensions,
       String version,
-      Package.Builder.Helper packageBuilderHelper,
+      PackageSettings packageSettings,
       PackageValidator packageValidator,
       PackageLoadingListener packageLoadingListener) {
     this.ruleFactory = new RuleFactory(ruleClassProvider);
@@ -194,7 +195,7 @@
             ruleFunctions, packageArguments, this.environmentExtensions);
     this.nativeModuleBindingsForWorkspace =
         createNativeModuleBindingsForWorkspace(ruleClassProvider, version);
-    this.packageBuilderHelper = packageBuilderHelper;
+    this.packageSettings = packageSettings;
     this.packageValidator = packageValidator;
     this.packageLoadingListener = packageLoadingListener;
   }
@@ -462,14 +463,14 @@
   public Package.Builder newExternalPackageBuilder(
       RootedPath workspacePath, String runfilesPrefix, StarlarkSemantics starlarkSemantics) {
     return Package.newExternalPackageBuilder(
-        packageBuilderHelper, workspacePath, runfilesPrefix, starlarkSemantics);
+        packageSettings, workspacePath, runfilesPrefix, starlarkSemantics);
   }
 
   @VisibleForTesting
   public Package.Builder newPackageBuilder(
       PackageIdentifier packageId, String runfilesPrefix, StarlarkSemantics starlarkSemantics) {
     return new Package.Builder(
-        packageBuilderHelper,
+        packageSettings,
         packageId,
         runfilesPrefix,
         starlarkSemantics.incompatibleNoImplicitFileExport(),
@@ -723,7 +724,7 @@
       throws InterruptedException {
     Package.Builder pkgBuilder =
         new Package.Builder(
-                packageBuilderHelper,
+                packageSettings,
                 packageId,
                 ruleClassProvider.getRunfilesPrefix(),
                 semantics.incompatibleNoImplicitFileExport(),
diff --git a/src/main/java/com/google/devtools/build/lib/packages/metrics/PackageMetricsModule.java b/src/main/java/com/google/devtools/build/lib/packages/metrics/PackageMetricsModule.java
index f8a580b..2f95729 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/metrics/PackageMetricsModule.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/metrics/PackageMetricsModule.java
@@ -18,7 +18,7 @@
 import com.google.common.collect.ImmutableList;
 import com.google.common.flogger.GoogleLogger;
 import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;
 import com.google.devtools.build.lib.packages.PackageLoadingListener;
 import com.google.devtools.build.lib.packages.metrics.ExtremaPackageLoadingListener.PackageIdentifierAndLong;
 import com.google.devtools.build.lib.packages.metrics.ExtremaPackageLoadingListener.TopPackages;
@@ -61,7 +61,7 @@
   @Nullable
   @Override
   public PackageLoadingListener getPackageLoadingListener(
-      Package.Builder.Helper packageBuilderHelper,
+      PackageSettings packageSettings,
       ConfiguredRuleClassProvider ruleClassProvider,
       FileSystem fs) {
     return packageLoadingListener;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
index b489ef8..bb7eb77 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
@@ -30,7 +30,7 @@
 import com.google.devtools.build.lib.exec.ExecutorBuilder;
 import com.google.devtools.build.lib.exec.ModuleActionContextRegistry;
 import com.google.devtools.build.lib.exec.SpawnStrategyRegistry;
-import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;
 import com.google.devtools.build.lib.packages.PackageLoadingListener;
 import com.google.devtools.build.lib.packages.PackageValidator;
 import com.google.devtools.build.lib.skyframe.PrecomputedValue;
@@ -394,14 +394,13 @@
   }
 
   /**
-   * Returns a helper that the {@link com.google.devtools.build.lib.packages.PackageFactory} will
-   * use during package loading, or null if the module does not provide any helper.
+   * Returns {@link PackageSettings} for creating packages.
    *
    * <p>Called once during server startup some time after {@link #serverInit}.
    *
    * <p>Note that only one helper per Bazel/Blaze runtime is allowed.
    */
-  public Package.Builder.Helper getPackageBuilderHelper() {
+  public PackageSettings getPackageSettings() {
     return null;
   }
 
@@ -426,7 +425,7 @@
    */
   @Nullable
   public PackageLoadingListener getPackageLoadingListener(
-      Package.Builder.Helper packageBuilderHelper,
+      PackageSettings packageSettings,
       ConfiguredRuleClassProvider ruleClassProvider,
       FileSystem fs) {
     return null;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 5835ba7..9a719aa 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -49,7 +49,8 @@
 import com.google.devtools.build.lib.events.ExtendedEventHandler;
 import com.google.devtools.build.lib.events.OutputFilter;
 import com.google.devtools.build.lib.exec.BinTools;
-import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
+import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.PackageLoadingListener;
 import com.google.devtools.build.lib.packages.PackageValidator;
@@ -1514,29 +1515,16 @@
 
       ConfiguredRuleClassProvider ruleClassProvider = ruleClassBuilder.build();
 
-      Package.Builder.Helper packageBuilderHelper = null;
-      for (BlazeModule module : blazeModules) {
-        Package.Builder.Helper candidateHelper = module.getPackageBuilderHelper();
-        if (candidateHelper != null) {
-          Preconditions.checkState(
-              packageBuilderHelper == null,
-              "more than one module defines a package builder helper");
-          packageBuilderHelper = candidateHelper;
-        }
-      }
-      if (packageBuilderHelper == null) {
-        packageBuilderHelper = Package.Builder.DefaultHelper.INSTANCE;
-      }
-
+      PackageSettings packageSettings = getPackageSettings(blazeModules);
       PackageFactory packageFactory =
           new PackageFactory(
               ruleClassProvider,
               serverBuilder.getEnvironmentExtensions(),
               BlazeVersionInfo.instance().getVersion(),
-              packageBuilderHelper,
+              packageSettings,
               getPackageValidator(blazeModules),
               getPackageLoadingListener(
-                  blazeModules, packageBuilderHelper, ruleClassProvider, fileSystem));
+                  blazeModules, packageSettings, ruleClassProvider, fileSystem));
 
       ProjectFile.Provider projectFileProvider = null;
       for (BlazeModule module : blazeModules) {
@@ -1650,6 +1638,17 @@
       return this;
     }
 
+    private static PackageSettings getPackageSettings(List<BlazeModule> blazeModules) {
+      List<PackageSettings> packageSettingss =
+          blazeModules.stream()
+              .map(module -> module.getPackageSettings())
+              .filter(settings -> settings != null)
+              .collect(toImmutableList());
+      Preconditions.checkState(
+          packageSettingss.size() <= 1, "more than one module defines a PackageSettings");
+      return Iterables.getFirst(packageSettingss, DefaultPackageSettings.INSTANCE);
+    }
+
     private static PackageValidator getPackageValidator(List<BlazeModule> blazeModules) {
       List<PackageValidator> packageValidators =
           blazeModules.stream()
@@ -1664,7 +1663,7 @@
 
   private static PackageLoadingListener getPackageLoadingListener(
       List<BlazeModule> blazeModules,
-      Package.Builder.Helper packageBuilderHelper,
+      PackageSettings packageBuilderHelper,
       ConfiguredRuleClassProvider ruleClassProvider,
       FileSystem fs) {
     ImmutableList<PackageLoadingListener> listeners =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index a538035..0253701 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -117,6 +117,7 @@
 import com.google.devtools.build.lib.packages.NoSuchTargetException;
 import com.google.devtools.build.lib.packages.NoSuchThingException;
 import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.RuleClassProvider;
 import com.google.devtools.build.lib.packages.RuleVisibility;
@@ -2630,8 +2631,8 @@
   }
 
   @VisibleForTesting
-  public Package.Builder.Helper getPackageBuilderHelperForTesting() {
-    return pkgFactory.getPackageBuilderHelperForTesting();
+  public PackageSettings getPackageSettingsForTesting() {
+    return pkgFactory.getPackageSettingsForTesting();
   }
 
   @VisibleForTesting
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
index 554d671..f4a2c6f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -36,6 +36,7 @@
 import com.google.devtools.build.lib.packages.ConstantRuleVisibility;
 import com.google.devtools.build.lib.packages.NoSuchPackageException;
 import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.PackageFactory.EnvironmentExtension;
 import com.google.devtools.build.lib.packages.PackageLoadingListener;
@@ -277,7 +278,7 @@
             ruleClassProvider,
             getEnvironmentExtensions(),
             "PackageLoader",
-            Package.Builder.DefaultHelper.INSTANCE,
+            DefaultPackageSettings.INSTANCE,
             PackageValidator.NOOP_VALIDATOR,
             PackageLoadingListener.NOOP_LISTENER);
   }
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java
index 329d34b..1de6151 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java
@@ -29,6 +29,7 @@
 import com.google.devtools.build.lib.events.ExtendedEventHandler;
 import com.google.devtools.build.lib.packages.Attribute;
 import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
 import com.google.devtools.build.lib.packages.Rule;
 import com.google.devtools.build.lib.packages.RuleClass;
 import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
@@ -131,7 +132,7 @@
       throws Exception {
     Package.Builder packageBuilder =
         Package.newExternalPackageBuilder(
-            Package.Builder.DefaultHelper.INSTANCE,
+            DefaultPackageSettings.INSTANCE,
             RootedPath.toRootedPath(root, workspaceFile),
             "runfiles",
             starlarkSemantics);
diff --git a/src/test/java/com/google/devtools/build/lib/packages/WorkspaceFactoryTestHelper.java b/src/test/java/com/google/devtools/build/lib/packages/WorkspaceFactoryTestHelper.java
index 2950a82..1ff7412 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/WorkspaceFactoryTestHelper.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/WorkspaceFactoryTestHelper.java
@@ -20,6 +20,7 @@
 import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.StoredEventHandler;
+import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
 import com.google.devtools.build.lib.syntax.Mutability;
 import com.google.devtools.build.lib.syntax.ParserInput;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
@@ -64,7 +65,7 @@
     StoredEventHandler eventHandler = new StoredEventHandler();
     builder =
         Package.newExternalPackageBuilder(
-            Package.Builder.DefaultHelper.INSTANCE,
+            DefaultPackageSettings.INSTANCE,
             RootedPath.toRootedPath(root, workspaceFilePath),
             "",
             StarlarkSemantics.DEFAULT);
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryApparatus.java b/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryApparatus.java
index 831caaa..024cf24 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryApparatus.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryApparatus.java
@@ -27,6 +27,7 @@
 import com.google.devtools.build.lib.packages.LegacyGlobber;
 import com.google.devtools.build.lib.packages.NoSuchPackageException;
 import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.PackageLoadingListener;
 import com.google.devtools.build.lib.packages.PackageValidator;
@@ -66,7 +67,7 @@
             ruleClassProvider,
             /*environmentExtensions=*/ ImmutableList.of(),
             "test",
-            Package.Builder.DefaultHelper.INSTANCE,
+            DefaultPackageSettings.INSTANCE,
             packageValidator,
             PackageLoadingListener.NOOP_LISTENER);
   }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java
index f050b4c..d1edec5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunctionTest.java
@@ -23,6 +23,7 @@
 import com.google.devtools.build.lib.packages.NoSuchPackageException;
 import com.google.devtools.build.lib.packages.NoSuchTargetException;
 import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
 import com.google.devtools.build.lib.skyframe.TransitiveBaseTraversalFunction.TargetAndErrorIfAnyImpl;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.util.GroupedList;
@@ -199,7 +200,7 @@
     Path buildFile = scratch.file("" + packageId.getSourceRoot() + "/BUILD", lines);
     Package.Builder externalPkg =
         Package.newExternalPackageBuilder(
-            Package.Builder.DefaultHelper.INSTANCE,
+            DefaultPackageSettings.INSTANCE,
             RootedPath.toRootedPath(root, buildFile.getRelative("WORKSPACE")),
             "TESTING",
             StarlarkSemantics.DEFAULT);
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/PackageFactoryBuilderFactoryForBazelUnitTests.java b/src/test/java/com/google/devtools/build/lib/testutil/PackageFactoryBuilderFactoryForBazelUnitTests.java
index 48bd859..ead15a4 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/PackageFactoryBuilderFactoryForBazelUnitTests.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/PackageFactoryBuilderFactoryForBazelUnitTests.java
@@ -16,7 +16,7 @@
 import com.google.devtools.build.lib.analysis.BlazeDirectories;
 import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
 import com.google.devtools.build.lib.packages.BuilderFactoryForTesting;
-import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.Package.Builder.DefaultPackageSettings;
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.PackageLoadingListener;
 import com.google.devtools.build.lib.packages.RuleClassProvider;
@@ -54,7 +54,7 @@
           ruleClassProvider,
           environmentExtensions,
           version,
-          Package.Builder.DefaultHelper.INSTANCE,
+          DefaultPackageSettings.INSTANCE,
           packageValidator,
           doChecksForTesting
               ? new BazelPackageLoadingListenerForTesting(