diff options
author | Paul Phillips <paulp@improving.org> | 2010-05-26 00:04:17 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-05-26 00:04:17 +0000 |
commit | 910adc615aba4770361ff99c45a45453acb580c6 (patch) | |
tree | 7bb1d87fd79e5b834679d12695f0bdad9de4ebdc /test | |
parent | 97abbae86af0c2b508583394e088291ac8241f29 (diff) | |
download | scala-910adc615aba4770361ff99c45a45453acb580c6.tar.gz scala-910adc615aba4770361ff99c45a45453acb580c6.tar.bz2 scala-910adc615aba4770361ff99c45a45453acb580c6.zip |
Added a migration warning for matches and insta...
Added a migration warning for matches and instance tests when it might
be an Array/Seq test whose answer has changed. Review by odersky.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/array-not-seq.check | 16 | ||||
-rw-r--r-- | test/files/neg/array-not-seq.flags | 1 | ||||
-rw-r--r-- | test/files/neg/array-not-seq.scala | 26 |
3 files changed, 43 insertions, 0 deletions
diff --git a/test/files/neg/array-not-seq.check b/test/files/neg/array-not-seq.check new file mode 100644 index 0000000000..bd72bb4e13 --- /dev/null +++ b/test/files/neg/array-not-seq.check @@ -0,0 +1,16 @@ +array-not-seq.scala:2: error: An Array will no longer match as Seq[_]. + def f1(x: Any) = x.isInstanceOf[Seq[_]] + ^ +array-not-seq.scala:4: error: An Array will no longer match as Seq[_]. + case _: Seq[_] => true + ^ +error: An Array will no longer match as Seq[_]. +array-not-seq.scala:16: error: An Array will no longer match as Seq[_]. + case (Some(_: Seq[_]), Nil, _) => 1 + ^ +error: An Array will no longer match as Seq[_]. +array-not-seq.scala:15: error: An Array will no longer match as Seq[_]. + def f5(x1: Any, x2: Any, x3: AnyRef) = (x1, x2, x3) match { + ^ +error: An Array will no longer match as Seq[_]. +7 errors found diff --git a/test/files/neg/array-not-seq.flags b/test/files/neg/array-not-seq.flags new file mode 100644 index 0000000000..4e9f7e4a56 --- /dev/null +++ b/test/files/neg/array-not-seq.flags @@ -0,0 +1 @@ +-Xmigration -Xfatal-warnings
\ No newline at end of file diff --git a/test/files/neg/array-not-seq.scala b/test/files/neg/array-not-seq.scala new file mode 100644 index 0000000000..07a2898d88 --- /dev/null +++ b/test/files/neg/array-not-seq.scala @@ -0,0 +1,26 @@ +object Test { + def f1(x: Any) = x.isInstanceOf[Seq[_]] + def f2(x: Any) = x match { + case _: Seq[_] => true + case _ => false + } + + def f3(x: Any) = x match { + case _: Array[_] => true + case _ => false + } + + def f4(x: Any) = x.isInstanceOf[Traversable[_]] + + def f5(x1: Any, x2: Any, x3: AnyRef) = (x1, x2, x3) match { + case (Some(_: Seq[_]), Nil, _) => 1 + case (None, List(_: List[_], _), _) => 2 + case _ => 3 + } + + def main(args: Array[String]): Unit = { + // println(f1(Array(1))) + // println(f2(Array(1))) + // println(f3(Array(1)) + } +} |