@@ -47,7 +47,7 @@ use vir::ast::{
4747 VariantCheck , VirErr ,
4848} ;
4949use vir:: ast_util:: {
50- ident_binder, mk_tuple_field_x, mk_tuple_typ, mk_tuple_x, str_unique_var,
50+ bool_typ , ident_binder, mk_tuple_field_x, mk_tuple_typ, mk_tuple_x, str_unique_var,
5151 typ_to_diagnostic_str, types_equal, undecorate_typ,
5252} ;
5353use vir:: def:: { field_ident_from_rust, positional_field_ident} ;
@@ -1401,7 +1401,8 @@ pub(crate) fn expr_cast_enum_int_to_vir<'tcx>(
14011401 ) ;
14021402 let mut erasure_info = bctx. ctxt . erasure_info . borrow_mut ( ) ;
14031403 erasure_info. hir_vir_ids . push ( ( expr. hir_id , pattern. span . id ) ) ;
1404- let guard = mk_expr ( ExprX :: Const ( Constant :: Bool ( true ) ) ) ?;
1404+ let guard =
1405+ bctx. spanned_typed_new ( expr. span , & bool_typ ( ) , ExprX :: Const ( Constant :: Bool ( true ) ) ) ;
14051406 let body = cast_to;
14061407 let vir_arm = bctx. spanned_new ( expr. span , ArmX { pattern, guard, body } ) ;
14071408 vir_arms. push ( vir_arm) ;
@@ -2085,7 +2086,11 @@ pub(crate) fn expr_to_vir_innermost<'tcx>(
20852086 /* lhs */
20862087 {
20872088 let pattern = pattern_to_vir ( bctx, pat) ?;
2088- let guard = mk_expr ( ExprX :: Const ( Constant :: Bool ( true ) ) ) ?;
2089+ let guard = bctx. spanned_typed_new (
2090+ expr. span ,
2091+ & bool_typ ( ) ,
2092+ ExprX :: Const ( Constant :: Bool ( true ) ) ,
2093+ ) ;
20892094 let body = expr_to_vir ( bctx, & lhs, modifier) ?;
20902095 let vir_arm = ArmX { pattern, guard, body } ;
20912096 vir_arms. push ( bctx. spanned_new ( lhs. span , vir_arm) ) ;
@@ -2099,7 +2104,11 @@ pub(crate) fn expr_to_vir_innermost<'tcx>(
20992104 let mut erasure_info = bctx. ctxt . erasure_info . borrow_mut ( ) ;
21002105 erasure_info. hir_vir_ids . push ( ( cond. hir_id , pattern. span . id ) ) ;
21012106 }
2102- let guard = mk_expr ( ExprX :: Const ( Constant :: Bool ( true ) ) ) ?;
2107+ let guard = bctx. spanned_typed_new (
2108+ expr. span ,
2109+ & bool_typ ( ) ,
2110+ ExprX :: Const ( Constant :: Bool ( true ) ) ,
2111+ ) ;
21032112 let body = if let Some ( rhs) = rhs {
21042113 expr_to_vir ( bctx, & rhs, modifier) ?
21052114 } else {
@@ -2124,7 +2133,11 @@ pub(crate) fn expr_to_vir_innermost<'tcx>(
21242133 for arm in arms. iter ( ) {
21252134 let pattern = pattern_to_vir ( bctx, & arm. pat ) ?;
21262135 let guard = match & arm. guard {
2127- None => mk_expr ( ExprX :: Const ( Constant :: Bool ( true ) ) ) ?,
2136+ None => bctx. spanned_typed_new (
2137+ expr. span ,
2138+ & bool_typ ( ) ,
2139+ ExprX :: Const ( Constant :: Bool ( true ) ) ,
2140+ ) ,
21282141 Some ( guard_expr) => expr_to_vir ( bctx, guard_expr, modifier) ?,
21292142 } ;
21302143 let body = expr_to_vir ( bctx, & arm. body , modifier) ?;
0 commit comments