diff options
-rw-r--r-- | test/files/pos/t4911.flags | 1 | ||||
-rw-r--r-- | test/files/pos/t4911.scala | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/test/files/pos/t4911.flags b/test/files/pos/t4911.flags new file mode 100644 index 0000000000..779916d58f --- /dev/null +++ b/test/files/pos/t4911.flags @@ -0,0 +1 @@ +-unchecked -Xfatal-warnings
\ No newline at end of file diff --git a/test/files/pos/t4911.scala b/test/files/pos/t4911.scala new file mode 100644 index 0000000000..66c867a37f --- /dev/null +++ b/test/files/pos/t4911.scala @@ -0,0 +1,16 @@ +import language._ + +object Test { + class Foo[T](val x: T) ; object Foo { def unapply[T](x: Foo[T]) = Some(x.x) } + def f1[T](x: Foo[T]) = x match { case Foo(y) => y } + def f2[M[_], T](x: M[T]) = x match { case Foo(y) => y } + + case class Bar[T](x: T) + def f3[T](x: Bar[T]) = x match { case Bar(y) => y } + def f4[M[_], T](x: M[T]) = x match { case Bar(y) => y } +} +// +// ./b.scala:4: warning: non variable type-argument T in type pattern Test.Foo[T] is unchecked since it is eliminated by erasure +// def f2[M[_], T](x: M[T]) = x match { case Foo(y) => y } +// ^ +// one warning found
\ No newline at end of file |