struct S1 { mut: i int } struct S2 { } type Sum = S1 | S2 fn f(sum Sum) { if mut sum is S1 { sum.i++ } if sum is S1 { } a := [sum] if a[0] is S2 { } }