summaryrefslogtreecommitdiff
path: root/test/files/neg/t6667.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-11-22 14:20:18 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-11-26 21:46:40 +0100
commit9aa6ded8e01179e7d55144de273b39f3a0b2d3ec (patch)
tree4746ee626e95c54b4a1e7e0339afae68c60dc0ff /test/files/neg/t6667.scala
parent3719f790f301852b85dcd95b401c921e286d4e1e (diff)
downloadscala-9aa6ded8e01179e7d55144de273b39f3a0b2d3ec.tar.gz
scala-9aa6ded8e01179e7d55144de273b39f3a0b2d3ec.tar.bz2
scala-9aa6ded8e01179e7d55144de273b39f3a0b2d3ec.zip
SI-6667 Abort after any ambiguous in-scope implicit
Rather than continuing on to a search of implicits of the expected type. Previously, the companion implicits were searched if the the caller was running the implicit search in silent mode, for example if searching for an implicit parameter in an application which has an expected type. After this commit, the behaviour is consistent, regardless on silent/non-silent typing.
Diffstat (limited to 'test/files/neg/t6667.scala')
-rw-r--r--test/files/neg/t6667.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/files/neg/t6667.scala b/test/files/neg/t6667.scala
new file mode 100644
index 0000000000..fb857ebd33
--- /dev/null
+++ b/test/files/neg/t6667.scala
@@ -0,0 +1,10 @@
+class C
+object C {
+ implicit def companion = new C
+}
+
+object Test {
+ implicit val inScope1, inScope2 = new C
+ implicitly[C]: Unit // C.companion was used; whereas the ambiguity should abort the implicit search.
+ implicitly[C] // ambiguity reported, rather than falling back to C.companion
+}