aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala3
-rw-r--r--tests/neg/i1145.scala11
2 files changed, 13 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index 84344dbb1..fdb92a40b 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -232,7 +232,8 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
}
}
val curImport = ctx.importInfo
- if (curImport != null && curImport.isRootImport && previous.exists) return previous
+ if (ctx.owner.is(Package) && curImport != null && curImport.isRootImport && previous.exists)
+ return previous // no more conflicts possible in this case
// would import of kind `prec` be not shadowed by a nested higher-precedence definition?
def isPossibleImport(prec: Int) =
prevPrec < prec || prevPrec == prec && (prevCtx.scope eq ctx.scope)
diff --git a/tests/neg/i1145.scala b/tests/neg/i1145.scala
new file mode 100644
index 000000000..b33300b91
--- /dev/null
+++ b/tests/neg/i1145.scala
@@ -0,0 +1,11 @@
+object A {
+ def x = 3
+
+ def y = {
+ import B._
+ x // error: ambiguous
+ }
+}
+object B {
+ def x = 3
+}