Changelog for Groovy 4.0.22

Bug

  • [GROOVY-11144] - MissingPropertyEx when accessing private static field in closure of same class
  • [GROOVY-11223] - STC: error message for inaccessible setter is not too helpful
  • [GROOVY-11352] - Reference to this in ctor before this/super call false positive
  • [GROOVY-11356] - STC: missing property error for implicit-this reference to private super field or method
  • [GROOVY-11358] - STC: error for abstract class private or package-private field access
  • [GROOVY-11362] - implicit type of catch parameter is written as Object
  • [GROOVY-11363] - Bootstrap method error for method reference used with a primitive literal
  • [GROOVY-11364] - STC loses generic specialization on inheritance
  • [GROOVY-11368] - SC: map access different for parameter and local variable of same type
  • [GROOVY-11369] - STC: map properties "class" and "empty" indicated as read-only
  • [GROOVY-11370] - STC: extension method cannot provide map property (read mode)
  • [GROOVY-11372] - STC: write property via extension method
  • [GROOVY-11373] - IllegalAccessError writing package-private property of other-package map-based type
  • [GROOVY-11378] - array or collection coercion of non-collection iterable produces single-element result
  • [GROOVY-11384] - STC: map property access within closure
  • [GROOVY-11385] - reference to the constructor of an abstract class is not detected
  • [GROOVY-11387] - STC: entry vs field for map-based types
  • [GROOVY-11390] - access error for inaccessible getter of super class
  • [GROOVY-11399] - STC: inferred type of closure delegate, owner and thisObject
  • [GROOVY-11401] - STC: inferred type of name within closure (delegate property versus owner field) *
  • [GROOVY-11414] - Compiler does not promote/check lambda results when required
  • [GROOVY-11427] - unexpected crash in class generation "On receiver: x with message: getAt and arguments: 0"
  • [GROOVY-9850] - STC: add error for write of private or package-private field of super class

Dependency upgrade

Improvement

  • [GROOVY-11360] - Issue a warning when accessing static fields that are "shadowed" by get() methods
  • [GROOVY-11415] - Bytecode for identity

* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)