Report panic context for SingletonContext.VisitAllModules
If a panic occurs in SingletonContext.VisitAllModules report the
module that was being visited.
Change-Id: Ia7fc07e2e33e9e3c0297903d3b06b7efb33f0105
diff --git a/singleton_ctx.go b/singleton_ctx.go
index 333811d..1b044fa 100644
--- a/singleton_ctx.go
+++ b/singleton_ctx.go
@@ -212,7 +212,18 @@
}
func (s *singletonContext) VisitAllModules(visit func(Module)) {
- s.context.VisitAllModules(visit)
+ var visitingModule Module
+ defer func() {
+ if r := recover(); r != nil {
+ panic(newPanicErrorf(r, "VisitAllModules(%s) for module %s",
+ funcName(visit), visitingModule))
+ }
+ }()
+
+ s.context.VisitAllModules(func(m Module) {
+ visitingModule = m
+ visit(m)
+ })
}
func (s *singletonContext) VisitAllModulesIf(pred func(Module) bool,