mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
fixes #2404
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user