Changelog for Groovy 4.0.0-rc-1
Bug
- [GROOVY-7473] - inefficient code generation
- [GROOVY-8693] - Calling indirect default interface methods fails both dynamic/static compiled *
- [GROOVY-9910] - STC: no error for incorrect parameter type if not referenced in lambda
- [GROOVY-10277] - STC fails to catch type error on the return type of lambdas
- [GROOVY-10339] - STC instantiates parameterized function with a wrong type leading to unsoundness
- [GROOVY-10347] - STC: lowed bound wildcard inference produces false positives
- [GROOVY-10351] - Wrong type argument is inferred on combining use-site variance and diamond operator
- [GROOVY-10375] - SC: cast exception for private property access from lambda
- [GROOVY-10379] - Error for super class and super interface methods of same name
- [GROOVY-10380] - SC: IncompatibleClassChangeError when calling interface default method from non-public interface
- [GROOVY-10405] - @AutoClone breaks in Java17 for File properties
- [GROOVY-10429] - StringBuilder misses setLength method in Java17
Dependency upgrade
- [GROOVY-10348] - Bump picocli to 4.6.2
- [GROOVY-10349] - Bump gradle to 7.3-rc-5
- [GROOVY-10366] - Bump gradle to 7.3
- [GROOVY-10384] - Bump checkstyle to 9.1
- [GROOVY-10385] - Bump japicmp plugin to 0.3.0
- [GROOVY-10386] - Bump Spotbugs/Spotbugs annotations to 4.5.0
- [GROOVY-10387] - Bump gson (test dependency) to 2.8.9
- [GROOVY-10388] - Bump json-unit (test dependency) version to 2.28.0
- [GROOVY-10389] - Bump logback to 1.2.7
- [GROOVY-10390] - Bump jqwik (test dependency) to 1.6.0
Improvement
- [GROOVY-7001] - generics info can be improved for DGM methods with a collector
- [GROOVY-10341] - "super" invocations of abstract methods should be caught at compile time with static compilation enabled
- [GROOVY-10352] - Java8 does not load enum values into annotation attributes
- [GROOVY-10353] - StaticTypeCheckingSupport#evaluateExpression can provide lightweight evaluation for simple expressions
- [GROOVY-10361] - TupleConstructor could be improved to have a smarter mode for handling default values
- [GROOVY-10372] - STC: check lambda or closure parameter types against target method
- [GROOVY-10377] - SC: === and !== compiled to ScriptBytecodeAdapter#compareIdentical
- [GROOVY-10378] - Provide a mechanism to prioritise AST transforms running at the same stage
* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)