summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Schroeder <schroederc@google.com>2024-03-18 13:22:00 -0600
committerGitHub <noreply@github.com>2024-03-18 19:22:00 +0000
commitc067658f122ed8a32c4aaed7e806eaacb7caf8ec (patch)
tree33c38194a3561b9d5d7e15e7abad7be90417154a
parentc1bb18683d69a7fd3f0be06f24beba324f2cb9f2 (diff)
downloadkythe-c067658f122ed8a32c4aaed7e806eaacb7caf8ec.tar.gz
fix(go_indexer): only handle top-level flags (#6063)
-rw-r--r--kythe/go/indexer/emit.go5
-rw-r--r--kythe/go/indexer/testdata/flags.go5
2 files changed, 10 insertions, 0 deletions
diff --git a/kythe/go/indexer/emit.go b/kythe/go/indexer/emit.go
index dfffe53ce..d6d58f507 100644
--- a/kythe/go/indexer/emit.go
+++ b/kythe/go/indexer/emit.go
@@ -1126,6 +1126,11 @@ func (e *emitter) flagConstructor(f *types.Func) *gopb.FlagConstructor {
if pkg == nil {
return nil
}
+ sig, ok := f.Type().(*types.Signature)
+ if !ok || sig.Recv() != nil {
+ // We only handle top-level flags
+ return nil
+ }
return e.flagConstructors[pkg.Path()][f.Name()]
}
diff --git a/kythe/go/indexer/testdata/flags.go b/kythe/go/indexer/testdata/flags.go
index d4eb6102c..f9e65cc4d 100644
--- a/kythe/go/indexer/testdata/flags.go
+++ b/kythe/go/indexer/testdata/flags.go
@@ -72,3 +72,8 @@ func main() {
fmt.Println(flag.Args(), f)
}
+
+func configureFlags(flag *flag.FlagSet) {
+ //- !{ @"\"subflag\"" defines/binding _ }
+ flag.String("subflag", "", "Subflag")
+}