package src_test func (c *cfg) info_n() { c.log.Info("logs.MSG") //unacceptable } func (c *cfg) info_n() { log.Info("logs.MSG") //unacceptable } func (c *cfg) debug_n() { c.log.Debug("logs.MSG") //unacceptable } func (c *cfg) error_n() { c.log.Error("logs.MSG") //unacceptable } 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) { } var logs = struct { MSG string }{ MSG: "some message", } type cfg struct { log Logger }