fixes #2404
This commit is contained in:
parent
94f2d639b1
commit
43228a704f
3 changed files with 20 additions and 13 deletions
|
|
@ -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)
|
||||
|
|
|
|||
13
tests/concepts/mvarconcept.nim
Normal file
13
tests/concepts/mvarconcept.nim
Normal 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)
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue