diff options
author | Paul Phillips <paulp@improving.org> | 2013-06-03 22:12:10 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-06-03 22:12:10 -0700 |
commit | fb06073844f388ec4c007b4c08e7d508fc88d5ab (patch) | |
tree | 12062d7a8fce298bc5bbdb7b83fe8c930d18282b /test/files | |
parent | a04977736c007fc7976c10c7fa5c74ae67902b92 (diff) | |
parent | 278305a7f60c46515c2133d11f7c561e972ef705 (diff) | |
download | scala-fb06073844f388ec4c007b4c08e7d508fc88d5ab.tar.gz scala-fb06073844f388ec4c007b4c08e7d508fc88d5ab.tar.bz2 scala-fb06073844f388ec4c007b4c08e7d508fc88d5ab.zip |
Merge pull request #2624 from paulp/pr/revert-14534c693d
Revert "SI-7517 type constructors too eagerly normalized."
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/t2994a.check | 7 | ||||
-rw-r--r-- | test/files/neg/t2994a.scala | 27 | ||||
-rw-r--r-- | test/files/pos/t2994a.scala | 8 | ||||
-rw-r--r-- | test/files/pos/t2994c.scala | 8 | ||||
-rw-r--r-- | test/files/pos/t7517.scala | 22 | ||||
-rw-r--r-- | test/files/run/t6113.check | 2 |
6 files changed, 6 insertions, 68 deletions
diff --git a/test/files/neg/t2994a.check b/test/files/neg/t2994a.check deleted file mode 100644 index 24538a50c3..0000000000 --- a/test/files/neg/t2994a.check +++ /dev/null @@ -1,7 +0,0 @@ -t2994a.scala:24: error: kinds of the type arguments (m#a,s) do not conform to the expected kinds of the type parameters (type n,type s) in trait curry. -m#a's type parameters do not match type n's expected parameters: -type _'s bounds <: Naturals.NAT are stricter than type _'s declared bounds >: Nothing <: Any, type z's bounds <: Naturals.NAT are stricter than type _'s declared bounds >: Nothing <: Any, s's type parameters do not match type s's expected parameters: -type _'s bounds <: Naturals.NAT are stricter than type _ (in trait curry)'s declared bounds >: Nothing <: Any - type a[s[_ <: NAT] <: NAT, z <: NAT] = n#a[curry[m#a, s]#f, z] - ^ -one error found diff --git a/test/files/neg/t2994a.scala b/test/files/neg/t2994a.scala deleted file mode 100644 index f2d57c34ca..0000000000 --- a/test/files/neg/t2994a.scala +++ /dev/null @@ -1,27 +0,0 @@ -object Naturals { - trait NAT { - type a[s[_ <: NAT] <: NAT, z <: NAT] <: NAT - type v = a[SUCC, ZERO] - } - final class ZERO extends NAT { - type a[s[_ <: NAT] <: NAT, z <: NAT] = z - } - final class SUCC[n <: NAT] extends NAT { - type a[s[_ <: NAT] <: NAT, z <: NAT] = s[n#a[s, z]] - } - type _0 = ZERO - type _1 = SUCC[_0] - type _2 = SUCC[_1] - type _3 = SUCC[_2] - type _4 = SUCC[_3] - type _5 = SUCC[_4] - type _6 = SUCC[_5] - - - // crashes scala-2.8.0 beta1 - trait MUL[n <: NAT, m <: NAT] extends NAT { - trait curry[n[_[_], _], s[_]] { type f[z <: NAT] = n[s, z] } - type a[s[_ <: NAT] <: NAT, z <: NAT] = n#a[curry[m#a, s]#f, z] - } - -}
\ No newline at end of file diff --git a/test/files/pos/t2994a.scala b/test/files/pos/t2994a.scala index 15456991d0..f2d57c34ca 100644 --- a/test/files/pos/t2994a.scala +++ b/test/files/pos/t2994a.scala @@ -17,9 +17,11 @@ object Naturals { type _5 = SUCC[_4] type _6 = SUCC[_5] - // crashes scala-2.8.0 beta1 + + // crashes scala-2.8.0 beta1 trait MUL[n <: NAT, m <: NAT] extends NAT { - trait curry[ n[ m[x1 <: NAT], x2 <: NAT], s[x3 <: NAT] ] { type f[z <: NAT] = n[s, z] } + trait curry[n[_[_], _], s[_]] { type f[z <: NAT] = n[s, z] } type a[s[_ <: NAT] <: NAT, z <: NAT] = n#a[curry[m#a, s]#f, z] } -} + +}
\ No newline at end of file diff --git a/test/files/pos/t2994c.scala b/test/files/pos/t2994c.scala deleted file mode 100644 index 1ad3655c89..0000000000 --- a/test/files/pos/t2994c.scala +++ /dev/null @@ -1,8 +0,0 @@ -object Test { - trait Bar[X[_]] - trait Qux[S[_] <: Bar[S], T] - trait Baz[S[_] <: Bar[S]] { - type Apply[T] = Qux[S,T] - } - trait Foo[/**/V[_] <: Bar[V]/**/] extends Bar[Baz[V]#Apply] -} diff --git a/test/files/pos/t7517.scala b/test/files/pos/t7517.scala deleted file mode 100644 index 29bd0936ce..0000000000 --- a/test/files/pos/t7517.scala +++ /dev/null @@ -1,22 +0,0 @@ -trait Box[ K[A[x]] ] - -object Box { - // type constructor composition - sealed trait ∙[A[_], B[_]] { type l[T] = A[B[T]] } - - // composes type constructors inside K - type SplitBox[K[A[x]], B[x]] = Box[ ({ type l[A[x]] = K[ (A ∙ B)#l] })#l ] - - def split[ K[A[x]], B[x] ](base: Box[K]): SplitBox[K,B] = ??? - - class Composed[B[_], K[A[x]] ] { - val box: Box[K] = ??? - - type Split[ A[x] ] = K[ (A ∙ B)#l ] - val a: Box[Split] = Box.split(box) - - //Either of these work: - //val a: Box[Split] = Box.split[K,B](box) - //val a: Box[ ({ type l[A[x]] = K[ (A ∙ B)#l ] })#l ] = Box.split(box) - } -} diff --git a/test/files/run/t6113.check b/test/files/run/t6113.check index 56c11d1fab..65fb3cd090 100644 --- a/test/files/run/t6113.check +++ b/test/files/run/t6113.check @@ -1 +1 @@ -Foo[AnyRef{type l[X] = (Int, X)}#l] +Foo[[X](Int, X)] |