parent
33b8a00aa8
commit
560eef5bbe
3 changed files with 35 additions and 12 deletions
|
|
@ -1,6 +1,10 @@
|
|||
discard """
|
||||
errormsg: "cannot attach a custom pragma to 'a'"
|
||||
line: 9
|
||||
cmd: "nim check --hint[processing]:off $file"
|
||||
errormsg: "3 is not two"
|
||||
nimout: '''t8741.nim(13, 9) Error: cannot attach a custom pragma to 'a'
|
||||
t8741.nim(29, 15) template/generic instantiation of `onlyTwo` from here
|
||||
t8741.nim(25, 12) Error: 3 is not two
|
||||
'''
|
||||
"""
|
||||
|
||||
for a {.gensym, inject.} in @[1,2,3]:
|
||||
|
|
@ -8,3 +12,18 @@ for a {.gensym, inject.} in @[1,2,3]:
|
|||
|
||||
for a {.foobar.} in @[1,2,3]:
|
||||
discard
|
||||
|
||||
type Foo[N: static[int]] = distinct int
|
||||
|
||||
proc isTwo(n: int): bool =
|
||||
n == 2
|
||||
|
||||
proc onlyTwo[N: static[int]](a: Foo[N]): int =
|
||||
when isTwo(N):
|
||||
int(a)
|
||||
else:
|
||||
{.error: $(N) & " is not two".}
|
||||
|
||||
when isMainModule:
|
||||
let foo: Foo[3] = Foo[3](5)
|
||||
echo onlyTwo(foo)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue