diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index b27352aebf..6a0af44a5e 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -704,7 +704,6 @@ pub fn (mut c Checker) infix_expr(mut infix_expr ast.InfixExpr) table.Type { defer { c.expected_type = former_expected_type } - c.expected_type = table.void_type left_type := c.expr(infix_expr.left) // left_type = c.unwrap_genric(c.expr(infix_expr.left)) infix_expr.left_type = left_type diff --git a/vlib/v/tests/if_expression_test.v b/vlib/v/tests/if_expression_test.v index b5b82faacb..7c0580d037 100644 --- a/vlib/v/tests/if_expression_test.v +++ b/vlib/v/tests/if_expression_test.v @@ -157,3 +157,13 @@ fn test_lots_of_if_expressions() { } assert a == 1 } + +fn test_if_expr_with_infix() { + a := if true { 1 } else { 0 } + 5 + assert a == 6 +} + +fn test_multi_if_expr_with_infix() { + a := if 1 == 0 { 1 } else if 1 == 0 { 2 } else { 3 } + 4 + assert a == 7 +} diff --git a/vlib/v/tests/match_test.v b/vlib/v/tests/match_test.v index 34d3efdd65..6d1d5530b4 100644 --- a/vlib/v/tests/match_test.v +++ b/vlib/v/tests/match_test.v @@ -268,3 +268,8 @@ fn test_sumtype_with_array() { } } } + +fn test_match_expression_add() { + a := match true { true {1} false {2} } + 3 + assert a == 4 +}