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
|
case n.kind
|
||||||
of nkIdent, nkAccQuoted:
|
of nkIdent, nkAccQuoted:
|
||||||
var s = lookUp(c, n)
|
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)
|
result = semSym(c, n, s, flags)
|
||||||
if s.kind in {skProc, skMethod, skConverter}+skIterators:
|
if s.kind in {skProc, skMethod, skConverter}+skIterators:
|
||||||
#performProcvarCheck(c, n, s)
|
#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
|
import mvarconcept
|
||||||
rng.randomUint64() is uint64
|
|
||||||
|
|
||||||
proc randomInt*(rng: var RNG64; max: int): int = 4
|
echo randomInt(5)
|
||||||
|
|
||||||
|
|
||||||
type MyRNG* = object
|
|
||||||
|
|
||||||
proc randomUint64*(self: var MyRNG): uint64 = 4
|
|
||||||
|
|
||||||
var r = MyRNG()
|
|
||||||
echo r.randomInt(5)
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue