From a681e57e3c76dff2fe710ce533179ea659d8de0b Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Tue, 24 Dec 2013 18:20:22 +0100 Subject: STM: capture type checking error (Closes: 3195) Also, the future chain that reaches the kernel is greedy. If the user executes step by step, then the error is raised immediately. --- kernel/term_typing.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kernel/term_typing.ml') diff --git a/kernel/term_typing.ml b/kernel/term_typing.ml index 554ed9f9b8..57d4a287b0 100644 --- a/kernel/term_typing.ml +++ b/kernel/term_typing.ml @@ -163,7 +163,7 @@ let build_constant_declaration kn env (def,typ,cst,inline_code,ctx) = check declared inferred; x | OpaqueDef lc -> (* In this case we can postpone the check *) - OpaqueDef (Future.chain ~pure:true lc (fun lc -> + OpaqueDef (Future.chain ~greedy:true ~pure:true lc (fun lc -> let ids_typ = global_vars_set_constant_type env typ in let ids_def = global_vars_set env (Lazyconstr.force_opaque lc) in @@ -198,7 +198,7 @@ let translate_local_def env id centry = let translate_mind env kn mie = Indtypes.check_inductive env kn mie let handle_side_effects env ce = { ce with - const_entry_body = Future.chain ~pure:true + const_entry_body = Future.chain ~greedy:true ~pure:true ce.const_entry_body (fun (body, side_eff) -> handle_side_effects env body side_eff, Declareops.no_seff); } -- cgit v1.2.3