This commit is contained in:
Araq
2015-03-25 13:21:50 +01:00
parent 94f2d639b1
commit 43228a704f
3 changed files with 20 additions and 13 deletions

View File

@@ -2011,7 +2011,7 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode =
case n.kind
of nkIdent, nkAccQuoted:
var s = lookUp(c, n)
semCaptureSym(s, c.p.owner)
if c.inTypeClass == 0: semCaptureSym(s, c.p.owner)
result = semSym(c, n, s, flags)
if s.kind in {skProc, skMethod, skConverter}+skIterators:
#performProcvarCheck(c, n, s)

View File

@@ -0,0 +1,13 @@
type RNG* = concept var rng
rng.randomUint32() is uint32
type MersenneTwister* = object
proc randomUint32*(self: var MersenneTwister): uint32 = 5
proc randomInt*(rng: var RNG; max: Positive): Natural = 5
var mersenneTwisterInst = MersenneTwister()
proc randomInt*(max: Positive): Natural =
mersenneTwisterInst.randomInt(max)

View File

@@ -1,15 +1,9 @@
discard """
output: "5"
"""
# bug #2346
# bug #2346, bug #2404
type RNG64 = concept var rng
rng.randomUint64() is uint64
import mvarconcept
proc randomInt*(rng: var RNG64; max: int): int = 4
type MyRNG* = object
proc randomUint64*(self: var MyRNG): uint64 = 4
var r = MyRNG()
echo r.randomInt(5)
echo randomInt(5)