diff options
author | Paul Phillips <paulp@improving.org> | 2013-04-19 14:28:35 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-04-19 14:28:35 -0700 |
commit | 13788e97184c4f48a4378ec2e8717efa8b31874a (patch) | |
tree | d94db377fc2f7168f9c328de77a7df816435de67 /test | |
parent | 2ecd09fe1d79371ea5bcc529066d7bda0146cca3 (diff) | |
parent | 15e9ef8f083e0c0dc75bf51a0784f56df2e2bea8 (diff) | |
download | scala-13788e97184c4f48a4378ec2e8717efa8b31874a.tar.gz scala-13788e97184c4f48a4378ec2e8717efa8b31874a.tar.bz2 scala-13788e97184c4f48a4378ec2e8717efa8b31874a.zip |
Merge pull request #2402 from retronym/ticket/7377
SI-7377 Fix retypechecking of patterns on case companion alias
Diffstat (limited to 'test')
-rw-r--r-- | test/files/pos/t7377/Client_2.scala | 11 | ||||
-rw-r--r-- | test/files/pos/t7377/Macro_1.scala | 7 | ||||
-rw-r--r-- | test/files/pos/t7377b.flags | 1 | ||||
-rw-r--r-- | test/files/pos/t7377b.scala | 13 |
4 files changed, 32 insertions, 0 deletions
diff --git a/test/files/pos/t7377/Client_2.scala b/test/files/pos/t7377/Client_2.scala new file mode 100644 index 0000000000..5728956cca --- /dev/null +++ b/test/files/pos/t7377/Client_2.scala @@ -0,0 +1,11 @@ +object Test { + M.noop(List(1) match { case Nil => 0; case (x::xs) => x }) + + case class Foo(a: Int) + val FooAlias: Foo.type = Foo + M.noop(Foo(0) match { case FooAlias(_) => 0 }) + + case class Bar() + val BarAlias: Bar.type = Bar + M.noop(Bar() match { case BarAlias() => 0 }) +} diff --git a/test/files/pos/t7377/Macro_1.scala b/test/files/pos/t7377/Macro_1.scala new file mode 100644 index 0000000000..a0ec1d84af --- /dev/null +++ b/test/files/pos/t7377/Macro_1.scala @@ -0,0 +1,7 @@ +import language.experimental._ +import reflect.macros.Context + +object M { + def noopImpl[A](c: Context)(expr: c.Expr[A]): c.Expr[A] = c.Expr(c.typeCheck(c.resetLocalAttrs(expr.tree))) + def noop[A](expr: A): A = macro noopImpl[A] +} diff --git a/test/files/pos/t7377b.flags b/test/files/pos/t7377b.flags new file mode 100644 index 0000000000..cb8324a345 --- /dev/null +++ b/test/files/pos/t7377b.flags @@ -0,0 +1 @@ +-Xoldpatmat
\ No newline at end of file diff --git a/test/files/pos/t7377b.scala b/test/files/pos/t7377b.scala new file mode 100644 index 0000000000..aeee800d57 --- /dev/null +++ b/test/files/pos/t7377b.scala @@ -0,0 +1,13 @@ +object Test { + List(1) match { case Nil => 0; case (x::xs) => x } + + case class Foo(a: Int) + val FooAlias: Foo.type = Foo + Foo(0) match { case FooAlias(_) => 0 } + Foo(0) match { case Foo(_) => 0 } + + case class Bar() + val BarAlias: Bar.type = Bar + Bar() match { case BarAlias() => 0 } + Bar() match { case Bar() => 0 } +} |