Proposal: Elvis and Other Null-Safe Operators
jodastephen at gmail.com
Sun Apr 5 05:11:57 PDT 2009
Mark Mahieu wrote:
>> List list = null;
>> boolean b = list?.isEmpty() ?: true;
> I don't understand how that combination is supposed to work, given
> this part of the proposal:
> "A null-safe method invocation expression e1?.name(args) ... the type
> of the result is the same as the type of e1.name(args). It is an
> error if this is not a reference type."
> Doesn't that mean that the compiler should reject the expression
> 'list?.isEmpty()' ?
I hope Neal can comment as he wrote up the details of the proposal. I
did ask him about this when I first read it, and he replied that
primitives were handled in the "boxedValue ?: primitive" case. At the
time, I assumed that meant that the "list?.isEmpty() ?: false" was also
handled, but on re-reading today, you may be right.
I'd like the "list?.isEmpty() ?: false" to be handled though.
More information about the coin-dev