diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-11-29 11:18:49 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-12-12 15:12:10 +0100 |
commit | c4e1b032d9bef4b9f9a87c3b774e74e192b1138a (patch) | |
tree | 1b2f393769a88646c9b3c03faf802b32157024f8 /test | |
parent | fcf1adad75553d25ea4e6afe37c971902b11f35e (diff) | |
download | scala-c4e1b032d9bef4b9f9a87c3b774e74e192b1138a.tar.gz scala-c4e1b032d9bef4b9f9a87c3b774e74e192b1138a.tar.bz2 scala-c4e1b032d9bef4b9f9a87c3b774e74e192b1138a.zip |
Test case for recently improved unchecked warning
Prior to https://github.com/scala/scala/pull/2848, the enclosed
test compiled without warning and printed:
true
false
Features interacting:
- implicit class tags to enable type patterns on abstract types
- type tests on compound types.
I think the unchecked warning is acceptable for now.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/patmat-classtag-compound.check | 6 | ||||
-rw-r--r-- | test/files/neg/patmat-classtag-compound.flags | 1 | ||||
-rw-r--r-- | test/files/neg/patmat-classtag-compound.scala | 17 |
3 files changed, 24 insertions, 0 deletions
diff --git a/test/files/neg/patmat-classtag-compound.check b/test/files/neg/patmat-classtag-compound.check new file mode 100644 index 0000000000..8a54c935bd --- /dev/null +++ b/test/files/neg/patmat-classtag-compound.check @@ -0,0 +1,6 @@ +patmat-classtag-compound.scala:12: warning: abstract type pattern A is unchecked since it is eliminated by erasure + case b: A with Bar => true + ^ +error: No warnings can be incurred under -Xfatal-warnings. +one warning found +one error found diff --git a/test/files/neg/patmat-classtag-compound.flags b/test/files/neg/patmat-classtag-compound.flags new file mode 100644 index 0000000000..144ddac9d3 --- /dev/null +++ b/test/files/neg/patmat-classtag-compound.flags @@ -0,0 +1 @@ +-unchecked -Xfatal-warnings diff --git a/test/files/neg/patmat-classtag-compound.scala b/test/files/neg/patmat-classtag-compound.scala new file mode 100644 index 0000000000..e2d0df0a02 --- /dev/null +++ b/test/files/neg/patmat-classtag-compound.scala @@ -0,0 +1,17 @@ +object Test extends App{ + trait Bar + trait Foo + // Failed to give an unchecked warning pre: https://github.com/scala/scala/pull/2848 + // + // Features interacting: + // - implicit class tags to enable type patterns on abstract types + // - type tests on compound types. + // + // We could try make these work together, but an unchecked warning is okay for now. + def x[A: reflect.ClassTag](a: Any): Boolean = a match{ + case b: A with Bar => true + case _ => false + } + println(x[Foo](new Bar{})) + println(x[String]("")) +} |