Changelog for Groovy 4.0.3
Bug
- [GROOVY-10092] - Compiler crash when trying to cast a boolean to float variable
- [GROOVY-10143] - NullPointerException while compiling a trait
- [GROOVY-10214] - Update from Groovy 3.0.8 to 3.0.9 breaks category class
- [GROOVY-10227] - STC computes an imprecise LUB when involving two parameterized types implementing the same interface
- [GROOVY-10266] - The diamond operator does not work when passing a value whose type is a type variable
- [GROOVY-10316] - Type variable inference does not work properly in nested diamond operators
- [GROOVY-10342] - STC is unable to infer type parameter of parameterized method call
- [GROOVY-10343] - STC fails to infer dependent type variable
- [GROOVY-10363] - STC produces compile-time error on encoutering bounded type parameter with conditional
- [GROOVY-10364] - STC does not type check method call when using bounded type parameter as a type argument
- [GROOVY-10365] - STC does not perform boxing when overriding method using a parameterized class with bounded type parameters
- [GROOVY-10535] - IF condition on empty Collection has different behavior than null Collection
- [GROOVY-10587] - Groovy resolves wrong annotation type
- [GROOVY-10593] - Groovydoc links to wrong type
- [GROOVY-10596] - IF-condition evaluation on the non-null object sometimes doesn't return true
- [GROOVY-10598] - BUG! exception in phase 'instruction selection' unexpected NullPointerException
- [GROOVY-10601] - Incompatible generic argument type when combining conditionals and bounded type parameters
- [GROOVY-10603] - LUB operation returns incorrect result
- [GROOVY-10607] - Groovy 4 fails to generate imports during joint compilation
- [GROOVY-10608] - The default toString for emulated records has caching enabled
- [GROOVY-10609] - The default equals and hashCode implementations for emulated records don't have the pojo flag set for generation
- [GROOVY-10611] - Static fields not initialized when accessed from another class
- [GROOVY-10619] - STC: fix support for unbounded wildcard references to self-bounded type parameters
- [GROOVY-10622] - Wrong type is inferred when involving a bounded type parameter in a parameterized method call
- [GROOVY-10624] - Nested diamond operators do not work correctly although the expected type argument is known
- [GROOVY-10626] - --enable-preview doesn't show in CLI/help for groovysh
- [GROOVY-10628] - Elvis assignment operator loses type information
- [GROOVY-10635] - Method references not working for record components in dynamic code
- [GROOVY-10637] - SC: implicit-this reference to outer class super property produces access error
- [GROOVY-10643] - CLONE - Consolidation of VMPlugin didn't account for API calls in the Groovy runtime
- [GROOVY-9853] - ClassFormatError using method reference on interface target
Dependency upgrade
- [GROOVY-10627] - Bump jackson to 2.13.3
- [GROOVY-10639] - Bump Spotbugs/Spotbugs annotations to 4.7.0 (build dependency)
- [GROOVY-10640] - Bump findsecbugs-plugin to 1.12.0 (build dependency)
- [GROOVY-10641] - Bump json-unit (test dependency) to 2.35.0
- [GROOVY-10642] - Bump creadur-rat-gradle plugin to 0.7.1 (build dependency)
Improvement
- [GROOVY-10599] - STC: support spread operator for list literals
- [GROOVY-10610] - Provide a better fallback for running without a security manager for groovysh on JDK18
- [GROOVY-10612] - Tweak plus operation for `Map` instance to align with Java
- [GROOVY-10618] - SC: further optimize cast to bool