Skip to content

Commit e98af44

Browse files
committed
fix a few AST nodes that had the wrong type
1 parent 5f0ac30 commit e98af44

1 file changed

Lines changed: 18 additions & 5 deletions

File tree

source/rust_verify/src/rust_to_vir_expr.rs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ use vir::ast::{
4747
VariantCheck, VirErr,
4848
};
4949
use 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
};
5353
use 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

Comments
 (0)