Changelog for Groovy 5.0.0-alpha-9

Bug

  • [GROOVY-9850] - STC: add error for write of private or package-private field of super class
  • [GROOVY-10095] - Wrong LUB when involving a numeric constant and null
  • [GROOVY-11223] - STC: error message for inaccessible setter is not too helpful
  • [GROOVY-11339] - AutoImplement and method with default arguments
  • [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-11357] - Package-private field and method or property have different treatment *
  • [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-11369] - STC: map properties "class" and "empty" indicated as read-only
  • [GROOVY-11372] - STC: write property via extension method
  • [GROOVY-11373] - IllegalAccessError writing package-private property of other-package map-based type
  • [GROOVY-11375] - Power binary expression finds incorrect type - currently uses declaration inferred type
  • [GROOVY-11376] - SC: put entry replaced write field for public and protected of map-based type
  • [GROOVY-11378] - array or collection coercion of non-collection iterable produces single-element result
  • [GROOVY-11380] - STC: property reference to generated method not recognized
  • [GROOVY-11381] - STC: field and interface default method accessor property
  • [GROOVY-11383] - incorrect comparison is missed by the compiler
  • [GROOVY-11384] - STC: map property access within closure
  • [GROOVY-11385] - reference to the constructor of an abstract class is not detected
  • [GROOVY-11386] - STC: closure property precedence
  • [GROOVY-11393] - STC: error for non-static member of class delegate
  • [GROOVY-11394] - STC: zero-parameter closure call with args
  • [GROOVY-11399] - STC: inferred type of closure delegate, owner and thisObject
  • [GROOVY-11400] - STC: closure parameter metadata after re-assignment of variable
  • [GROOVY-11401] - STC: inferred type of name within closure (delegate property versus owner field) *
  • [GROOVY-11402] - STC: inferred type of this.name within closure
  • [GROOVY-11413] - ClassNode makeArray() and make(Type[].class) differences
  • [GROOVY-11427] - unexpected crash in class generation "On receiver: x with message: getAt and arguments: 0"

Dependency upgrade

Improvement

  • [GROOVY-10993] - Consider adding CycloneDX SBOM files
  • [GROOVY-11055] - Support lambda expression as named value
  • [GROOVY-11360] - Issue a warning when accessing static fields that are "shadowed" by get() methods
  • [GROOVY-11367] - property semantics of map-based types *
  • [GROOVY-11374] - MethodCallExpression getText() support for type arguments and dynamic selector
  • [GROOVY-11403] - property semantics of map-based types (pt.2) *
  • [GROOVY-11406] - Make Console.prefs public accessible
  • [GROOVY-11415] - Bytecode for identity

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