From 5537b09492cb59219a112f0b3177ac9d084f7437 Mon Sep 17 00:00:00 2001 From: Swastik Baranwal Date: Sat, 11 Jan 2020 00:29:15 +0530 Subject: [PATCH] parser: add check for string casting --- vlib/compiler/gen_c.v | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/vlib/compiler/gen_c.v b/vlib/compiler/gen_c.v index 2e2a72d934..60b19a90f3 100644 --- a/vlib/compiler/gen_c.v +++ b/vlib/compiler/gen_c.v @@ -277,8 +277,8 @@ fn (table mut Table) fn_gen_name(f &Fn) string { `%` { name = name.replace('%', 'op_mod') } - else { - }} + else {} + } } } if f.is_interface { @@ -600,6 +600,9 @@ fn (p mut Parser) cast(typ string) { } // Strings can't be cast if expr_typ == 'string' { + if is_number_type(typ) || is_float_type(typ) { + p.error('cannot cast `string` to `$typ`, use `${expr_typ}.${typ}()` instead') + } p.error('cannot cast `$expr_typ` to `$typ`') } // Nothing can be cast to bool @@ -671,8 +674,8 @@ fn type_default(typ string) string { 'voidptr' { return '0' } - else { - }} + else {} + } return '{0}' // TODO this results in // error: expected a field designator, such as '.field = 4'