Changelog for Groovy 2.4.13
Bug
- [GROOVY-7315] - CompileStatic/TypeChecked cannot create non-static nested inner class using named-arg short-hand syntax
- [GROOVY-7721] - Static type checking fails when compiling against a Java8 interface with inherited methods
- [GROOVY-7995] - Short syntax of closure call invokes wrong closure if wrapped in another closure and @CompileStatic is applied
- [GROOVY-8042] - groovyConsole gets confused with a slashy string with an escaped forward slash
- [GROOVY-8112] - NPE in Groovy compiler when referencing @Field in aic
- [GROOVY-8130] - Cannot call private constructor error - @CompileStatic & default method argument
- [GROOVY-8195] - CompileStatic fails to infer correct type when using elvis operator
- [GROOVY-8208] - VariableExpressionTransformer does not set source position on property expressions
- [GROOVY-8213] - Closures are maybe not Threadsafe
- [GROOVY-8220] - GroovyCastException with CompileStatic
- [GROOVY-8222] - AsmClassGenerator does not set source positions on property expressions
- [GROOVY-8240] - Compilation error in @CompileStatic
- [GROOVY-8242] - Javadoc for Newify is missing some attribute values
- [GROOVY-8245] - @Newify(auto=false) causing error (in Groovy Web Console)
- [GROOVY-8246] - AIOOBE in StaticTypeCheckingVisitor with SAM
- [GROOVY-8247] - AIOOBE in StaticTypeCheckingVisitor with SAM and explicit closure parameter
- [GROOVY-8249] - @Newify on local variable declaration fails to resolve class expression
- [GROOVY-8252] - AIOOBE in combination of ncurry and rcurry
- [GROOVY-8255] - Odd problems with flow typing and generics in Groovy 2.4.12+
- [GROOVY-8260] - Static compilation requires casting inside instanceof check
- [GROOVY-8261] - Faulty getText implementations for ExpressionStatement & ThrowStatement
- [GROOVY-8262] - GrabAnnotationTransformation.visit has unreachable code
- [GROOVY-8268] - ReturnStatement.toString() doesn't include its expression
- [GROOVY-8271] - Take/TakeRight methods on iterator needlessly calls hasNext for one too many elements
- [GROOVY-8288] - [Sql] withBatch fails when batchSize == number of addBatch call
- [GROOVY-8289] - STC and default value in ctor is causing debugging error
- [GROOVY-8294] - Return 404 for non-existing paths in `TemplateServlet` when running from .war *
- [GROOVY-8313] - NullPointerException in TypeResolver when using generic array return type
- [GROOVY-8319] - Improve smart type on list expresions
- [GROOVY-8324] - Enabling groovy.indy.logging can lead to stack overflows
- [GROOVY-8325] - @CompileStatic calls wrong newInstance method.
- [GROOVY-8326] - @Override should not copied onto methods generated by applying @Memoize
- [GROOVY-8330] - Wrong 'Inconvertible types' error on casting interface
- [GROOVY-8336] - Static compilation requires casting inside instanceof check (additional cases)
- [GROOVY-8341] - GDK: eachDirRecurse and eachFileRecurse are NOT depth-first
- [GROOVY-8357] - EncodingGroovyMethods.decodeBase64() throws "bad character in base64 value" when meets \t \r
- [GROOVY-8369] - Enum property access not working with @CompileStatic
- [GROOVY-8380] - Regression in 2.4.13-SNAPSHOT: x & y, x | y, x ^ y lose typing information
- [GROOVY-8382] - Target Typing for empty collections should work for field/property initialisers
- [GROOVY-8383] - OptimizerVisitor#setConstField not @CS friendly
- [GROOVY-8384] - Regression in 2.4.13 (snapshot) with STC and intdiv
Dependency upgrade
- [GROOVY-8291] - Bump XStream version to 1.4.10
Documentation
- [GROOVY-8257] - Incorrect package for Mixin AST transform in online docs
- [GROOVY-8269] - Unclear/incorrect definition of default behavior for trait multiple inheritence conflicts
- [GROOVY-8374] - Incorrect modifier listed in Properties description
Improvement
- [GROOVY-8376] - Add @DelegatesTo to SwingBuilder methods that call setDelegate
New Feature
- [GROOVY-8236] - Report more meaningful error for versions of Groovy not supporting @Repeatable
* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)