import (
"flag"
"fmt"
+ "internal/bisect"
"internal/buildcfg"
"io"
"log"
switch ptr.(type) {
default:
- panic(fmt.Sprintf("debug.%s has invalid type %v (must be int or string)", f.Name, f.Type))
- case *int, *string:
+ panic(fmt.Sprintf("debug.%s has invalid type %v (must be int, string, or *bisect.Matcher)", f.Name, f.Type))
+ case *int, *string, **bisect.Matcher:
// ok
}
flag.tab[name] = debugField{name, help, concurrent == "ok", ptr}
log.Fatalf("invalid debug value %v", name)
}
*vp = val
+ case **bisect.Matcher:
+ var err error
+ *vp, err = bisect.New(valstring)
+ if err != nil {
+ log.Fatalf("debug flag %v: %v", name, err)
+ }
default:
panic("bad debugtab type")
}