package src_test import ( "fmt" ) func (c *cfg) info_ok() { c.log.Info(logs.MSG) //acceptable } func (c *cfg) debug_ok() { c.log.Debug(logs.MSG) //acceptable } func (c *cfg) error_ok() { c.log.Error(logs.MSG) //acceptable } func (c *cfg) custom_ok_const() { c.log.Abyr(logs.MSG) //acceptable } func (c *cfg) custom_ok_lit() { c.log.Abyr("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 }