parent
9b949855c7
commit
766960dc15
4 changed files with 8 additions and 6 deletions
|
|
@ -2023,8 +2023,11 @@ proc tryExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode =
|
||||||
let oldErrorCount = c.config.errorCounter
|
let oldErrorCount = c.config.errorCounter
|
||||||
let oldErrorMax = c.config.errorMax
|
let oldErrorMax = c.config.errorMax
|
||||||
let oldCompilesId = c.compilesContextId
|
let oldCompilesId = c.compilesContextId
|
||||||
inc c.compilesContextIdGenerator
|
# if this is a nested 'when compiles', do not increase the ID so that
|
||||||
c.compilesContextId = c.compilesContextIdGenerator
|
# generic instantations can still be cached for this level.
|
||||||
|
if c.compilesContextId == 0:
|
||||||
|
inc c.compilesContextIdGenerator
|
||||||
|
c.compilesContextId = c.compilesContextIdGenerator
|
||||||
# do not halt after first error:
|
# do not halt after first error:
|
||||||
c.config.errorMax = high(int)
|
c.config.errorMax = high(int)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ proc sameInstantiation(a, b: TInstantiation): bool =
|
||||||
proc genericCacheGet(genericSym: PSym, entry: TInstantiation;
|
proc genericCacheGet(genericSym: PSym, entry: TInstantiation;
|
||||||
id: CompilesId): PSym =
|
id: CompilesId): PSym =
|
||||||
for inst in genericSym.procInstCache:
|
for inst in genericSym.procInstCache:
|
||||||
if inst.compilesId == id and sameInstantiation(entry, inst[]):
|
if (inst.compilesId == 0 or inst.compilesId == id) and sameInstantiation(entry, inst[]):
|
||||||
return inst.sym
|
return inst.sym
|
||||||
|
|
||||||
when false:
|
when false:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
discard """
|
discard """
|
||||||
errormsg: "generic instantiation too nested"
|
action: compile
|
||||||
file: "system.nim"
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# bug #4766
|
# bug #4766
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
discard """
|
discard """
|
||||||
errormsg: "generic instantiation too nested"
|
action: compile
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#[
|
#[
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue