diff options
author | Adriaan Moors <adriaan@lightbend.com> | 2017-04-08 10:13:21 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-08 10:13:21 -0700 |
commit | 1ef37f0bc18be5ed2ca8c33c0ea1912eed5dac3e (patch) | |
tree | 504be1953b98540b72cf4932b66a1c1143f4f00a /test | |
parent | 2261f3ef4f7b2e0d14b3c2463db5878029bc5d8e (diff) | |
parent | 0d88720aea13c3a1f136f0caa7346eefe64610ec (diff) | |
download | scala-1ef37f0bc18be5ed2ca8c33c0ea1912eed5dac3e.tar.gz scala-1ef37f0bc18be5ed2ca8c33c0ea1912eed5dac3e.tar.bz2 scala-1ef37f0bc18be5ed2ca8c33c0ea1912eed5dac3e.zip |
Merge pull request #5837 from adriaanm/merge-2.11.x-into-2.12.x
Catch up with 2.11.x
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/t6889.check | 7 | ||||
-rw-r--r-- | test/files/neg/t6889.scala | 1 | ||||
-rw-r--r-- | test/files/pos/t10206.scala | 15 | ||||
-rw-r--r-- | test/files/run/repl-colon-type.check | 8 |
4 files changed, 25 insertions, 6 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. +} diff --git a/test/files/run/repl-colon-type.check b/test/files/run/repl-colon-type.check index 5b7a3c7506..1217e8d8c2 100644 --- a/test/files/run/repl-colon-type.check +++ b/test/files/run/repl-colon-type.check @@ -75,7 +75,7 @@ TypeRef( ) TypeRef( TypeSymbol( - sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with FilteredTraversableInternal[A,List[A]] with Serializable + sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with Serializable ) args = List( @@ -142,7 +142,7 @@ TypeRef( args = List( TypeRef( TypeSymbol( - sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with FilteredTraversableInternal[A,List[A]] with Serializable + sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with Serializable ) args = List( @@ -175,7 +175,7 @@ PolyType( args = List( TypeRef( TypeSymbol( - sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with FilteredTraversableInternal[A,List[A]] with Serializable + sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with Serializable ) args = List(TypeParamTypeRef(TypeParam(T <: AnyVal))) @@ -198,7 +198,7 @@ PolyType( params = List(TermSymbol(x: T), TermSymbol(y: List[U])) resultType = TypeRef( TypeSymbol( - sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with FilteredTraversableInternal[A,List[A]] with Serializable + sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with Product with GenericTraversableTemplate[A,List] with LinearSeqOptimized[A,List[A]] with Serializable ) args = List(TypeParamTypeRef(TypeParam(U >: T))) |