fixes #22163; use {.push warning[BareExcept]:off.} to override settings temporarily (#21390)

* use `{.push warning[BareExcept]:off.}` to override settings temporarily

* likewise, suppress expect
This commit is contained in:
ringabout
2023-06-27 08:03:52 +08:00
committed by GitHub
parent 4546f5dfe5
commit 4ce3a68e79
2 changed files with 10 additions and 6 deletions

View File

@@ -550,14 +550,14 @@ template test*(name, body) {.dirty.} =
for formatter in formatters:
formatter.testStarted(name)
{.warning[BareExcept]:off.}
{.push warning[BareExcept]:off.}
try:
when declared(testSetupIMPLFlag): testSetupIMPL()
when declared(testTeardownIMPLFlag):
defer: testTeardownIMPL()
{.warning[BareExcept]:on.}
{.push warning[BareExcept]:on.}
body
{.warning[BareExcept]:off.}
{.pop.}
except:
let e = getCurrentException()
@@ -579,7 +579,7 @@ template test*(name, body) {.dirty.} =
)
testEnded(testResult)
checkpoints = @[]
{.warning[BareExcept]:on.}
{.pop.}
proc checkpoint*(msg: string) =
## Set a checkpoint identified by `msg`. Upon test failure all
@@ -767,8 +767,11 @@ macro expect*(exceptions: varargs[typed], body: untyped): untyped =
defectiveRobot()
template expectBody(errorTypes, lineInfoLit, body): NimNode {.dirty.} =
{.push warning[BareExcept]:off.}
try:
{.push warning[BareExcept]:on.}
body
{.pop.}
checkpoint(lineInfoLit & ": Expect Failed, no exception was thrown.")
fail()
except errorTypes:
@@ -776,6 +779,7 @@ macro expect*(exceptions: varargs[typed], body: untyped): untyped =
except:
checkpoint(lineInfoLit & ": Expect Failed, unexpected exception was thrown.")
fail()
{.pop.}
var errorTypes = newNimNode(nnkBracket)
for exp in exceptions:

View File

@@ -98,7 +98,7 @@ template doAssertRaises*(exception: typedesc, code: untyped) =
const begin = "expected raising '" & astToStr(exception) & "', instead"
const msgEnd = " by: " & astToStr(code)
template raisedForeign {.gensym.} = raiseAssert(begin & " raised foreign exception" & msgEnd)
{.warning[BareExcept]:off.}
{.push warning[BareExcept]:off.}
when Exception is exception:
try:
if true:
@@ -117,6 +117,6 @@ template doAssertRaises*(exception: typedesc, code: untyped) =
mixin `$` # alternatively, we could define $cstring in this module
raiseAssert(begin & " raised '" & $e.name & "'" & msgEnd)
except: raisedForeign()
{.warning[BareExcept]:on.}
{.pop.}
if wrong:
raiseAssert(begin & " nothing was raised" & msgEnd)