This commit is contained in:
Araq
2017-12-28 00:50:45 +01:00
parent 0b0baece89
commit f3a895f043
4 changed files with 16 additions and 11 deletions

View File

@@ -445,13 +445,14 @@ proc nextOverloadIter*(o: var TOverloadIter, c: PContext, n: PNode): PSym =
if result != nil and result.kind == skStub: loadStub(result)
proc pickSym*(c: PContext, n: PNode; kind: TSymKind;
proc pickSym*(c: PContext, n: PNode; kinds: set[TSymKind];
flags: TSymFlags = {}): PSym =
var o: TOverloadIter
var a = initOverloadIter(o, c, n)
while a != nil:
if a.kind == kind and flags <= a.flags:
return a
if a.kind in kinds and flags <= a.flags:
if result == nil: result = a
else: return nil # ambiguous
a = nextOverloadIter(o, c, n)
proc isInfixAs*(n: PNode): bool =

View File

@@ -320,11 +320,8 @@ proc semTypeIdent(c: PContext, n: PNode): PSym =
if n.kind == nkSym:
result = getGenSym(c, n.sym)
else:
when defined(nimfix):
result = pickSym(c, n, skType)
if result.isNil:
result = qualifiedLookUp(c, n, {checkAmbiguity, checkUndeclared})
else:
result = pickSym(c, n, {skType, skGenericParam})
if result.isNil:
result = qualifiedLookUp(c, n, {checkAmbiguity, checkUndeclared})
if result != nil:
markUsed(n.info, result, c.graph.usageSym)

View File

@@ -1,2 +1,5 @@
proc range*() = echo "yo"
proc range*() = echo "yo"
proc set*(a: int) =
discard

View File

@@ -1,9 +1,13 @@
discard """
errormsg: "ambiguous identifier: 'range' --use system.range or mrange.range"
line: 9
line: 13
"""
# bug #6726
import mrange
# bug #6965
type SomeObj = object
s: set[int8]
# bug #6726
range()