From 1575224a6219d0ed19900febadf843f9bcc081d2 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Wed, 7 Dec 2022 16:30:38 +0100 Subject: [PATCH 1/6] Fix issue with references to elements defined in an interface file Fixes https://github.com/rescript-lang/rescript-vscode/issues/645 --- CHANGELOG.md | 2 ++ analysis/src/Commands.ml | 8 +++++--- analysis/tests/src/References.res | 11 +++++++++++ analysis/tests/src/expected/References.res.txt | 6 ++++++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3db548572..70e081470 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,8 @@ - Fix issue with completing `foo. x` where `x` should not be part of the completion https://github.com/rescript-lang/rescript-vscode/pull/644 +- Fix issue with references to elements defined in an interface file https://github.com/rescript-lang/rescript-vscode/issues/645 + ## v1.8.2 #### :rocket: New Feature diff --git a/analysis/src/Commands.ml b/analysis/src/Commands.ml index 756c6fb43..7baa0892e 100644 --- a/analysis/src/Commands.ml +++ b/analysis/src/Commands.ml @@ -172,9 +172,11 @@ let references ~path ~pos ~debug = | Some loc -> loc | None -> Uri.toTopLevelLoc uri2 in - Protocol.stringifyLocation - {uri = Uri.toString uri2; range = Utils.cmtLocToRange loc} - :: acc) + if loc.loc_ghost then acc + else + Protocol.stringifyLocation + {uri = Uri.toString uri2; range = Utils.cmtLocToRange loc} + :: acc) []) in print_endline diff --git a/analysis/tests/src/References.res b/analysis/tests/src/References.res index 6ef69c6ab..959a7b235 100644 --- a/analysis/tests/src/References.res +++ b/analysis/tests/src/References.res @@ -9,3 +9,14 @@ let c = x let foo = (~xx) => xx + 1 // ^ref + +module M: { + let aa: int +} = { + let aa = 10 +} + +let bb = M.aa +let cc = bb +let dd = M.aa +// ^ref \ No newline at end of file diff --git a/analysis/tests/src/expected/References.res.txt b/analysis/tests/src/expected/References.res.txt index 64c02fb92..694e5655e 100644 --- a/analysis/tests/src/expected/References.res.txt +++ b/analysis/tests/src/expected/References.res.txt @@ -14,3 +14,9 @@ References src/References.res 9:19 {"uri": "References.res", "range": {"start": {"line": 9, "character": 19}, "end": {"line": 9, "character": 21}}} ] +References src/References.res 20:12 +[ +{"uri": "References.res", "range": {"start": {"line": 18, "character": 11}, "end": {"line": 18, "character": 13}}}, +{"uri": "References.res", "range": {"start": {"line": 20, "character": 11}, "end": {"line": 20, "character": 13}}} +] + From a145f5979294c2eff755d1b83ca139f7ee024bd8 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Mon, 12 Dec 2022 19:45:46 -0300 Subject: [PATCH 2/6] testing references with interface --- analysis/tests/src/References.res | 3 ++- analysis/tests/src/inner/ComponentInner.res | 2 ++ analysis/tests/src/inner/ComponentInner.resi | 2 ++ analysis/tests/src/inner/MoreInnerReferences.res | 2 ++ analysis/tests/src/inner/ReferencesInner.res | 2 ++ analysis/tests/src/inner/ReferencesInner.resi | 2 ++ 6 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 analysis/tests/src/inner/ComponentInner.res create mode 100644 analysis/tests/src/inner/ComponentInner.resi create mode 100644 analysis/tests/src/inner/MoreInnerReferences.res create mode 100644 analysis/tests/src/inner/ReferencesInner.res create mode 100644 analysis/tests/src/inner/ReferencesInner.resi diff --git a/analysis/tests/src/References.res b/analysis/tests/src/References.res index 959a7b235..b3a20321b 100644 --- a/analysis/tests/src/References.res +++ b/analysis/tests/src/References.res @@ -19,4 +19,5 @@ module M: { let bb = M.aa let cc = bb let dd = M.aa -// ^ref \ No newline at end of file +// ^ref +let _ = \ No newline at end of file diff --git a/analysis/tests/src/inner/ComponentInner.res b/analysis/tests/src/inner/ComponentInner.res new file mode 100644 index 000000000..aa3f50cb0 --- /dev/null +++ b/analysis/tests/src/inner/ComponentInner.res @@ -0,0 +1,2 @@ +@react.component +let make = () => React.null diff --git a/analysis/tests/src/inner/ComponentInner.resi b/analysis/tests/src/inner/ComponentInner.resi new file mode 100644 index 000000000..1ca44ce26 --- /dev/null +++ b/analysis/tests/src/inner/ComponentInner.resi @@ -0,0 +1,2 @@ +@react.component +let make: unit => React.element diff --git a/analysis/tests/src/inner/MoreInnerReferences.res b/analysis/tests/src/inner/MoreInnerReferences.res new file mode 100644 index 000000000..9ebb2c53f --- /dev/null +++ b/analysis/tests/src/inner/MoreInnerReferences.res @@ -0,0 +1,2 @@ +let _ = +// ^ref \ No newline at end of file diff --git a/analysis/tests/src/inner/ReferencesInner.res b/analysis/tests/src/inner/ReferencesInner.res new file mode 100644 index 000000000..261d0b396 --- /dev/null +++ b/analysis/tests/src/inner/ReferencesInner.res @@ -0,0 +1,2 @@ +@react.component +let make = () => \ No newline at end of file diff --git a/analysis/tests/src/inner/ReferencesInner.resi b/analysis/tests/src/inner/ReferencesInner.resi new file mode 100644 index 000000000..1ca44ce26 --- /dev/null +++ b/analysis/tests/src/inner/ReferencesInner.resi @@ -0,0 +1,2 @@ +@react.component +let make: unit => React.element From eaa6b6a8d11f72f8f721b70515f65ed76079f266 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Mon, 12 Dec 2022 19:53:52 -0300 Subject: [PATCH 3/6] simplify testing references with interface --- analysis/tests/src/inner/MoreInnerReferences.res | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 analysis/tests/src/inner/MoreInnerReferences.res diff --git a/analysis/tests/src/inner/MoreInnerReferences.res b/analysis/tests/src/inner/MoreInnerReferences.res deleted file mode 100644 index 9ebb2c53f..000000000 --- a/analysis/tests/src/inner/MoreInnerReferences.res +++ /dev/null @@ -1,2 +0,0 @@ -let _ = -// ^ref \ No newline at end of file From b4788a4129f04ba0c7654fe49d41aeaad64c32dc Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Tue, 13 Dec 2022 14:53:10 -0300 Subject: [PATCH 4/6] fix conflict --- analysis/tests/src/References.res | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/analysis/tests/src/References.res b/analysis/tests/src/References.res index afec77db2..b6127999e 100644 --- a/analysis/tests/src/References.res +++ b/analysis/tests/src/References.res @@ -9,7 +9,6 @@ let c = x let foo = (~xx) => xx + 1 // ^ref -<<<<<<< HEAD module M: { let aa: int @@ -21,18 +20,5 @@ let bb = M.aa let cc = bb let dd = M.aa // ^ref -let _ = -||||||| a61cc75 -======= - -module M: { - let aa: int -} = { - let aa = 10 -} -let bb = M.aa -let cc = bb -let dd = M.aa -// ^ref ->>>>>>> master +let _ = From 4c68910a86bb670d0aea898d360639e3c83ff7bf Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Tue, 13 Dec 2022 14:56:24 -0300 Subject: [PATCH 5/6] update changelog --- CHANGELOG.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c5105685..8c07be3c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,11 +37,8 @@ - Fix issue with completing `foo. x` where `x` should not be part of the completion https://github.com/rescript-lang/rescript-vscode/pull/644 -<<<<<<< HEAD - Fix issue with references to elements defined in an interface file https://github.com/rescript-lang/rescript-vscode/issues/645 -||||||| a61cc75 -======= - Fix issue where code analysis would not track types in inner modules across implementations and interfaces https://github.com/rescript-association/reanalyze/issues/186 - Fix issue with references to elements defined in an interface file https://github.com/rescript-lang/rescript-vscode/pull/646 From bba1b076f0c0990c146b36ddbdd9b242e762a8d6 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Tue, 13 Dec 2022 14:57:05 -0300 Subject: [PATCH 6/6] update changelog --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c07be3c5..918829d73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,7 +43,6 @@ - Fix issue with references to elements defined in an interface file https://github.com/rescript-lang/rescript-vscode/pull/646 ->>>>>>> master ## v1.8.2 #### :rocket: New Feature