Untitled

Run Settings
LanguageNim
Language Version
Run Command
{.experimental.} type K = enum ka,kb type A = object case kind: K of ka: innerAdata:int of kb: innerBdata:string proc a():A = A(kind:ka) var an = a() proc `.=`[T](m:var A, field:string, val:T) = echo "Dot operator assignment overload called!", field if field == "adata": if m.kind != ka: m.reset m.kind = ka m.innerAdata = val elif field == "bdata": if m.kind != kb: m.reset m.kind = kb m.innerBdata = val # this branch conflicts with the above branch, the type cant be both int and string proc adata(m:A): int = result = m.innerAdata proc bdata(m:A): int = result = m.innerAdata an.adata = 5 echo an.kind, an.adata an.adata = 6 echo an.kind, an.adata an.bdata = "hello" echo an.kind, an.bdata
Editor Settings
Theme
Key bindings
Full width
Lines