summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2017-03-21 11:53:54 -0700
committerGitHub <noreply@github.com>2017-03-21 11:53:54 -0700
commit99f41a15d16be6707b6c33b5a16093e016db81eb (patch)
treeec2a2d24fb84fddc2084b66d64c764d34418b2bc /test
parent363d9e58761c87e2d30f52d60e11b8f0ea6d45ca (diff)
parent849d09b9e10d025df7f91494315f927f68bc9dd6 (diff)
downloadscala-99f41a15d16be6707b6c33b5a16093e016db81eb.tar.gz
scala-99f41a15d16be6707b6c33b5a16093e016db81eb.tar.bz2
scala-99f41a15d16be6707b6c33b5a16093e016db81eb.zip
Merge pull request #5736 from adriaanm/t10206
SI-10206 tighten fix for SI-6889
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/t6889.check7
-rw-r--r--test/files/neg/t6889.scala1
-rw-r--r--test/files/pos/t10206.scala15
3 files changed, 21 insertions, 2 deletions
diff --git a/test/files/neg/t6889.check b/test/files/neg/t6889.check
index a77e8a010c..c14c3b09c0 100644
--- a/test/files/neg/t6889.check
+++ b/test/files/neg/t6889.check
@@ -1,7 +1,10 @@
t6889.scala:16: error: the result type of an implicit conversion must be more specific than AnyRef
def f(x: Dingo): AnyRef = x // fail - no conversion to AnyRef
^
-t6889.scala:17: error: an expression of type Null is ineligible for implicit conversion
+t6889.scala:17: error: the result type of an implicit conversion must be more specific than Object
+ def f2(x: Dingo): Object = x // fail - no conversion to Object
+ ^
+t6889.scala:18: error: an expression of type Null is ineligible for implicit conversion
var x: Int = null // fail - no conversion from Null
^
-two errors found
+three errors found
diff --git a/test/files/neg/t6889.scala b/test/files/neg/t6889.scala
index ef1963669c..3fc235bf7e 100644
--- a/test/files/neg/t6889.scala
+++ b/test/files/neg/t6889.scala
@@ -14,5 +14,6 @@ object Test {
trait Dingo extends Any with bippy.Bippy[foo.unrelated.Unrelated]
def f(x: Dingo): AnyRef = x // fail - no conversion to AnyRef
+ def f2(x: Dingo): Object = x // fail - no conversion to Object
var x: Int = null // fail - no conversion from Null
}
diff --git a/test/files/pos/t10206.scala b/test/files/pos/t10206.scala
new file mode 100644
index 0000000000..3ddd1ea2fd
--- /dev/null
+++ b/test/files/pos/t10206.scala
@@ -0,0 +1,15 @@
+class Foo(val bar: String)
+
+object Foo {
+ implicit class Enrich(foo: Foo) {
+ def clone(x: Int, y: Int): Int = x + y
+ }
+}
+
+object Main extends App {
+ val foo = new Foo("hello")
+ println(foo.clone(1, 2)) // <- does not compile
+ // the implicit view was being disqualified because a new check in the compiler
+ // that implicit views must not target Any or AnyRef considered an implicit search
+ // for `foo.type => ?{def clone: ?}` to targeted AnyRef.
+}