diff options
author | Araq <rumpf_a@web.de> | 2014-01-13 02:10:03 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-01-13 02:10:03 +0100 |
commit | 20b5f31c03fb556ec0aa2428a40adbac004d8987 (patch) | |
tree | 58086941e7d6bb8f480ca1173a95722ada9435b2 /tests/effects/teffects6.nim | |
parent | 51ee524109cf7e3e86c676bc1676063a01bfd979 (diff) | |
download | Nim-20b5f31c03fb556ec0aa2428a40adbac004d8987.tar.gz |
new tester; all tests categorized
Diffstat (limited to 'tests/effects/teffects6.nim')
-rw-r--r-- | tests/effects/teffects6.nim | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/effects/teffects6.nim b/tests/effects/teffects6.nim new file mode 100644 index 000000000..54200f2c3 --- /dev/null +++ b/tests/effects/teffects6.nim @@ -0,0 +1,31 @@ + +type + PMenu = ref object + PMenuItem = ref object + +proc createMenuItem*(menu: PMenu, label: string, + action: proc (i: PMenuItem, p: pointer) {.cdecl.}) = nil + +var s: PMenu +createMenuItem(s, "Go to definition...", + proc (i: PMenuItem, p: pointer) {.cdecl.} = + try: + echo(i.repr) + except EInvalidValue: + echo("blah") +) + + +proc noRaise(x: proc()) {.raises: [].} = + # unknown call that might raise anything, but valid: + x() + +proc doRaise() {.raises: [EIO].} = + raise newException(EIO, "IO") + +proc use*() = + noRaise(doRaise) + # Here the compiler inferes that EIO can be raised. + + +use() |