Details
-
New Feature
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
As part of GROOVY-8498 there is now support for the var keyword to provide compatibility with:
http://openjdk.java.net/jeps/286 (Java 10)
http://openjdk.java.net/jeps/323 (targeted for Java 11)
For dynamic Groovy, var is an alias for def. Under @CompileStatic, there are three fairly obvious potential behaviors that could make sense for Groovy:
- a direct alias for def in which case normal Groovy flow typing would apply (this is currently what is implemented but is more flexible than what Java developers might expect)
- similar to the alias for def in that it allows the inferred type to change as further instructions are executed but it would only be allowed to change to sub-types of the initially inferred type (needs further investigation but if possible would combine some of the nice aspects of Groovy def and Java var behavior)
- a direct equivalent of Java (this would be the most work and would differ greatly from Groovy behavior and in general would be hard to marry up with Groovy semantics)
We need to finalize the behavior we want before releasing non-alpha versions of Groovy 3.
Attachments
Issue Links
- is a clone of
-
GROOVY-8498 [PARROT] Support `var` keyword of Java10
- Closed
- is depended upon by
-
GROOVY-8582 CLONE - Support `var` keyword of Java10 (documentation)
- Closed