@@ -7,7 +7,7 @@ use std::fmt::Debug;
77use std:: slice:: SliceIndex ;
88use std:: sync:: Arc ;
99
10- use super :: semantics:: LocalExprs ;
10+ use super :: semantics:: { EvalMode , LocalExprs } ;
1111use crate :: core:: semantics:: { self , ArcValue , Elim , Head , LazyValue , Value } ;
1212use crate :: core:: { Const , Item , Module , Prim , Term , UIntStyle } ;
1313use crate :: env:: { EnvLen , SharedEnv , UniqueEnv } ;
@@ -284,7 +284,7 @@ impl<'arena, 'data> Context<'arena, 'data> {
284284
285285 fn eval_env ( & mut self ) -> semantics:: EvalEnv < ' arena , ' _ > {
286286 let elim_env = semantics:: ElimEnv :: new ( & self . item_exprs , [ ] [ ..] . into ( ) ) ;
287- semantics:: EvalEnv :: new ( elim_env, & mut self . local_exprs )
287+ semantics:: EvalEnv :: new ( elim_env, & mut self . local_exprs ) . with_mode ( EvalMode :: Strict )
288288 }
289289
290290 fn elim_env ( & self ) -> semantics:: ElimEnv < ' arena , ' _ > {
@@ -296,7 +296,7 @@ impl<'arena, 'data> Context<'arena, 'data> {
296296 for item in module. items {
297297 match item {
298298 Item :: Def { expr, .. } => {
299- let expr = self . eval_env ( ) . delay ( expr) ;
299+ let expr = self . eval_env ( ) . delay_or_eval ( expr) ;
300300 self . item_exprs . push ( expr) ;
301301 }
302302 }
0 commit comments