mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
checker: add error for invalid sum type cast MySt{1}
This commit is contained in:
parent
2de1437a1e
commit
61c1c4a690
@ -358,6 +358,11 @@ pub fn (mut c Checker) struct_init(mut struct_init ast.StructInit) table.Type {
|
|||||||
struct_init.typ = c.expected_type
|
struct_init.typ = c.expected_type
|
||||||
}
|
}
|
||||||
type_sym := c.table.get_type_symbol(struct_init.typ)
|
type_sym := c.table.get_type_symbol(struct_init.typ)
|
||||||
|
if type_sym.kind == .sum_type && struct_init.fields.len == 1 {
|
||||||
|
sexpr := struct_init.fields[0].expr.str()
|
||||||
|
c.error('cast to sum type using `${type_sym.name}($sexpr)` not `$type_sym.name{$sexpr}`',
|
||||||
|
struct_init.pos)
|
||||||
|
}
|
||||||
if type_sym.kind == .interface_ {
|
if type_sym.kind == .interface_ {
|
||||||
c.error('cannot instantiate interface `$type_sym.name`', struct_init.pos)
|
c.error('cannot instantiate interface `$type_sym.name`', struct_init.pos)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user