From 7c080c5d4a87dae4a7c0fd74bb69b54e07acbcda Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Sat, 25 Apr 2020 18:06:26 +0300 Subject: [PATCH] checker: prevent `x := voidfn()` --- vlib/v/checker/checker.v | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index 5501a3a9f1..957026892b 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -943,6 +943,9 @@ pub fn (c mut Checker) assign_stmt(assign_stmt mut ast.AssignStmt) { mut ident_var_info := ident.var_info() // c.assigned_var_name = ident.name val_type := c.expr(assign_stmt.right[i]) + if val_type == table.void_type { + c.error('expression does not return a value', assign_stmt.right[i].position()) + } if assign_stmt.op == .assign { var_type := c.expr(ident) assign_stmt.left_types << var_type