> How does one distinguish between an absent value and a value of null (e.g., 
> as a list element)?

In the current ForStatement:

"for (i, x in y)"
getIndexVariable() returns i (or null if "i," is omitted)
getValueVariable() returns x
getCollectionExpression() returns y

"for (int i = 0; i < n; ++i) ..."
getIndexVariable() returns null
getValueVariable() returns null
getCollectionExpression() returns a ClosureListExpression that contains all of 
"int i = 0; i < n; ++i" — why it's called "closure list" must be a legacy thing

Reply via email to