must use set_state rather than backtrack in Typecore.type_cases
parent
479ec01e28
commit
9e181ca8f4
|
@ -4739,7 +4739,7 @@ and type_cases
|
||||||
let cases =
|
let cases =
|
||||||
let may_backtrack = does_contain_gadt && not !Clflags.principal in
|
let may_backtrack = does_contain_gadt && not !Clflags.principal in
|
||||||
if not may_backtrack then mk_cases false else
|
if not may_backtrack then mk_cases false else
|
||||||
let snap = Btype.snapshot () in
|
let state = save_state (ref env) in
|
||||||
let has_equation_escape err =
|
let has_equation_escape err =
|
||||||
match trace_of_error err with
|
match trace_of_error err with
|
||||||
Some tr ->
|
Some tr ->
|
||||||
|
@ -4749,7 +4749,7 @@ and type_cases
|
||||||
in
|
in
|
||||||
try mk_cases false
|
try mk_cases false
|
||||||
with Error(_,_,err) when has_equation_escape err ->
|
with Error(_,_,err) when has_equation_escape err ->
|
||||||
Btype.backtrack snap;
|
set_state state (ref env);
|
||||||
let cases = mk_cases true in
|
let cases = mk_cases true in
|
||||||
let msg =
|
let msg =
|
||||||
Format.asprintf
|
Format.asprintf
|
||||||
|
|
Loading…
Reference in New Issue