Skip to content

Commit

Permalink
bug-fix: correct type matching in if-else expression (#264)
Browse files Browse the repository at this point in the history
  • Loading branch information
0xnullifier authored Jan 22, 2025
1 parent bb87a88 commit cd26e9a
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/mast/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1063,7 +1063,17 @@ fn monomorphize_expr<B: Backend>(
let else_mono = monomorphize_expr(ctx, else_, mono_fn_env)?;

// make sure that the type of then_ and else_ match
if then_mono.typ != else_mono.typ {
let is_match = match (&then_mono.typ, &else_mono.typ) {
// generics not allowed as they should have been monomorphized
(Some(then_typ), Some(else_typ)) => then_typ.match_expected(else_typ, true),
_ => Err(Error::new(
"If-Else Monomorphization",
ErrorKind::UnexpectedError("Could not resolve type for the `if-else` branch"),
expr.span,
))?,
};

if !is_match {
Err(Error::new(
"If-Else Monomorphization",
ErrorKind::UnexpectedError(
Expand Down

0 comments on commit cd26e9a

Please sign in to comment.