diff options
Diffstat (limited to 'tests/pragmas/t8741.nim')
-rw-r--r-- | tests/pragmas/t8741.nim | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/pragmas/t8741.nim b/tests/pragmas/t8741.nim new file mode 100644 index 000000000..bf97b0e29 --- /dev/null +++ b/tests/pragmas/t8741.nim @@ -0,0 +1,29 @@ +discard """ + cmd: "nim check --hint:processing:off $file" + errormsg: "3 is not two" + nimout: '''t8741.nim(13, 9) Error: invalid pragma: foobar +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]: + discard + +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) |