summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Namers.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Namers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 2ebfdc7426..a94205e07a 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -315,6 +315,7 @@ trait Namers { self: Analyzer =>
}
def check(to: Name) = {
val e = context.scope.lookupEntry(to)
+
if (e != null && e.owner == context.scope && e.sym.exists)
warnRedundant(e.sym)
else if (context ne context.enclClass) {
@@ -334,7 +335,7 @@ trait Namers { self: Analyzer =>
}
}
def checkSelector(s: ImportSelector) = {
- val ImportSelector(from, _, to, _) = s
+ val ImportSelector(from, fromPos, to, _) = s
if (from != nme.WILDCARD && base != ErrorType) {
if (isValid(from)) {
if (currentRun.compileSourceFor(expr, from)) {
@@ -345,7 +346,10 @@ trait Namers { self: Analyzer =>
else if (!nme.isModuleName(from) || isValid(nme.stripModuleSuffix(from)))
notAMemberError(tree.pos, expr, from)
}
- checkNotRedundant(tree.pos, from, to)
+ // Setting the position at the import means that if there is more
+ // than one hidden names, the second will not be warned
+ // So it is the position of the actual hidden name.
+ checkNotRedundant(tree.pos withPoint fromPos, from, to)
}
}
def noDuplicates(names: List[Name], message: String) {