From 1c11ac9fdf78df08d133fe5058f3493fc9204c55 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Fri, 29 May 2020 06:45:58 +0200 Subject: [PATCH] checker: make sure `is` is only used with interfaces and sum types --- 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 40d563b84e..ddbe16b238 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -538,6 +538,9 @@ pub fn (mut c Checker) infix_expr(mut infix_expr ast.InfixExpr) table.Type { if typ_sym.kind == .placeholder { c.error('is: type `${typ_sym.name}` does not exist', type_expr.pos) } + if left.kind != .interface_ && left.kind != .sum_type { + c.error('`is` can only be used with interfaces and sum types', type_expr.pos) + } return table.bool_type } else {}