diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Contexts.scala | 2 | ||||
-rw-r--r-- | test/files/neg/t8024.check (renamed from test/pending/neg/t8024.check) | 2 | ||||
-rw-r--r-- | test/files/neg/t8024.scala (renamed from test/pending/neg/t8024.scala) | 8 | ||||
-rw-r--r-- | test/files/neg/t8024b.check | 6 | ||||
-rw-r--r-- | test/files/neg/t8024b.scala | 17 |
5 files changed, 29 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala index 2be6d92ed0..9702f49fc3 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala @@ -1108,7 +1108,7 @@ trait Contexts { self: Analyzer => impSym = NoSymbol // Otherwise they are irreconcilably ambiguous else - return ambiguousDefnAndImport(defSym.owner, imp1) + return ambiguousDefnAndImport(defSym.alternatives.head.owner, imp1) } // At this point only one or the other of defSym and impSym might be set. diff --git a/test/pending/neg/t8024.check b/test/files/neg/t8024.check index b5789bf44f..f04e4add9c 100644 --- a/test/pending/neg/t8024.check +++ b/test/files/neg/t8024.check @@ -1,5 +1,5 @@ t8024.scala:13: error: reference to sqrt is ambiguous; -it is both defined in object FastComplex and imported subsequently by +it is both defined in package package and imported subsequently by import java.lang.Math.sqrt sqrt(0d) ^ diff --git a/test/pending/neg/t8024.scala b/test/files/neg/t8024.scala index b2adeec94e..b4c2c5ebb9 100644 --- a/test/pending/neg/t8024.scala +++ b/test/files/neg/t8024.scala @@ -1,14 +1,14 @@ package p - + trait NRoot[A] - + object `package` { final def sqrt(x: Double): Double = Math.sqrt(x) final def sqrt[A](a: A)(implicit ev: NRoot[A]): A = ??? } - + object FastComplex { import java.lang.Math.sqrt - + sqrt(0d) } diff --git a/test/files/neg/t8024b.check b/test/files/neg/t8024b.check new file mode 100644 index 0000000000..9cd89bca53 --- /dev/null +++ b/test/files/neg/t8024b.check @@ -0,0 +1,6 @@ +t8024b.scala:15: error: reference to sqrt is ambiguous; +it is both defined in object FastComplex and imported subsequently by +import java.lang.Math.sqrt + sqrt(0d) + ^ +one error found diff --git a/test/files/neg/t8024b.scala b/test/files/neg/t8024b.scala new file mode 100644 index 0000000000..cf3d496365 --- /dev/null +++ b/test/files/neg/t8024b.scala @@ -0,0 +1,17 @@ +package p + +trait NRoot[A] + +object FastComplex { + final def sqrt(x: Double): Double = Math.sqrt(x) + final def sqrt[A](a: A)(implicit ev: NRoot[A]): A = ??? + + object Inner { + import java.lang.Math.sqrt + + // wrong message: + // error: reference to sqrt is ambiguous; + // it is both defined in object FastComplex and imported subsequently by + sqrt(0d) + } +} |