Proposal: Elvis and Other Null-Safe Operators

Stephen Colebourne jodastephen at
Sun Apr 5 05:11:57 PDT 2009

Mark Mahieu wrote:
>> List list = null;
>> boolean b = list?.isEmpty() ?: true;
>> Stephen
> 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  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 mailing list