diff options
author | Zahary Karadjov <zahary@gmail.com> | 2017-06-05 05:20:13 +0300 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-06-20 11:29:42 +0200 |
commit | cd0256136839261b1c1b86c826d74cdbca5ddb67 (patch) | |
tree | 1a2043345025c2d849c680ace2707473b82bf04a /compiler/semexprs.nim | |
parent | 30ccadfe4c7674cd8e58f6a8fe75055c4518dac3 (diff) | |
download | Nim-cd0256136839261b1c1b86c826d74cdbca5ddb67.tar.gz |
introduce a pre-processing pass for the concept bodies
fixes #4982 fixes #3805 close #3414
Diffstat (limited to 'compiler/semexprs.nim')
-rw-r--r-- | compiler/semexprs.nim | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 67a718b91..7c4fcd881 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -705,7 +705,7 @@ proc afterCallActions(c: PContext; n, orig: PNode, flags: TExprFlags): PNode = analyseIfAddressTakenInCall(c, result) if callee.magic != mNone: result = magicsAfterOverloadResolution(c, result, flags) - if c.inTypeClass == 0: + if c.matchedConcept == nil: result = evalAtCompileTime(c, result) proc semIndirectOp(c: PContext, n: PNode, flags: TExprFlags): PNode = @@ -2147,7 +2147,7 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode = let checks = if efNoEvaluateGeneric in flags: {checkUndeclared} else: {checkUndeclared, checkModule, checkAmbiguity} var s = qualifiedLookUp(c, n, checks) - if c.inTypeClass == 0: semCaptureSym(s, c.p.owner) + if c.matchedConcept == nil: semCaptureSym(s, c.p.owner) result = semSym(c, n, s, flags) if s.kind in {skProc, skMethod, skConverter, skIterator}: #performProcvarCheck(c, n, s) |