mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-14 23:33:28 +00:00
…eption: Exception fixes #23019 I suppose `implicitPragmas` is called somewhere which converts `otherPragmas`.
This commit is contained in:
@@ -1313,7 +1313,7 @@ proc implicitPragmas*(c: PContext, sym: PSym, info: TLineInfo,
|
||||
if sym != nil and sym.kind != skModule:
|
||||
for it in c.optionStack:
|
||||
let o = it.otherPragmas
|
||||
if not o.isNil:
|
||||
if not o.isNil and sfFromGeneric notin sym.flags: # bug #23019
|
||||
pushInfoContext(c.config, info)
|
||||
var i = 0
|
||||
while i < o.len:
|
||||
|
||||
@@ -77,3 +77,25 @@ block: # bug #22913
|
||||
{.pop.}
|
||||
|
||||
discard foo2()
|
||||
|
||||
block: # bug #23019
|
||||
proc f(x: bool)
|
||||
|
||||
proc a(x: int) =
|
||||
if false: f(true)
|
||||
|
||||
proc f(x: bool) =
|
||||
if false: a(0)
|
||||
|
||||
proc k(r: int|int) {.inline.} = # seems to require being generic and inline
|
||||
if false: a(0)
|
||||
|
||||
|
||||
# {.push tags: [].}
|
||||
{.push raises: [].}
|
||||
|
||||
{.push warning[ObservableStores]:off.} # can be any warning, off or on
|
||||
let w = 0
|
||||
k(w)
|
||||
{.pop.}
|
||||
{.pop.}
|
||||
|
||||
Reference in New Issue
Block a user