File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -5595,6 +5595,10 @@ fn (mut g Gen) cast_expr(node ast.CastExpr) {
55955595 }
55965596 node_typ_is_option := node.typ.has_flag (.option)
55975597 if sym.kind in [.sum_type, .interface ] {
5598+ if g.table.unaliased_type (expr_type) == node_typ {
5599+ g.expr (node.expr)
5600+ return
5601+ }
55985602 if node_typ_is_option && node.expr is ast.None {
55995603 g.gen_option_error (node.typ, node.expr)
56005604 } else if node.expr is ast.Ident && g.comptime.is_comptime_variant_var (node.expr) {
Original file line number Diff line number Diff line change 1+ struct Number {}
2+
3+ struct String {}
4+
5+ struct Variable {}
6+
7+ struct FunctionCall {}
8+
9+ type Value = Number | String | Variable | FunctionCall
10+ type Statement = Value
11+
12+ fn test_main () {
13+ s := Value (Statement (Value (Number{})))
14+ assert '${s }' == 'Value(Number{})'
15+
16+ s2 := Statement (Value (Number{}))
17+ assert '${s2 }' == 'Statement(Value(Number{}))'
18+ }
You can’t perform that action at this time.
0 commit comments