diff options
Diffstat (limited to 'lib/system.nim')
-rw-r--r-- | lib/system.nim | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/system.nim b/lib/system.nim index b9f86f549..38f45ff7a 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2968,6 +2968,28 @@ when not declared(sysFatal): proc sysFatal(exceptn: typedesc, message, arg: string) {.inline.} = rawoutput(message) panic(arg) + elif defined(nimQuirky): + proc name(t: typedesc): string {.magic: "TypeTrait".} + proc sysFatal(exceptn: typedesc, message: string) {.inline, noReturn.} = + var buf = newStringOfCap(200) + add(buf, "Error: unhandled exception: ") + add(buf, message) + add(buf, " [") + add(buf, name exceptn) + add(buf, "]") + echo buf + quit 1 + + proc sysFatal(exceptn: typedesc, message, arg: string) {.inline, noReturn.} = + var buf = newStringOfCap(200) + add(buf, "Error: unhandled exception: ") + add(buf, message) + add(buf, arg) + add(buf, " [") + add(buf, name exceptn) + add(buf, "]") + echo buf + quit 1 else: proc sysFatal(exceptn: typedesc, message: string) {.inline, noReturn.} = var e: ref exceptn |