Skip to content

Commit b29bc9c

Browse files
committed
checker: fix panic on fn abc()?{ return error() }
1 parent d6e462a commit b29bc9c

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

vlib/v/checker/checker.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2430,7 +2430,7 @@ pub fn (mut c Checker) fn_call(mut call_expr ast.CallExpr) ast.Type {
24302430
return func.return_type
24312431
}
24322432
// `return error(err)` -> `return err`
2433-
if fn_name == 'error' {
2433+
if fn_name == 'error' && call_expr.args.len == 1 {
24342434
arg := call_expr.args[0]
24352435
call_expr.args[0].typ = c.expr(arg.expr)
24362436
if call_expr.args[0].typ == ast.error_type {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
vlib/v/checker/tests/error_fn_with_0_args.vv:2:9: error: expected 1 arguments, but got 0
2+
1 | fn abc() ? {
3+
2 | return error()
4+
| ~~~~~~~
5+
3 | }
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
fn abc() ? {
2+
return error()
3+
}

0 commit comments

Comments
 (0)