Fix regression with runnableExamples in generic expr

The examples should not enter the generic analysis at all.
The regression was introduced in 4cf704bb as a fix for #8694.

Fixes #9130
Fixes #8694
This commit is contained in:
LemonBoy 2018-09-30 14:11:53 +02:00
commit 6d4503325c
3 changed files with 69 additions and 5 deletions

View file

@ -225,7 +225,7 @@ proc semGenericStmt(c: PContext, n: PNode,
var mixinContext = false
if s != nil:
incl(s.flags, sfUsed)
mixinContext = s.magic in {mDefined, mDefinedInScope, mCompiles, mRunnableExamples}
mixinContext = s.magic in {mDefined, mDefinedInScope, mCompiles}
let sc = symChoice(c, fn, s, if s.isMixedIn: scForceOpen else: scOpen)
case s.kind
of skMacro:
@ -255,11 +255,11 @@ proc semGenericStmt(c: PContext, n: PNode,
discard
of skProc, skFunc, skMethod, skIterator, skConverter, skModule:
result.sons[0] = sc
# do not check of 's.magic==mRoof' here because it might be some
# other '^' but after overload resolution the proper one:
if ctx.bracketExpr != nil and n.len == 2 and s.name.s == "^":
result.add ctx.bracketExpr
first = 1
# We're not interested in the example code during this pass so let's
# skip it
if s.magic == mRunnableExamples:
inc first
of skGenericParam:
result.sons[0] = newSymNodeTypeDesc(s, fn.info)
styleCheckUse(fn.info, s)