Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#### :bug: Bug fix

- Fix error message that falsely suggested using coercion when it wouldn't work. https://github.com/rescript-lang/rescript/pull/7721
- Fix hang in `rescript-editor-analysis.exe codeAction` that sometimes prevented ReScript files from being saved in VS Code. https://github.com/rescript-lang/rescript/pull/7731

# 12.0.0-beta.3

Expand Down
8 changes: 6 additions & 2 deletions analysis/src/TypeUtils.ml
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ let rec digToRelevantTemplateNameType ~env ~package ?(suffix = "")
| _ -> (t, suffix, env))
| _ -> (t, suffix, env)

let rec resolveTypeForPipeCompletion ~env ~package ~lhsLoc ~full
let rec resolveTypeForPipeCompletion ~env ~package ~lhsLoc ~full ?(depth = 0)
(t : Types.type_expr) =
(* If the type we're completing on is a type parameter, we won't be able to
do completion unless we know what that type parameter is compiled as.
Expand All @@ -540,7 +540,11 @@ let rec resolveTypeForPipeCompletion ~env ~package ~lhsLoc ~full
in
match typFromLoc with
| Some typFromLoc ->
typFromLoc |> resolveTypeForPipeCompletion ~lhsLoc ~env ~package ~full
if depth > 10 then (env, typFromLoc)
else
typFromLoc
|> resolveTypeForPipeCompletion ~lhsLoc ~env ~package ~full
~depth:(depth + 1)
| None ->
let rec digToRelevantType ~env ~package (t : Types.type_expr) =
match t.desc with
Expand Down