From 42d93fecdafde8271a500cb38c16c86b68277a71 Mon Sep 17 00:00:00 2001 From: Gabriel Nordeborn Date: Mon, 27 Feb 2023 20:47:08 +0100 Subject: [PATCH] prevent broken locs from being added to document symbols --- analysis/src/DocumentSymbol.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/analysis/src/DocumentSymbol.ml b/analysis/src/DocumentSymbol.ml index bd77bc19e..356541c5f 100644 --- a/analysis/src/DocumentSymbol.ml +++ b/analysis/src/DocumentSymbol.ml @@ -27,11 +27,16 @@ let kindNumber = function let command ~path = let symbols = ref [] in let addSymbol name loc kind = - let range = Utils.cmtLocToRange loc in - let symbol : Protocol.documentSymbolItem = - {name; range; kind = kindNumber kind; children = []} - in - symbols := symbol :: !symbols + if + (not loc.Location.loc_ghost) + && loc.loc_start.pos_cnum >= 0 + && loc.loc_end.pos_cnum >= 0 + then + let range = Utils.cmtLocToRange loc in + let symbol : Protocol.documentSymbolItem = + {name; range; kind = kindNumber kind; children = []} + in + symbols := symbol :: !symbols in let rec exprKind (exp : Parsetree.expression) = match exp.pexp_desc with