| [#246] | project: compiler | priority: high | category: bug | |
|---|---|---|---|---|
| submitter | assigned to | status | date submitted | |
| Burak | Martin | fixed | 2003-12-03 14:08:28.0 | |
| subject | parser bug, sequence creation | |||
| code |
object create {
val z = 1;
val y = 2;
val zy = List( z, y ); // ok
val zy2 = List( zy:_* ); // ok
// (a) illegal, but passes the parser
// crashes in uncurry later on
val oops = List( zy:_*, 2,3,4 );
// (b) should be legal, but passes not
val help = List( 2,3,4, zy:_* );
}
|
|||
| what happened | see code. |
|||
| what expected |
Exprs ::= Expr {`,' Expr} [`:' `_' `*']
(or corresponding rule in postfixExpr() case...)
|
|||
| [back to overview] | ||||
| Burak edited on 2003-12-03 14:09:09.0 |
| priority of this is high, because the totality of scala XML processing depends on this. |
| Burak edited on 2003-12-03 16:44:05.0 |
|
I fixed Parser.java and Parser.scala myself, since the (trivial) escaping code in UnCurry did already the right thing so later phases are untouched.
Any objections ? |
| Burak edited on 2003-12-03 18:19:51.0 |
Well, UnCurry needed a slight change as well, in order to repeat (forbidden) mixing of :_* with values.
E.g.
List(1,2,3,otherlist:_*)is not possible, though we could do something about it. |