Changelog for Groovy 4.0.12


  • [GROOVY-10920] - Compiler exception with void expression as while condition with CompileStatic
  • [GROOVY-10972] - Issue in resolving overloaded method reference
  • [GROOVY-10994] - Fail to resolve method reference with generics
  • [GROOVY-10996] - Compilation issue in Groovy 4
  • [GROOVY-11001] - AIOOBE when using method reference in nested lambda
  • [GROOVY-11003] - Cannot find method with variable arguments when using fully qualified class names
  • [GROOVY-11007] - STC: instanceof guard for property loses type information
  • [GROOVY-11009] - STC resolves wrong method reference
  • [GROOVY-11011] - SC: array instanceof guard and length or subscript
  • [GROOVY-11012] - Wrong type is inferred when calling method defined in the parent class
  • [GROOVY-11019] - joint compilation: public static final string does not compile
  • [GROOVY-11020] - NullPointerException in instruction selection when calling parameterized function whose type parameter has an upper bound corresponding to a SAM type
  • [GROOVY-11023] - SC: IncompatibleClassChangeError when closure direct-targets extension method
  • [GROOVY-11024] - STC NPE when using Collectors.toMap() with a generic result
  • [GROOVY-11028] - STC: empty map (or list) literal does not type check like emptyMap()
  • [GROOVY-11029] - SC: super property is not accessible by a subclass that defines a getter and setter
  • [GROOVY-11030] - CompileStatic: string concatenation in method parameter default value results in NoSuchMethodError
  • [GROOVY-11036] - StackOverflowError in cyclic interface inheritance
  • [GROOVY-11041] - Incorrect property handling for records
  • [GROOVY-11044] - SC: property access within closure produces cast exception

Dependency upgrade


  • [GROOVY-10758] - Improve error message when using generic ClassNodes in ASTT
  • [GROOVY-11015] - [GINQ]Leverage the power of Virtual Thread
  • [GROOVY-11040] - Optimisations for bytecode for record generated methods