diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index 1ad00a5663..da6c708c8f 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -457,6 +457,11 @@ fn (c mut Checker) stmt(node ast.Stmt) { c.return_stmt(it) } // ast.StructDecl {} + ast.UnsafeStmt { + for stmt in it.stmts { + c.stmt(stmt) + } + } ast.VarDecl { typ := c.expr(it.expr) it.typ = typ diff --git a/vlib/v/table/table.v b/vlib/v/table/table.v index 9500c1e5bf..565587ff95 100644 --- a/vlib/v/table/table.v +++ b/vlib/v/table/table.v @@ -398,8 +398,10 @@ pub fn (t &Table) check(got, expected Type) bool { if got_type_sym.is_number() && exp_type_sym.is_number() { return true } - // check hack in checker IndexExpr line #691 - if type_is_ptr(got) && got_type_sym.kind == .byte && exp_type_sym.kind == .byteptr { + // TODO: actually check for & handle pointers with name_expr + // see hack in checker IndexExpr line #691 + if (got_type_sym.kind == .byte && exp_type_sym.kind == .byteptr) || + (exp_type_sym.kind == .byte && got_type_sym.kind == .byteptr) { return true } // TODO