39 lines
809 B
Go
39 lines
809 B
Go
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
|