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
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