diff options
author | Paul Phillips <paulp@improving.org> | 2013-03-13 11:13:09 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-03-13 11:13:09 -0700 |
commit | 79d653a183bf74e27ec77cfd591e9649f154d41b (patch) | |
tree | 0eccdac7e0a326b22742469425d2a309755a23b1 /test/files/pos | |
parent | 184e0cc126c9499ea7572621663b14c37dba4734 (diff) | |
parent | 6ef63e49f8d762ac02367225ee737ea93f52a738 (diff) | |
download | scala-79d653a183bf74e27ec77cfd591e9649f154d41b.tar.gz scala-79d653a183bf74e27ec77cfd591e9649f154d41b.tar.bz2 scala-79d653a183bf74e27ec77cfd591e9649f154d41b.zip |
Merge pull request #2215 from paulp/issue/7228
SI-7228, bug in subtyping.
Diffstat (limited to 'test/files/pos')
-rw-r--r-- | test/files/pos/no-widen-locals.scala | 19 | ||||
-rw-r--r-- | test/files/pos/switch-small.flags | 1 | ||||
-rw-r--r-- | test/files/pos/t7228.scala | 75 |
3 files changed, 76 insertions, 19 deletions
diff --git a/test/files/pos/no-widen-locals.scala b/test/files/pos/no-widen-locals.scala deleted file mode 100644 index 013e63f0a2..0000000000 --- a/test/files/pos/no-widen-locals.scala +++ /dev/null @@ -1,19 +0,0 @@ -// Worked from r23262 until that was reverted somewhere -// around r25016. -import annotation.switch - -object Test { - def f(x: Int) = { - val X1 = 5 - val X2 = 10 - val X3 = 15 - val X4 = 20 - - (x: @switch) match { - case X1 => 1 - case X2 => 2 - case X3 => 3 - case X4 => 4 - } - } -} diff --git a/test/files/pos/switch-small.flags b/test/files/pos/switch-small.flags new file mode 100644 index 0000000000..85d8eb2ba2 --- /dev/null +++ b/test/files/pos/switch-small.flags @@ -0,0 +1 @@ +-Xfatal-warnings diff --git a/test/files/pos/t7228.scala b/test/files/pos/t7228.scala new file mode 100644 index 0000000000..5d936f6529 --- /dev/null +++ b/test/files/pos/t7228.scala @@ -0,0 +1,75 @@ +object AdaptWithWeaklyConformantType { + implicit class D(d: Double) { def double = d*2 } + + val x1: Int = 1 + var x2: Int = 2 + val x3 = 3 + var x4 = 4 + final val x5 = 5 + final var x6 = 6 + + def f1 = x1.double + def f2 = x2.double + def f3 = x3.double + def f4 = x4.double + def f5 = x5.double + def f6 = x6.double +} + +object AdaptAliasWithWeaklyConformantType { + implicit class D(d: Double) { def double = d*2 } + type T = Int + + val x1: T = 1 + var x2: T = 2 + val x3 = (3: T) + var x4 = (4: T) + final val x5 = (5: T) + final var x6 = (6: T) + + def f1 = x1.double + def f2 = x2.double + def f3 = x3.double + def f4 = x4.double + def f5 = x5.double + def f6 = x6.double +} + +object AdaptToAliasWithWeaklyConformantType { + type U = Double + implicit class D(d: U) { def double = d*2 } + + val x1: Int = 1 + var x2: Int = 2 + val x3 = (3: Int) + var x4 = (4: Int) + final val x5 = (5: Int) + final var x6 = (6: Int) + + def f1 = x1.double + def f2 = x2.double + def f3 = x3.double + def f4 = x4.double + def f5 = x5.double + def f6 = x6.double +} + +object AdaptAliasToAliasWithWeaklyConformantType { + type U = Double + type T = Int + implicit class D(d: U) { def double = d*2 } + + val x1: T = 1 + var x2: T = 2 + val x3 = (3: T) + var x4 = (4: T) + final val x5 = (5: T) + final var x6 = (6: T) + + def f1 = x1.double + def f2 = x2.double + def f3 = x3.double + def f4 = x4.double + def f5 = x5.double + def f6 = x6.double +} |