amelentev / java-oo

Java Operator Overloading
http://amelentev.github.io/java-oo/
268 stars 31 forks source link

Elvis ?: [enhacement] #28

Open pablogrisafi1975 opened 9 years ago

pablogrisafi1975 commented 9 years ago

Thanks again for your extraordinary work. You said that adding new operator is difficult because of no extension points at that stage. What about the elvis ?: operator, better known as null coalescing operator ? you know, instead of String firstName = user == null ? null : user.getFirstName() i'd like to write String firstName = user?:getFirstName() I don't know if that counts as a new operator, since both chars already have a meaning

almson commented 9 years ago

It doesn't parse, so I'm guessing it cannot be done. But how about a lady gaga operator ?$:?

pablogrisafi1975 commented 9 years ago

is that possible? At first I thought it was a joke, but then I saw it as

String firstName = user ? $ : getFirstName() 

And I assume somehow $ is a magical variable that doesn't mess with the type system.

Mi ignorance about the whole source file -> class file process is almost perfect, so I don't know what can be done in each stage.

If it is possible, it is a nice workaround, and while somehow strange, it is way better than

String firstName = user == null ? null : user.getFirstName() 
almson commented 9 years ago

Yes, it should be possible if the $ variable is defined in the background (the way lombok defines 'val'). However, your last example is the null-safe dereference operator, which is different from elvis, and is usually ?.. Anyway, I don't know much about the limits of compiler plugins either.

On Mon, Jul 13, 2015, 8:44 AM Pablo Grisafi notifications@github.com wrote:

is that possible? At first I thought it was a joke, but then I saw it as

String firstName = user ? $ : getFirstName()

And I assume somehow $ is a magical variable that doesn't mess with the type system.

Mi ignorance about the whole source file -> class file process is almost perfect, so I don't know what can be done in each stage.

If it is possible, it is a nice workaround, and while somehow strange, it is way better than

String firstName = user == null ? null : user.getFirstName()

— Reply to this email directly or view it on GitHub https://github.com/amelentev/java-oo/issues/28#issuecomment-120916110.