File: tcalltype.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 (26 lines) | stat: -rw-r--r-- 469 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
discard """
  joinable: false # breaks everything because of #23977
"""

# issue #23406

template helper(_: untyped): untyped =
  int

type # Each of them should always be `int`.
  GenA[T] = helper int
  GenB[T] = helper(int)
  GenC[T] = helper helper(int)

block:
  template helper(_: untyped): untyped =
    float

  type
    A = GenA[int]
    B = GenB[int]
    C = GenC[int]

  assert A is int # OK.
  assert B is int # Fails; it is `float`!
  assert C is int # OK.