aboutsummaryrefslogtreecommitdiff
path: root/pretyping/pretyping.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2018-09-23 19:24:26 +0200
committerPierre-Marie Pédrot2018-09-26 13:53:40 +0200
commitd4f034dceb2742459d4cce0d1d74ae9d59106a4d (patch)
tree9b41c54b4929aec901cc660ed89d77a7781a0863 /pretyping/pretyping.ml
parent8292c485bde7911bf8a4d626faf9292ba0016e97 (diff)
Making cases.ml use state-passing instead of the evdref idiom.
Diffstat (limited to 'pretyping/pretyping.ml')
-rw-r--r--pretyping/pretyping.ml10
1 files changed, 9 insertions, 1 deletions
diff --git a/pretyping/pretyping.ml b/pretyping/pretyping.ml
index e3aa90fbcf..8774cdf080 100644
--- a/pretyping/pretyping.ml
+++ b/pretyping/pretyping.ml
@@ -913,7 +913,15 @@ let rec pretype k0 resolve_tc (tycon : type_constraint) (env : GlobEnv.t) evdref
inh_conv_coerce_to_tycon ?loc env evdref cj tycon
| GCases (sty,po,tml,eqns) ->
- Cases.compile_cases ?loc sty (pretype,evdref) tycon env (po,tml,eqns)
+ let pretype tycon env sigma c =
+ let evdref = ref sigma in
+ let t = pretype tycon env evdref c in
+ !evdref, t
+ in
+ let sigma = !evdref in
+ let sigma, j = Cases.compile_cases ?loc sty (pretype, sigma) tycon env (po,tml,eqns) in
+ let () = evdref := sigma in
+ j
| GCast (c,k) ->
let cj =