Add OtherModuleName and OtherModuleErrorf to mutators
TopDownMutators can visit dependencies, provide OtherModuleName and
OtherModuleErrorf so they can query and report errors on those
dependencies.
diff --git a/module_ctx.go b/module_ctx.go
index 7af26d2..c23c669 100644
--- a/module_ctx.go
+++ b/module_ctx.go
@@ -344,6 +344,9 @@
type TopDownMutatorContext interface {
baseMutatorContext
+ OtherModuleName(m Module) string
+ OtherModuleErrorf(m Module, fmt string, args ...interface{})
+
VisitDirectDeps(visit func(Module))
VisitDirectDepsIf(pred func(Module) bool, visit func(Module))
VisitDepsDepthFirst(visit func(Module))
@@ -488,6 +491,21 @@
}
}
+func (mctx *mutatorContext) OtherModuleName(logicModule Module) string {
+ module := mctx.context.moduleInfo[logicModule]
+ return module.properties.Name
+}
+
+func (mctx *mutatorContext) OtherModuleErrorf(logicModule Module, format string,
+ args ...interface{}) {
+
+ module := mctx.context.moduleInfo[logicModule]
+ mctx.errs = append(mctx.errs, &Error{
+ Err: fmt.Errorf(format, args...),
+ Pos: module.pos,
+ })
+}
+
func (mctx *mutatorContext) VisitDirectDeps(visit func(Module)) {
mctx.context.visitDirectDeps(mctx.module, visit)
}