1- use core:: convert:: TryInto ;
2-
31use alloc:: boxed:: Box ;
42use ergotree_ir:: chain:: ergo_box:: ErgoBox ;
53use ergotree_ir:: mir:: constant:: TryExtractInto ;
@@ -22,24 +20,19 @@ impl Evaluable for ExtractRegisterAs {
2220 . input
2321 . eval ( env, ctx) ?
2422 . try_extract_into :: < Ref < ' _ , ErgoBox > > ( ) ?;
25- let id = self . register_id . try_into ( ) . map_err ( |e| {
26- EvalError :: RegisterIdOutOfBounds ( format ! (
27- "register index {} is out of bounds: {:?} " ,
28- self . register_id, e
29- ) )
30- } ) ?;
31- let reg_val_opt = ir_box. get_register ( id) . map_err ( |e| {
23+ let reg_val_opt = ir_box. get_register ( self . register_id ) . map_err ( |e| {
3224 EvalError :: NotFound ( format ! (
33- "Error getting the register id {id} with error {e:?}"
25+ "Error getting the register id {} with error {e:?}" ,
26+ self . register_id
3427 ) )
3528 } ) ?;
3629 match reg_val_opt {
3730 Some ( constant) if constant. tpe == * self . elem_tpe => {
3831 Ok ( Value :: Opt ( Some ( Box :: new ( constant. v . into ( ) ) ) ) )
3932 }
4033 Some ( constant) => Err ( EvalError :: UnexpectedValue ( format ! (
41- "Expected register {id } to be of type {}, got {}" ,
42- self . elem_tpe, constant. tpe
34+ "Expected register {} to be of type {}, got {}" ,
35+ self . register_id , self . elem_tpe, constant. tpe
4336 ) ) ) ,
4437 None => Ok ( Value :: Opt ( None ) ) ,
4538 }
@@ -56,7 +49,6 @@ mod tests {
5649 use ergotree_ir:: mir:: expr:: Expr ;
5750 use ergotree_ir:: mir:: global_vars:: GlobalVars ;
5851 use ergotree_ir:: mir:: option_get:: OptionGet ;
59- use ergotree_ir:: mir:: unary_op:: OneArgOpTryBuild ;
6052 use ergotree_ir:: types:: stype:: SType ;
6153 use sigma_test_util:: force_any_val;
6254
@@ -69,7 +61,7 @@ mod tests {
6961 )
7062 . unwrap ( )
7163 . into ( ) ;
72- let option_get_expr: Expr = OptionGet :: try_build ( get_reg_expr) . unwrap ( ) . into ( ) ;
64+ let option_get_expr: Expr = OptionGet :: new ( get_reg_expr) . unwrap ( ) . into ( ) ;
7365 let ctx = force_any_val :: < Context > ( ) ;
7466 let v = eval_out :: < i64 > ( & option_get_expr, & ctx) ;
7567 assert_eq ! ( v, ctx. self_box. value. as_i64( ) ) ;
@@ -84,7 +76,7 @@ mod tests {
8476 )
8577 . unwrap ( )
8678 . into ( ) ;
87- let option_get_expr: Expr = OptionGet :: try_build ( get_reg_expr) . unwrap ( ) . into ( ) ;
79+ let option_get_expr: Expr = OptionGet :: new ( get_reg_expr) . unwrap ( ) . into ( ) ;
8880 let ctx = force_any_val :: < Context > ( ) ;
8981 assert ! ( try_eval_out:: <Value >( & option_get_expr, & ctx) . is_err( ) ) ;
9082 }
0 commit comments