Changelog for Groovy 5.0.8
Bug
- [GROOVY-12134] - @Delegate regression: fails to skip a final method inherited from a precompiled superclass
- [GROOVY-12144] - AstNodeToScriptAdapter decompiler drops or corrupts several constructs when rendering AST back to source
- [GROOVY-12146] - Regression of GROOVY-11715 - Unordered Annotation members
- [GROOVY-12149] - Nondeterministic reflection order flows into generated bytecode, breaking reproducible builds
- [GROOVY-12154] - `@CompileStatic` lambda with a primitive-typed parameter targeting a generic functional interface fails at runtime with `LambdaConversionException`
- [GROOVY-12172] - Groovy 5.0.7 fails to compile or startup with UnsupportedOperationException
- [GROOVY-12184] - unsound cast for property access on union type (instanceof A || instanceof B) throws ClassCastException (fix for GROOVY_5_0_X)
- [GROOVY-12188] - Incorrect "abstract method not implemented … same name but different return type" error for a valid covariant override
- [GROOVY-12190] - @TypeChecked switch on enum: unqualified case constants pass type checking but throw MissingPropertyException at runtime
- [GROOVY-12203] - False positive "name clash" for a valid override when a `? super` wildcard uses a type that declares the same type variable name
Dependency upgrade
Improvement
- [GROOVY-12140] - box-identity divergence for primitive varargs with classic bytecode
- [GROOVY-12156] - chooseBestMethod returns candidates in identity-hash order, making static-compilation output path-dependent
- [GROOVY-12157] - Covariant bridge methods are emitted in hash order, not the order they are found
- [GROOVY-12159] - Synthetic class-literal fields and accessors are emitted in hash order, not the order the literals were encountered
- [GROOVY-12160] - @AnnotationCollector emits collected annotation members in hash order when the collector is precompiled
- [GROOVY-12201] - Add JDK 27 constant for GROOVY 5