File: tvariantasgn.nim

package info (click to toggle)
nim 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,911,644 kB
  • sloc: sh: 24,603; ansic: 1,761; python: 1,492; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (39 lines) | stat: -rw-r--r-- 586 bytes parent folder | download
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