Always update deps after bottom-up mutators run.
This fixes a bug where a split module could be reached by subsequent
mutator passes, but it is no longer in module group's list of modules.
Change-Id: I74c3d849ed2614dcdb6f54a6760122b933bb84c2
diff --git a/context.go b/context.go
index b98ffbe..811ce76 100644
--- a/context.go
+++ b/context.go
@@ -1377,11 +1377,13 @@
func (c *Context) runBottomUpMutator(config interface{},
name string, mutator BottomUpMutator) (errs []error) {
- dependenciesModified := false
-
for _, module := range c.modulesSorted {
newModules := make([]*moduleInfo, 0, 1)
+ if module.splitModules != nil {
+ panic("split module found in sorted module list")
+ }
+
mctx := &mutatorContext{
baseModuleContext: baseModuleContext{
context: c,
@@ -1405,10 +1407,6 @@
}
}
- if mctx.dependenciesModified {
- dependenciesModified = true
- }
-
if module.splitModules != nil {
newModules = append(newModules, module.splitModules...)
} else {
@@ -1418,11 +1416,9 @@
module.group.modules = spliceModules(module.group.modules, module, newModules)
}
- if dependenciesModified {
- errs = c.updateDependencies()
- if len(errs) > 0 {
- return errs
- }
+ errs = c.updateDependencies()
+ if len(errs) > 0 {
+ return errs
}
return errs