@@ -491,7 +491,9 @@ func (f *file) irToSymbols(irSymbol ir.Symbol) ([]*symbol, []*symbol) {
491491 typ := & symbol {
492492 ir : irSymbol ,
493493 file : 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 }
496498 kind , needsResolution := getKindForMember (irSymbol .AsMember ())
497499 typ .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 {
604609 return & builtin {
605- predeclared : member .TypeAST ().AsPath ().AsPredeclared (),
610+ predeclared : member .TypeAST ().RemovePrefixes (). AsPath ().AsPredeclared (),
606611 }, false
607612 }
608613 return & reference {
0 commit comments