Changelog for Groovy 4.0.1
Bug
- [GROOVY-10290] - Dynamic Groovy code in Gradle doesn't compile because of $getLookup() method is not static
- [GROOVY-10458] - Path to a problematic file isn't shown in the error message sometimes if compilation fails with IndexOutOfBoundsException
- [GROOVY-10461] - Gradle multimodule project fails with NoClassDefFoundError in groovyjarjarasm.asm.signature.SignatureReader.parseType
- [GROOVY-10464] - Wrong cast for type parameter in generated stubs
- [GROOVY-10465] - Consolidation of VMPlugin didn't account for API calls in the Groovy runtime
- [GROOVY-10467] - Compilation fails with method detected as transient
- [GROOVY-10472] - @AutoImplement is failing when covariant returns are involved
- [GROOVY-10478] - Groovy4: java.lang.VerifyError: Bad invokespecial instruction: interface method reference is in an indirect superinterface.
- [GROOVY-10483] - Source encoding incorrectly set in v4.0.0
- [GROOVY-10484] - NamedVariant: NamedParam not checked when added by transform
- [GROOVY-10496] - Wrong IntRange.by(...) behaviour for left-open ranges
- [GROOVY-10497] - NamedVariant: default value overrides supplied value if it's falsy
- [GROOVY-10500] - NamedVariant: non-trivial default value of NamedDelegate property
- [GROOVY-10502] - NamedVariant: improve consistency of default value treatment
- [GROOVY-10519] - v9 ClassFinder closes existing FileSystems that it doesn't own
- [GROOVY-5726] - Source locations of command chain expressions
- [GROOVY-6510] - Problems with implicit closures inside of @Category-annotated classes
- [GROOVY-7802] - MapWithDefault should be able to be configured to not store its default value
- [GROOVY-8448] - Local variable is accessible via explicit this
- [GROOVY-9259] - Implementing Groovy interface with default methods can cause compile issues.
Dependency upgrade
Documentation
- [GROOVY-10468] - Ability to define system properties for groovyc using CompilerConfiguration
- [GROOVY-10508] - DefaultGroovyMethods.get() unexpectedly puts the default value into the origin map
Improvement
- [GROOVY-10476] - STC: for-each loop on iterable-like types
- [GROOVY-10477] - SC: optimize for-in loop on array with dynamic variable
- [GROOVY-10505] - TraitComposer should mark generated methods as @Generated
- [GROOVY-8133] - Static type checking failure for streams and spread operator
New Feature
- [GROOVY-10512] - groovy.sql.Sql : provide a way to get the SQLWarning of a Statement
Task
- [GROOVY-10479] - Disable Ant tests which don't fork under JDK18