diff options
author | James Iry <jamesiry@gmail.com> | 2013-02-22 21:13:49 -0800 |
---|---|---|
committer | James Iry <jamesiry@gmail.com> | 2013-02-22 21:13:49 -0800 |
commit | 88b2915790a6a2ccfa490de6e36aa355148a42b2 (patch) | |
tree | db7922cc056b8c5b88980adf65d31f47ceb5ee86 /test/files/run | |
parent | b1f28195e1ed84c27ddfa18e4134a95cd55d588b (diff) | |
parent | 3d5758ca705be7f304d0a09f749e5742ec37231b (diff) | |
download | scala-88b2915790a6a2ccfa490de6e36aa355148a42b2.tar.gz scala-88b2915790a6a2ccfa490de6e36aa355148a42b2.tar.bz2 scala-88b2915790a6a2ccfa490de6e36aa355148a42b2.zip |
Merge pull request #2157 from retronym/ticket/7171
SI-7171 Consider prefix when assessing type finality.
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/t7171.scala | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/files/run/t7171.scala b/test/files/run/t7171.scala new file mode 100644 index 0000000000..97585b9860 --- /dev/null +++ b/test/files/run/t7171.scala @@ -0,0 +1,22 @@ +trait T { + final case class A() + + // Was: + // error: scrutinee is incompatible with pattern type; + // found : T.this.A + // required: T#A + def foo(a: T#A) = a match { + case _: A => true; case _ => false + } +} + +object Test extends App { + val t1 = new T {} + val t2 = new T {} + val a1 = new t1.A() + val a2 = new t1.A() + assert(t1.foo(a1)) + // as noted in the unchecked warning (tested in the corresponding neg test), + // the outer pointer isn't checked + assert(t1.foo(a2)) +} |