diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java index 167b2596cc0b80..e2236372a91e4d 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java @@ -75,8 +75,8 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.StarlarkImplicitOutputsFunctionWithCallback; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.StarlarkImplicitOutputsFunctionWithMap; import com.google.devtools.build.lib.packages.LabelConverter; +import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Package.NameConflictException; -import com.google.devtools.build.lib.packages.PackageFactory.PackageContext; import com.google.devtools.build.lib.packages.PredicateWithMessage; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; @@ -1037,8 +1037,8 @@ public Object call(StarlarkThread thread, Tuple args, Dict kwarg if (ruleClass == null) { throw new EvalException("Invalid rule class hasn't been exported by a bzl file"); } - PackageContext pkgContext = thread.getThreadLocal(PackageContext.class); - if (pkgContext == null) { + Package.Builder pkgBuilder = thread.getThreadLocal(Package.Builder.class); + if (pkgBuilder == null) { throw new EvalException( "Cannot instantiate a rule when loading a .bzl file. " + "Rules may be instantiated only in a BUILD thread."); @@ -1086,7 +1086,7 @@ public Object call(StarlarkThread thread, Tuple args, Dict kwarg currentRuleClass.getName(), attr, value, - pkgContext.getBuilder().getLabelConverter()); + pkgBuilder.getLabelConverter()); initializerKwargs.put(attr.getName(), reifiedValue); } } @@ -1141,7 +1141,7 @@ public Object call(StarlarkThread thread, Tuple args, Dict kwarg new BuildLangTypedAttributeValuesMap(kwargs); try { RuleFactory.createAndAddRule( - pkgContext.getBuilder(), + pkgBuilder, ruleClass, attributeValues, thread @@ -1149,7 +1149,7 @@ public Object call(StarlarkThread thread, Tuple args, Dict kwarg .getBool(BuildLanguageOptions.INCOMPATIBLE_FAIL_ON_UNKNOWN_ATTRIBUTES), // TODO(#19922): Delete this arg once it's definitely redundant (when the builder owns // its eventHandler). - pkgContext.getBuilder().getLocalEventHandler(), + pkgBuilder.getLocalEventHandler(), thread.getCallStack()); } catch (InvalidRuleException | NameConflictException e) { throw new EvalException(e); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryModule.java index 86694ea38f3ae2..8ae318f024de68 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryModule.java @@ -38,7 +38,6 @@ import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Package.NameConflictException; 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.RuleClassType; import com.google.devtools.build.lib.packages.RuleFactory.InvalidRuleException; @@ -244,18 +243,17 @@ private Object createRuleLegacy(StarlarkThread thread, Dict kwar String ruleClassName = getRuleClassName(); try { RuleClass ruleClass = builder.build(ruleClassName, ruleClassName); - PackageContext context = PackageFactory.getContext(thread); - Package.Builder packageBuilder = context.getBuilder(); + Package.Builder pkgBuilder = PackageFactory.getContext(thread); // TODO(adonovan): is this cast safe? Check. String name = (String) kwargs.get("name"); if (name == null) { throw Starlark.errorf("argument 'name' is required"); } - WorkspaceFactoryHelper.addMainRepoEntry(packageBuilder, name); - WorkspaceFactoryHelper.addRepoMappings(packageBuilder, kwargs, name); + WorkspaceFactoryHelper.addMainRepoEntry(pkgBuilder, name); + WorkspaceFactoryHelper.addRepoMappings(pkgBuilder, kwargs, name); return WorkspaceFactoryHelper.createAndAddRepositoryRule( - context.getBuilder(), + pkgBuilder, ruleClass, /* bindRuleClass= */ null, WorkspaceFactoryHelper.getFinalKwargs(kwargs), diff --git a/src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java b/src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java index 965f22e8b66ec2..7a6b2489400b73 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java +++ b/src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java @@ -18,7 +18,6 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.packages.License.DistributionType; -import com.google.devtools.build.lib.packages.PackageFactory.PackageContext; import com.google.devtools.build.lib.packages.Type.ConversionException; import com.google.devtools.build.lib.server.FailureDetails.PackageLoading.Code; import java.util.List; @@ -77,23 +76,21 @@ public NoneType environmentGroup( StarlarkThread thread) throws EvalException { BazelStarlarkContext.checkLoadingPhase(thread, "environment_group"); - PackageContext context = PackageFactory.getContext(thread); + Package.Builder pkgBuilder = PackageFactory.getContext(thread); List