summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorawr1 <41453959+awr1@users.noreply.github.com>2018-08-23 03:20:58 -0500
committerAndreas Rumpf <rumpf_a@web.de>2018-08-23 10:20:58 +0200
commitbf973d29da48fc6e6d6eeedce3adda84e0b45a64 (patch)
tree9cb106d9241997c8401bf6a7de7a4a1c49e8d7e6 /lib
parent52bee6baba1b5aeb5abe763c06478cd3139a5a84 (diff)
downloadNim-bf973d29da48fc6e6d6eeedce3adda84e0b45a64.tar.gz
Fixes #8719 (onFailedAssert now works for doAssert) (#8731)
Diffstat (limited to 'lib')
-rw-r--r--lib/system.nim16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/system.nim b/lib/system.nim
index d61924a5b..73804b973 100644
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -3741,23 +3741,23 @@ template assert*(cond: bool, msg = "") =
   ## The compiler may not generate any code at all for ``assert`` if it is
   ## advised to do so through the ``-d:release`` or ``--assertions:off``
   ## `command line switches <nimc.html#command-line-switches>`_.
+  # NOTE: `true` is correct here; --excessiveStackTrace:on will control whether
+  # or not to output full paths.
   bind instantiationInfo
   mixin failedAssertImpl
-  when compileOption("assertions"):
-    {.line.}:
+  {.line: instantiationInfo(fullPaths = true).}:
+    when compileOption("assertions"):
       if not cond: failedAssertImpl(astToStr(cond) & ' ' & msg)
 
 template doAssert*(cond: bool, msg = "") =
   ## same as `assert` but is always turned on and not affected by the
   ## ``--assertions`` command line switch.
-  bind instantiationInfo
   # NOTE: `true` is correct here; --excessiveStackTrace:on will control whether
   # or not to output full paths.
-  {.line: instantiationInfo(-1, true).}:
-    if not cond:
-      raiseAssert(astToStr(cond) & ' ' &
-                  instantiationInfo(-1, false).fileName & '(' &
-                  $instantiationInfo(-1, false).line & ") " & msg)
+  bind instantiationInfo
+  mixin failedAssertImpl
+  {.line: instantiationInfo(fullPaths = true).}:
+    if not cond: failedAssertImpl(astToStr(cond) & ' ' & msg)
 
 iterator items*[T](a: seq[T]): T {.inline.} =
   ## iterates over each item of `a`.