aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user-contrib/Ltac2/tac2core.ml15
1 files changed, 8 insertions, 7 deletions
diff --git a/user-contrib/Ltac2/tac2core.ml b/user-contrib/Ltac2/tac2core.ml
index 4f1cee4211..c6c8aef291 100644
--- a/user-contrib/Ltac2/tac2core.ml
+++ b/user-contrib/Ltac2/tac2core.ml
@@ -1409,13 +1409,14 @@ let () =
let ist = Tac2interp.get_env @@ GlobEnv.lfun env in
let c = Id.Map.find id ist.env_ist in
let c = Value.to_constr c in
- let sigma, concl = match tycon with
- | Some ty -> sigma, ty
- | None -> GlobEnv.new_type_evar env sigma ~src:(loc,Evar_kinds.InternalHole)
- in
- let sigma = Typing.check (GlobEnv.renamed_env env) sigma c concl in
- let j = { Environ.uj_val = c; Environ.uj_type = concl } in
- (j, sigma)
+ let t = Retyping.get_type_of (GlobEnv.renamed_env env) sigma c in
+ match tycon with
+ | None ->
+ { Environ.uj_val = c; Environ.uj_type = t }, sigma
+ | Some ty ->
+ let sigma = Evarconv.unify_leq_delay (GlobEnv.renamed_env env) sigma t ty in
+ let j = { Environ.uj_val = c; Environ.uj_type = ty } in
+ j, sigma
in
GlobEnv.register_constr_interp0 wit_ltac2_quotation interp