mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 03:32:32 +00:00
make system/fatal importable (#20719)
This commit is contained in:
@@ -9,8 +9,7 @@
|
||||
|
||||
## This module implements assertion handling.
|
||||
|
||||
when not declared(sysFatal):
|
||||
include "system/fatal"
|
||||
import system/fatal
|
||||
|
||||
import std/private/miscdollars
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@@ -1637,8 +1637,13 @@ when not defined(nimscript):
|
||||
## for debug builds. Since it's usually used for debugging, this
|
||||
## is proclaimed to have no IO effect!
|
||||
|
||||
when not declared(sysFatal):
|
||||
include "system/fatal"
|
||||
|
||||
when defined(nimHasExceptionsQuery):
|
||||
const gotoBasedExceptions = compileOption("exceptions", "goto")
|
||||
else:
|
||||
const gotoBasedExceptions = false
|
||||
|
||||
import system/fatal
|
||||
|
||||
when not defined(nimscript):
|
||||
{.push stackTrace: off, profiler: off.}
|
||||
|
||||
@@ -9,27 +9,22 @@
|
||||
|
||||
{.push profiler: off.}
|
||||
|
||||
when defined(nimHasExceptionsQuery):
|
||||
const gotoBasedExceptions = compileOption("exceptions", "goto")
|
||||
else:
|
||||
const gotoBasedExceptions = false
|
||||
|
||||
when hostOS == "standalone":
|
||||
include "$projectpath/panicoverride"
|
||||
|
||||
func sysFatal(exceptn: typedesc, message: string) {.inline.} =
|
||||
func sysFatal*(exceptn: typedesc, message: string) {.inline.} =
|
||||
panic(message)
|
||||
|
||||
func sysFatal(exceptn: typedesc, message, arg: string) {.inline.} =
|
||||
func sysFatal*(exceptn: typedesc, message, arg: string) {.inline.} =
|
||||
rawoutput(message)
|
||||
panic(arg)
|
||||
|
||||
elif (defined(nimQuirky) or defined(nimPanics)) and not defined(nimscript):
|
||||
import ansi_c
|
||||
import system/ansi_c
|
||||
|
||||
func name(t: typedesc): string {.magic: "TypeTrait".}
|
||||
|
||||
func sysFatal(exceptn: typedesc, message, arg: string) {.inline, noreturn.} =
|
||||
func sysFatal*(exceptn: typedesc, message, arg: string) {.inline, noreturn.} =
|
||||
when nimvm:
|
||||
# TODO when doAssertRaises works in CT, add a test for it
|
||||
raise (ref exceptn)(msg: message & arg)
|
||||
@@ -46,14 +41,14 @@ elif (defined(nimQuirky) or defined(nimPanics)) and not defined(nimscript):
|
||||
cstderr.rawWrite buf
|
||||
quit 1
|
||||
|
||||
func sysFatal(exceptn: typedesc, message: string) {.inline, noreturn.} =
|
||||
func sysFatal*(exceptn: typedesc, message: string) {.inline, noreturn.} =
|
||||
sysFatal(exceptn, message, "")
|
||||
|
||||
else:
|
||||
func sysFatal(exceptn: typedesc, message: string) {.inline, noreturn.} =
|
||||
func sysFatal*(exceptn: typedesc, message: string) {.inline, noreturn.} =
|
||||
raise (ref exceptn)(msg: message)
|
||||
|
||||
func sysFatal(exceptn: typedesc, message, arg: string) {.inline, noreturn.} =
|
||||
func sysFatal*(exceptn: typedesc, message, arg: string) {.inline, noreturn.} =
|
||||
raise (ref exceptn)(msg: message & arg)
|
||||
|
||||
{.pop.}
|
||||
|
||||
Reference in New Issue
Block a user