package src_test import ( "fmt" ) func (c *cfg) f1_ok() { c.log.Debug(logs.MSG) //acceptable } type Logger interface { Debug(msg string) Info(msg string) Warn(msg string) Error(msg string) Abyr(msg string) } type RealLogger struct{} func (l RealLogger) Debug(msg string) { } func (l RealLogger) Info(msg string) { } func (l RealLogger) Warn(msg string) { } func (l RealLogger) Error(msg string) { } func (l RealLogger) Abyr(msg string) { } type RealLogger struct{} func (l RealLogger) Info(msg string) { fmt.Println(msg) } var logs = struct { MSG string }{ MSG: "some message", } type cfg struct { log Logger }