@@ -920,6 +920,16 @@ let tc_decl' env0 se: list sigelt & list sigelt & Env.env =
920
920
[ se ], [], env0 )
921
921
922
922
923
+ let snapshot_context env msg = BU. atomically ( fun () ->
924
+ TypeChecker.Env. snapshot env msg )
925
+
926
+ let rollback_context solver msg depth : env = BU. atomically ( fun () ->
927
+ let env = TypeChecker.Env. rollback solver msg depth in
928
+ env )
929
+
930
+ let push_context env msg = snd ( snapshot_context env msg )
931
+ let pop_context env msg = rollback_context env . solver msg None
932
+
923
933
(* [tc_decl env se] typechecks [se] in environment [env] and returns
924
934
* the list of typechecked sig_elts, and a list of new sig_elts elaborated
925
935
* during typechecking but not yet typechecked. This may also be called
@@ -1013,6 +1023,7 @@ let add_sigelt_to_env (env:Env.env) (se:sigelt) (from_cache:bool) : Env.env =
1013
1023
env
1014
1024
1015
1025
| Sig_pragma ( Check t0 ) ->
1026
+ let env = push_context env " #check" in
1016
1027
let tx = UF. new_transaction () in
1017
1028
let t , lc , g = tc_term { env with instantiate_imp = false } t0 in
1018
1029
let c , g' = lcomp_comp lc in
@@ -1028,7 +1039,7 @@ let add_sigelt_to_env (env:Env.env) (se:sigelt) (from_cache:bool) : Env.env =
1028
1039
empty
1029
1040
]
1030
1041
);
1031
- UF. rollback tx ;
1042
+ let env = pop_context env " #check " in
1032
1043
env
1033
1044
1034
1045
| Sig_new_effect ne ->
@@ -1176,16 +1187,6 @@ let tc_decls env ses =
1176
1187
let _ =
1177
1188
tc_decls_knot := Some tc_decls
1178
1189
1179
- let snapshot_context env msg = BU. atomically ( fun () ->
1180
- TypeChecker.Env. snapshot env msg )
1181
-
1182
- let rollback_context solver msg depth : env = BU. atomically ( fun () ->
1183
- let env = TypeChecker.Env. rollback solver msg depth in
1184
- env )
1185
-
1186
- let push_context env msg = snd ( snapshot_context env msg )
1187
- let pop_context env msg = rollback_context env . solver msg None
1188
-
1189
1190
let tc_partial_modul env modul =
1190
1191
let verify = Options. should_verify ( string_of_lid modul . name ) in
1191
1192
let action = if verify then " verifying" else " lax-checking" in
0 commit comments