summary refs log tree commit diff stats
path: root/lib/system.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/system.nim')
-rw-r--r--lib/system.nim22
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