File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -161,37 +161,40 @@ func (c *Collector) exportSymbol(repo *uniast.Repository, symbol *DocumentSymbol
161161 return id , nil
162162 }
163163
164- name := symbol .Name
165- if name == "" {
166- if refName == "" {
167- e = fmt .Errorf ("both symbol %v name and refname is empty" , symbol )
168- return
169- }
170- // NOTICE: use refName as id when symbol name is missing
171- name = refName
172- }
164+ // Check NeedStdSymbol
173165 file := symbol .Location .URI .File ()
174166 mod , path , err := c .spec .NameSpace (file )
175167 if err != nil {
176168 e = err
177169 return
178170 }
179-
180171 if ! c .NeedStdSymbol && mod == "" {
181172 e = ErrStdSymbol
182173 return
183174 }
184175
185- tmp := uniast .NewIdentity (mod , path , name )
186- id = & tmp
187- visited [symbol ] = id
188-
189- // Load eternal symbol on demands
176+ // Load external symbol on demands
190177 if ! c .LoadExternalSymbol && (! c .internal (symbol .Location ) || symbol .Kind == SKUnknown ) {
191178 e = ErrExternalSymbol
192179 return
193180 }
194181
182+ // Construct Identity and save to visited
183+ name := symbol .Name
184+ if name == "" {
185+ if refName == "" {
186+ e = fmt .Errorf ("both symbol %v name and refname is empty" , symbol )
187+ return
188+ }
189+ // NOTICE: use refName as id when symbol name is missing
190+ name = refName
191+ }
192+ tmp := uniast .NewIdentity (mod , path , name )
193+ id = & tmp
194+ // Save to visited ONLY WHEN no errors occur
195+ visited [symbol ] = id
196+
197+ // Walk down from repo struct
195198 if repo .Modules [mod ] == nil {
196199 repo .Modules [mod ] = newModule (mod , "" , c .Language )
197200 }
You can’t perform that action at this time.
0 commit comments