Changelog for Groovy 3.0.0-alpha-1
Bug
- [GROOVY-3525] - Null-safe dereference operator not available for subscript operator access to properties or array/list elements
- [GROOVY-4438] - Use of an inner enum causes compilation to go into infinite loop
- [GROOVY-7573] - Groovyc ant task does not release file handles
- [GROOVY-7721] - Static type checking fails when compiling against a Java8 interface with inherited methods
- [GROOVY-8277] - [Parrot]Fix gls.syntax.MethodCallValidationTest#testDeclarationInMethodCall
- [GROOVY-8288] - [Sql] withBatch fails when batchSize == number of addBatch call
- [GROOVY-8319] - Improve smart type on list expresions
- [GROOVY-8330] - Wrong 'Inconvertible types' error on casting interface
- [GROOVY-8377] - hashCode() generated by @EqualsAndHashCode is inefficient for instances with null fields or properties
- [GROOVY-8470] - dead loop when compiling 'enum in enum without semicolon'
Dependency upgrade
Improvement
- [GROOVY-3898] - [PARROT] Allow the specification of types when initializing multiple iteration variables in a "for" construct
- [GROOVY-7772] - Class.&instanceMethod had better to have same meaning of Class::instanceMethod of Java8
- [GROOVY-8312] - [PARROT] Deprecate useless features on unicode sequences
New Feature
- [GROOVY-2840] - [PARROT] Support "not" for in and instanceof
- [GROOVY-3791] - [PARROT] Support Java Array initializer syntax when not ambiguous
- [GROOVY-5306] - [PARROT] Add "a ?= 2" support (Elvis assignment): should be expanded to "a = a == null ? 2 : a"
- [GROOVY-5348] - [PARROT] Implement do/while loop
- [GROOVY-6336] - [PARROT] Support Java 7 ARM blocks
- [GROOVY-9128] - [PARROT] Provide proper support for the identical (===) and not identical (!==) operators
- [GROOVY-9129] - [PARROT] Support safe index operations for lists/arrays including multi-dimensional array/nested list access
Task