blob: 6a040921f472a4927651776866fd89156d7dcfa1 [file] [log] [blame] [edit]
package main
// Regression test for https://golang.org/issue/23925
type stringFlagImpl string
func (*stringFlagImpl) Set(s string) error { return nil }
type boolFlagImpl bool
func (*boolFlagImpl) Set(s string) error { return nil }
func (*boolFlagImpl) extra() {}
// A copy of flag.boolFlag interface, without a dependency.
// Must appear first, so that it becomes the owner of the Set methods.
type boolFlag interface {
flagValue
extra()
}
// A copy of flag.Value, without adding a dependency.
type flagValue interface {
Set(string) error
}
func main() {
var x flagValue = new(stringFlagImpl)
x.Set("")
var y boolFlag = new(boolFlagImpl)
y.Set("")
}
// WANT:
// Dynamic calls
// main --> (*boolFlagImpl).Set
// main --> (*boolFlagImpl).Set
// main --> (*stringFlagImpl).Set