mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
This commit is contained in:
@@ -132,3 +132,5 @@ This now needs to be written as:
|
||||
the new ``rand`` procs. The module now exports the state of the random
|
||||
number generator as type ``Rand`` so multiple threads can easily use their
|
||||
own random number generators that do not require locking.
|
||||
- The compiler is now more consistent in its treatment of ambiguous symbols:
|
||||
Types that shadow procs and vice versa are marked as ambiguous (bug #6693).
|
||||
|
||||
@@ -27,7 +27,7 @@ proc rawImportSymbol(c: PContext, s: PSym) =
|
||||
# check if we have already a symbol of the same name:
|
||||
var check = strTableGet(c.importTable.symbols, s.name)
|
||||
if check != nil and check.id != s.id:
|
||||
if s.kind notin OverloadableSyms:
|
||||
if s.kind notin OverloadableSyms or check.kind notin OverloadableSyms:
|
||||
# s and check need to be qualified:
|
||||
incl(c.ambiguousSymbols, s.id)
|
||||
incl(c.ambiguousSymbols, check.id)
|
||||
|
||||
@@ -2217,10 +2217,10 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode =
|
||||
# XXX think about this more (``set`` procs)
|
||||
if n.len == 2:
|
||||
result = semConv(c, n)
|
||||
elif n.len == 1:
|
||||
result = semObjConstr(c, n, flags)
|
||||
elif contains(c.ambiguousSymbols, s.id):
|
||||
errorUseQualifier(c, n.info, s)
|
||||
elif n.len == 1:
|
||||
result = semObjConstr(c, n, flags)
|
||||
elif s.magic == mNone: result = semDirectOp(c, n, flags)
|
||||
else: result = semMagic(c, n, s, flags)
|
||||
of skProc, skFunc, skMethod, skConverter, skIterator:
|
||||
|
||||
2
tests/modules/mrange.nim
Normal file
2
tests/modules/mrange.nim
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
proc range*() = echo "yo"
|
||||
9
tests/modules/tambig_range.nim
Normal file
9
tests/modules/tambig_range.nim
Normal file
@@ -0,0 +1,9 @@
|
||||
discard """
|
||||
errormsg: "ambiguous identifier: 'range' --use system.range or mrange.range"
|
||||
line: 9
|
||||
"""
|
||||
|
||||
# bug #6726
|
||||
import mrange
|
||||
|
||||
range()
|
||||
Reference in New Issue
Block a user