File tree Expand file tree Collapse file tree 1 file changed +6
-5
lines changed
Expand file tree Collapse file tree 1 file changed +6
-5
lines changed Original file line number Diff line number Diff line change @@ -117,8 +117,9 @@ namespace ModuleRefs
117117
118118/-- Adds `ref` to the `RefInfo` corresponding to `ref.ident` in `self`. See `RefInfo.addRef`. -/
119119def addRef (self : ModuleRefs) (ref : Reference) : ModuleRefs :=
120- let refInfo := self.getD ref.ident RefInfo.empty
121- self.insert ref.ident (refInfo.addRef ref)
120+ self.alter ref.ident fun
121+ | some refInfo => some <| refInfo.addRef ref
122+ | none => some <| RefInfo.empty.addRef ref
122123
123124/-- Converts `refs` to a JSON-serializable `Lsp.ModuleRefs` and collects all decls. -/
124125def toLspModuleRefs (refs : ModuleRefs) : BaseIO (Lsp.ModuleRefs × Decls) := StateT.run (s := ∅) do
@@ -374,9 +375,9 @@ def dedupReferences (refs : Array Reference) (allowSimultaneousBinderUse := fals
374375 for ref in refs do
375376 let isBinder := if allowSimultaneousBinderUse then some ref.isBinder else none
376377 let key := (ref.ident, isBinder, ref.range)
377- refsByIdAndRange := match refsByIdAndRange[ key]? with
378- | some ref' => refsByIdAndRange.insert key { ref' with aliases := ref'.aliases ++ ref.aliases }
379- | none => refsByIdAndRange.insert key ref
378+ refsByIdAndRange := refsByIdAndRange.alter key fun
379+ | some ref' => some { ref' with aliases := ref'.aliases ++ ref.aliases }
380+ | none => some ref
380381
381382 let dedupedRefs := refsByIdAndRange.fold (init := #[]) fun refs _ ref => refs.push ref
382383 return dedupedRefs.qsort (·.range < ·.range)
You can’t perform that action at this time.
0 commit comments