@@ -491,7 +491,9 @@ func (f *file) irToSymbols(irSymbol ir.Symbol) ([]*symbol, []*symbol) {
491491typ := & symbol {
492492ir : irSymbol ,
493493file : f ,
494- span : irSymbol .AsMember ().TypeAST ().Span (),
494+ // We remove prefixes from the type, since we want to exclude the prefix from the
495+ // symbol, e.g. repeated string values = 1;, we want to capture the symbol for "string".
496+ span : irSymbol .AsMember ().TypeAST ().RemovePrefixes ().Span (),
495497}
496498kind , needsResolution := getKindForMember (irSymbol .AsMember ())
497499typ .kind = kind
@@ -600,9 +602,12 @@ func (f *file) irToSymbols(irSymbol ir.Symbol) ([]*symbol, []*symbol) {
600602// getKindForMember takes a [ir.Member] and returns the symbol kind and whether or not the
601603// symbol is currently resolved.
602604func getKindForMember (member ir.Member ) (kind , bool ) {
603- if member .TypeAST ().AsPath ().AsPredeclared () != predeclared .Unknown {
605+ // We remove prefixes to check for a predeclared type, e.g. repeated string values = 1;,
606+ // "repeated string" would not be captured as a predeclared type. The corresponding symbol
607+ // also excludes prefixes.
608+ if member .TypeAST ().RemovePrefixes ().AsPath ().AsPredeclared () != predeclared .Unknown {
604609return & builtin {
605- predeclared : member .TypeAST ().AsPath ().AsPredeclared (),
610+ predeclared : member .TypeAST ().RemovePrefixes (). AsPath ().AsPredeclared (),
606611}, false
607612}
608613return & reference {
0 commit comments