parent
5f736dd768
commit
0d53705776
|
@ -3706,6 +3706,9 @@ pub fn (mut c Checker) return_stmt(mut node ast.Return) {
|
||||||
mut got_types := []ast.Type{}
|
mut got_types := []ast.Type{}
|
||||||
for expr in node.exprs {
|
for expr in node.exprs {
|
||||||
typ := c.expr(expr)
|
typ := c.expr(expr)
|
||||||
|
if typ == ast.void_type {
|
||||||
|
c.error('`$expr` used as value', node.pos)
|
||||||
|
}
|
||||||
// Unpack multi return types
|
// Unpack multi return types
|
||||||
sym := c.table.get_type_symbol(typ)
|
sym := c.table.get_type_symbol(typ)
|
||||||
if sym.kind == .multi_return {
|
if sym.kind == .multi_return {
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
vlib/v/checker/tests/return_void_type_err.vv:2:2: error: `println(msg)` used as value
|
||||||
|
1 | fn hello(msg string) ? {
|
||||||
|
2 | return println(msg)
|
||||||
|
| ~~~~~~~~~~~~~~~~~~~
|
||||||
|
3 | }
|
||||||
|
4 |
|
|
@ -0,0 +1,7 @@
|
||||||
|
fn hello(msg string) ? {
|
||||||
|
return println(msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
hello('test') ?
|
||||||
|
}
|
Loading…
Reference in New Issue