@@ -7,7 +7,7 @@ use std::fmt::Debug;
7
7
use std:: slice:: SliceIndex ;
8
8
use std:: sync:: Arc ;
9
9
10
- use super :: semantics:: LocalExprs ;
10
+ use super :: semantics:: { EvalMode , LocalExprs } ;
11
11
use crate :: core:: semantics:: { self , ArcValue , Elim , Head , LazyValue , Value } ;
12
12
use crate :: core:: { Const , Item , Module , Prim , Term , UIntStyle } ;
13
13
use crate :: env:: { EnvLen , SharedEnv , UniqueEnv } ;
@@ -284,7 +284,7 @@ impl<'arena, 'data> Context<'arena, 'data> {
284
284
285
285
fn eval_env ( & mut self ) -> semantics:: EvalEnv < ' arena , ' _ > {
286
286
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 )
288
288
}
289
289
290
290
fn elim_env ( & self ) -> semantics:: ElimEnv < ' arena , ' _ > {
@@ -296,7 +296,7 @@ impl<'arena, 'data> Context<'arena, 'data> {
296
296
for item in module. items {
297
297
match item {
298
298
Item :: Def { expr, .. } => {
299
- let expr = self . eval_env ( ) . delay ( expr) ;
299
+ let expr = self . eval_env ( ) . delay_or_eval ( expr) ;
300
300
self . item_exprs . push ( expr) ;
301
301
}
302
302
}
0 commit comments