Aladdin - Scala Bugtracking
[#70] project: compiler priority: medium category: feature
submitter assigned to status date submitted
Matthias Burak fixed 2003-07-14 02:06:58.0
subject Random pattern matching behavior
code
object T {
    def last(xs: List[Int]): Int = xs match {
    	case List(_*, x) => x
    	case _ => -1
    }
    def main(args: Array[String]) = {
    	System.out.println(last(List()));
    	System.out.println(last(List(1)));
    	System.out.println(last(List(1, 2)));
    	System.out.println(last(List(1, 2, 3)));
    }
}
what happened
Expected output:
-1
1
2
3
what expected Actual output:
-1
-1
2
-1
[back to overview]
Changes of this bug report
Burak  edited on  2003-07-14 10:07:10.0
This is the specified behaviour :-) "_*" is a valid identifier name, so is treated like a var. try "_ *" instead.
Burak  edited on  2003-07-14 10:09:43.0
I close this bug, even though "_ *" (with a space between _ and *) leads to a crash.
Burak  edited on  2003-07-14 12:18:19.0
ok, now the crash on "_ *" is fixed, too.