summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2005-02-18 18:49:12 +0000
committerburaq <buraq@epfl.ch>2005-02-18 18:49:12 +0000
commita8a9dfda0975c426e621bdc195a59dd5165d0f31 (patch)
treeadb67596093d1683f3ffb868d08b86d0e06e5479
parentded727e045d47103ccd9a576d2e15bb1ca2695a2 (diff)
downloadscala-a8a9dfda0975c426e621bdc195a59dd5165d0f31.tar.gz
scala-a8a9dfda0975c426e621bdc195a59dd5165d0f31.tar.bz2
scala-a8a9dfda0975c426e621bdc195a59dd5165d0f31.zip
argh!!!! undoing those changes
-rw-r--r--sources/scala/tools/scalac/transformer/matching/PatternMatcher.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/sources/scala/tools/scalac/transformer/matching/PatternMatcher.scala b/sources/scala/tools/scalac/transformer/matching/PatternMatcher.scala
index 7f9c6f815e..0c9ec02ae7 100644
--- a/sources/scala/tools/scalac/transformer/matching/PatternMatcher.scala
+++ b/sources/scala/tools/scalac/transformer/matching/PatternMatcher.scala
@@ -242,9 +242,14 @@ class PatternMatcher(unit: CompilationUnit) extends PatternTool(unit) {
* - if true, tree.fn must be ignored. The analyzer ensures that the selector will be a subtype
* of fn; it thus assigns the expected type from the context (which is surely a subtype,
* but may have different flags etc.
+ *
+ * - so should be
+ * (( tree.args.length == 1 ) && tree.args(0).isInstanceOf[Sequence])
+ * but fails
*/
protected def isSeqApply( tree: Tree.Apply ): Boolean =
- (( tree.args.length == 1 ) && tree.args(0).isInstanceOf[Sequence]);
+ (( tree.args.length == 1 ) && tree.args(0).isInstanceOf[Sequence])
+ && (tree.getType().symbol().flags & Modifiers.CASE) == 0;
protected def patternNode(tree:Tree , header:Header , env: CaseEnv ): PatternNode = {
//Console.println("patternNode("+tree+","+header+")");