diff options
author | Martin Odersky <odersky@gmail.com> | 2015-11-05 15:24:48 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-11-05 15:26:14 +0100 |
commit | 990eff8a5905a3b3120bf1c150e218792acd8822 (patch) | |
tree | b5bf00db20863968b405bc3e53c09062206ad498 | |
parent | c16c7f6009c5c7255cf3768585c1115a82b5a38c (diff) | |
download | dotty-990eff8a5905a3b3120bf1c150e218792acd8822.tar.gz dotty-990eff8a5905a3b3120bf1c150e218792acd8822.tar.bz2 dotty-990eff8a5905a3b3120bf1c150e218792acd8822.zip |
Drop test that lower bound must be a subtype of upper bound.
As discussed in #780 and #525, the test is not needed. This makes
t1279a compile, which got moved now to pos. Fixes #780 and #915.
It also makes scala.List compile. Review by @smarter.
-rw-r--r-- | src/dotty/tools/dotc/typer/Typer.scala | 2 | ||||
-rw-r--r-- | test/dotc/scala-collections.whitelist | 3 | ||||
-rw-r--r-- | tests/pos/bounds.scala | 7 | ||||
-rw-r--r-- | tests/pos/t1279a.scala (renamed from tests/neg/t1279a.scala) | 0 |
4 files changed, 8 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala index 60ecaac0b..0fa9d1f4e 100644 --- a/src/dotty/tools/dotc/typer/Typer.scala +++ b/src/dotty/tools/dotc/typer/Typer.scala @@ -864,8 +864,6 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit val TypeBoundsTree(lo, hi) = desugar.typeBoundsTree(tree) val lo1 = typed(lo) val hi1 = typed(hi) - if (!(lo1.tpe <:< hi1.tpe)) - ctx.error(d"lower bound ${lo1.tpe} does not conform to upper bound ${hi1.tpe}", tree.pos) assignType(cpy.TypeBoundsTree(tree)(lo1, hi1), lo1, hi1) } diff --git a/test/dotc/scala-collections.whitelist b/test/dotc/scala-collections.whitelist index effefb3cc..205757525 100644 --- a/test/dotc/scala-collections.whitelist +++ b/test/dotc/scala-collections.whitelist @@ -112,8 +112,7 @@ ./scala-scala/src/library/scala/collection/immutable/Iterable.scala ./scala-scala/src/library/scala/collection/immutable/LinearSeq.scala -# https://github.com/lampepfl/dotty/issues/915 -# ./scala-scala/src/library/scala/collection/immutable/List.scala +./scala-scala/src/library/scala/collection/immutable/List.scala ./scala-scala/src/library/scala/collection/immutable/MapProxy.scala ./scala-scala/src/library/scala/collection/immutable/PagedSeq.scala ./scala-scala/src/library/scala/collection/immutable/Queue.scala diff --git a/tests/pos/bounds.scala b/tests/pos/bounds.scala index 26bc84a1b..625359f74 100644 --- a/tests/pos/bounds.scala +++ b/tests/pos/bounds.scala @@ -9,3 +9,10 @@ object ListMap { def empty[X, Y] = new ListMap[X, Y] def apply[A1, B2](elems: Tuple2[A1, B2]*): Map[A1, B2] = empty[A1,B2].++(elems.iterator) } + +class Test[A] { + + def f[B >: A <: AnyRef](x: A): AnyRef = (x: B) + def g[B >: String <: Int](x: B): Int = x + +} diff --git a/tests/neg/t1279a.scala b/tests/pos/t1279a.scala index 6d768d435..6d768d435 100644 --- a/tests/neg/t1279a.scala +++ b/tests/pos/t1279a.scala |