From 628b136e851b30e32477af67f117aa3f17d405aa Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Sun, 4 Oct 2020 14:46:24 +0300 Subject: [PATCH] checker: allow casting from floats/enums to byte --- vlib/v/checker/checker.v | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index 9d27f1557b..750ac33190 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -2627,8 +2627,9 @@ pub fn (mut c Checker) expr(node ast.Expr) table.Type { } c.error(error_msg, node.pos) } - } else if !node.expr_type.is_int() && node.expr_type != table.voidptr_type && !node.expr_type.is_ptr() && - to_type_sym.kind == .byte { + } else if to_type_sym.kind == .byte && + node.expr_type != table.voidptr_type && from_type_sym.kind != .enum_ && !node.expr_type.is_int() && + !node.expr_type.is_float() && !node.expr_type.is_ptr() { type_name := c.table.type_to_str(node.expr_type) c.error('cannot cast type `$type_name` to `byte`', node.pos) } else if to_type_sym.kind == .struct_ && !node.typ.is_ptr() && !(to_type_sym.info as table.Struct).is_typedef {