summary refs log tree commit diff stats
path: root/tests/assign/tvariantasgn.nim
blob: 4c3c38ca58beb6604fdd3ef7fc3e53b6474f0495 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
discard """
  output: "came here"
"""

#BUG
type
  TAnyKind = enum
    nkInt,
    nkFloat,
    nkString
  TAny = object
    case kind: TAnyKind
    of nkInt: intVal: int
    of nkFloat: floatVal: float
    of nkString: strVal: string

var s: TAny
s = TAny(kind: nkString, strVal: "test")

var nr: TAny
s = TAny(kind: nkInt, intVal: 78)


# s = nr # works
nr = s # fails!
echo "came here"

block: # bug #12464
  type
    Foo = object
      case isFunc: bool
      of false: nil
      of true:
        fun: proc(): int

  const i = Foo(isFunc: false)

  let j = i
  doAssert not j.isFunc