@@ -379,7 +379,10 @@ let rec pathFromVisibility visibilityPath current =
379379let pathFromVisibility visibilityPath tipName =
380380 pathFromVisibility visibilityPath (Tip tipName)
381381
382- type references = {uri : Uri2 .t ; loc : Location .t }
382+ type references = {
383+ uri : Uri2 .t ;
384+ locOpt : Location .t option ; (* None: reference to a toplevel module *)
385+ }
383386
384387let forLocalStamp ~full :{file; extra; package} stamp tip =
385388 let env = QueryEnv. fromFile file in
@@ -419,7 +422,9 @@ let forLocalStamp ~full:{file; extra; package} stamp tip =
419422 with
420423 | None -> []
421424 | Some locs ->
422- locs |> List. map (fun loc -> {uri = file.uri; loc})))
425+ locs
426+ |> List. map (fun loc -> {uri = file.uri; locOpt = Some loc})
427+ ))
423428 (* if this file has a corresponding interface or implementation file
424429 also find the references in that file *)
425430 in
@@ -450,8 +455,9 @@ let forLocalStamp ~full:{file; extra; package} stamp tip =
450455 if p = path && t = tip then Some locs
451456 else None )
452457 in
453- locs |> List. map (fun loc -> {uri = file.uri; loc})
454- )))
458+ locs
459+ |> List. map (fun loc ->
460+ {uri = file.uri; locOpt = Some loc}))))
455461 |> List. concat
456462 in
457463 alternativeReferences @ externals)
@@ -460,7 +466,7 @@ let forLocalStamp ~full:{file; extra; package} stamp tip =
460466 [] )
461467 in
462468 List. append
463- (locs |> List. map (fun loc -> {uri = file.uri; loc}))
469+ (locs |> List. map (fun loc -> {uri = file.uri; locOpt = Some loc}))
464470 externals)
465471
466472let allReferencesForLocItem ~full :({file; package} as full ) locItem =
@@ -480,21 +486,15 @@ let allReferencesForLocItem ~full:({file; package} as full) locItem =
480486 |> List. map (fun loc ->
481487 {
482488 uri = Uri2. fromPath loc.Location. loc_start.pos_fname;
483- loc;
489+ locOpt = Some loc;
484490 }))
485491 |> List. flatten
486492 in
487493 let targetModuleReferences =
488494 match Hashtbl. find_opt package.pathsForModule moduleName with
489495 | None -> []
490496 | Some paths ->
491- let moduleSrcToRef src =
492- {
493- uri = Uri2. fromPath src;
494- (* XXX TODO use different runtime representation *)
495- loc = Utils. topLoc src;
496- }
497- in
497+ let moduleSrcToRef src = {uri = Uri2. fromPath src; locOpt = None } in
498498 getSrc paths |> List. map moduleSrcToRef
499499 in
500500 List. append targetModuleReferences otherModulesReferences
0 commit comments