diff options
author | Paul Phillips <paulp@improving.org> | 2010-10-03 22:53:59 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-10-03 22:53:59 +0000 |
commit | a03131199109b51b4a3051aa2c016d516bec6e36 (patch) | |
tree | d4f6eb62ea09145f8a005ea85a54eb9bd3fc332d /test/files/run/tuple-match.check | |
parent | 2c59afc2c15ddcd124fd175eb30c0cdf9d98463b (diff) | |
download | scala-a03131199109b51b4a3051aa2c016d516bec6e36.tar.gz scala-a03131199109b51b4a3051aa2c016d516bec6e36.tar.bz2 scala-a03131199109b51b4a3051aa2c016d516bec6e36.zip |
Work on the pattern matcher.
patches for #3887 and #3888, but I determined that I could achieve the
same effect by deleting a bunch of code, so I did. This left only a few
lines in TransMatch, so I eliminated it, which led me to remember that
many places still reference non-existent phase transmatch, so those were
updated. Notes:
* This swaps equality tests on stable identifier patterns. They
have never conformed to the spec (as noted long ago in ticket #785)
which says "The pattern matches any value v such that r == v" whereas
until now the test being performed was v == r.
* An issue was introduced with specialization in that the implementation
of "isTupleType" in Definitions relied upon sym == TupleClass(elems.length).
This test is untrue for specialized tuples, causing mysterious behavior
because only some tuples are specialized. There is now "isTupleTypeOrSubtype"
although it seems likely the former implementation is unnecessary.
The issue is sidestepped if one uses "getProductArgs" to retrieve the element
types because it sifts through the base types for the Product symbol.
Closes #3887 and #3888, review by dmharrah.
Diffstat (limited to 'test/files/run/tuple-match.check')
-rw-r--r-- | test/files/run/tuple-match.check | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/files/run/tuple-match.check b/test/files/run/tuple-match.check new file mode 100644 index 0000000000..0c1ea0005b --- /dev/null +++ b/test/files/run/tuple-match.check @@ -0,0 +1,8 @@ +4, #3 +4, #2 +4, #4 +3, #2 +2, #2 +1, #1 +FOUR +THREE |