checker: improve wording on error messages (#6799)

pull/6846/head
Luke Edwards 2020-11-11 13:11:27 -08:00 committed by GitHub
parent f42a44abec
commit a525397022
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 8 deletions

View File

@ -1629,7 +1629,7 @@ pub fn (mut c Checker) check_expr_opt_call(expr ast.Expr, ret_type table.Type) t
if expr.return_type.has_flag(.optional) {
if expr.or_block.kind == .absent {
if ret_type != table.void_type {
c.error('${expr.name}() returns an option, but you missed to add an `or {}` block to it',
c.error('${expr.name}() returns an option but is missing an `or {}` block',
expr.pos)
}
} else {
@ -1643,7 +1643,7 @@ pub fn (mut c Checker) check_expr_opt_call(expr ast.Expr, ret_type table.Type) t
c.error('unexpected `or` block, the function `$expr.name` does not return an optional',
expr.or_block.pos)
} else if expr.or_block.kind == .propagate {
c.error('unexpected `?`, the function `$expr.name`, does not return an optional',
c.error('unexpected `?`, the function `$expr.name` does not return an optional',
expr.or_block.pos)
}
}
@ -1653,7 +1653,7 @@ pub fn (mut c Checker) check_expr_opt_call(expr ast.Expr, ret_type table.Type) t
pub fn (mut c Checker) check_or_expr(or_expr ast.OrExpr, ret_type table.Type, expr_return_type table.Type) {
if or_expr.kind == .propagate {
if !c.cur_fn.return_type.has_flag(.optional) && c.cur_fn.name != 'main.main' {
c.error('to propagate the optional call, `$c.cur_fn.name` must itself return an optional',
c.error('to propagate the optional call, `$c.cur_fn.name` must return an optional',
or_expr.pos)
}
return

View File

@ -1,4 +1,4 @@
vlib/v/checker/tests/optional_method_err.vv:17:10: error: inc_to_limit() returns an option, but you missed to add an `or {}` block to it
vlib/v/checker/tests/optional_method_err.vv:17:10: error: inc_to_limit() returns an option but is missing an `or {}` block
15 | mut a := Abc{}
16 | for _ in 0 .. 4 {
17 | _ := a.inc_to_limit(2)

View File

@ -1,5 +1,5 @@
vlib/v/checker/tests/unexpected_or_propagate.vv:6:17: error: unexpected `?`, the function `ret_zero`, does not return an optional
4 |
vlib/v/checker/tests/unexpected_or_propagate.vv:6:17: error: unexpected `?`, the function `ret_zero` does not return an optional
4 |
5 | fn opt_fn() ?int {
6 | a := ret_zero()?
| ^

View File

@ -1,5 +1,5 @@
vlib/v/checker/tests/wrong_propagate_ret_type.vv:6:17: error: to propagate the optional call, `opt_call` must itself return an optional
4 |
vlib/v/checker/tests/wrong_propagate_ret_type.vv:6:17: error: to propagate the optional call, `opt_call` must return an optional
4 |
5 | fn opt_call() int {
6 | a := ret_none()?
| ^