Merge "Separate the collation of mutators from registration"

This commit is contained in:
Paul Duffin
2021-03-08 21:44:10 +00:00
committed by Gerrit Code Review
3 changed files with 13 additions and 4 deletions

View File

@@ -69,7 +69,14 @@ func RegisterMutatorsForBazelConversion(ctx *Context, preArchMutators, depsMutat
mctx.mutators.registerAll(ctx) mctx.mutators.registerAll(ctx)
} }
func registerMutators(ctx *Context, preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc) { // collateGloballyRegisteredMutators constructs the list of mutators that have been registered
// with the InitRegistrationContext and will be used at runtime.
func collateGloballyRegisteredMutators() sortableComponents {
return collateRegisteredMutators(preArch, preDeps, postDeps, finalDeps)
}
// collateRegisteredMutators constructs a single list of mutators from the separate lists.
func collateRegisteredMutators(preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc) sortableComponents {
mctx := &registerMutatorsContext{} mctx := &registerMutatorsContext{}
register := func(funcs []RegisterMutatorFunc) { register := func(funcs []RegisterMutatorFunc) {
@@ -89,7 +96,7 @@ func registerMutators(ctx *Context, preArch, preDeps, postDeps, finalDeps []Regi
mctx.finalPhase = true mctx.finalPhase = true
register(finalDeps) register(finalDeps)
mctx.mutators.registerAll(ctx) return mctx.mutators
} }
type registerMutatorsContext struct { type registerMutatorsContext struct {

View File

@@ -188,7 +188,8 @@ func (ctx *Context) Register() {
singletons.registerAll(ctx) singletons.registerAll(ctx)
registerMutators(ctx, preArch, preDeps, postDeps, finalDeps) mutators := collateGloballyRegisteredMutators()
mutators.registerAll(ctx)
ctx.RegisterSingletonType("bazeldeps", SingletonFactoryAdaptor(ctx, BazelSingleton)) ctx.RegisterSingletonType("bazeldeps", SingletonFactoryAdaptor(ctx, BazelSingleton))

View File

@@ -141,7 +141,8 @@ func (ctx *TestContext) DepsBp2BuildMutators(f RegisterMutatorFunc) {
} }
func (ctx *TestContext) Register() { func (ctx *TestContext) Register() {
registerMutators(ctx.Context, ctx.preArch, ctx.preDeps, ctx.postDeps, ctx.finalDeps) mutators := collateRegisteredMutators(ctx.preArch, ctx.preDeps, ctx.postDeps, ctx.finalDeps)
mutators.registerAll(ctx.Context)
ctx.RegisterSingletonType("env", EnvSingleton) ctx.RegisterSingletonType("env", EnvSingleton)
} }