Changelog for Groovy 4.0.0-alpha-2

Bug

  • [GROOVY-6453] - groovysh in Windows 7/8/10 doesn't support arrow keys and Del
  • [GROOVY-6882] - STC: AIC cannot resolve overridden method of outer class
  • [GROOVY-7494] - ArrayStoreException assigning GStringImpl to String[] when using Indy
  • [GROOVY-8270] - Bug in @AutoImplement
  • [GROOVY-9093] - SC: subclass access to package-private or private field is not indicated as an error
  • [GROOVY-9757] - ASTTest is run for every SourceUnit in a CompilationUnit
  • [GROOVY-9758] - groovsh import of non existing class throws null pointer instead of syntax error
  • [GROOVY-9760] - NPE when trait with type parameter is implemented as raw type
  • [GROOVY-9762] - Wrong type resolved if method reference used with typed method
  • [GROOVY-9763] - Regression in groovyc 3.0 and 4.0 and Compile static with generic static method in trait
  • [GROOVY-9769] - STC: UnionTypeClassNode created for simple instanceof scenarios
  • [GROOVY-9770] - Groovy 3 generated lambda classes are marked as synthetic
  • [GROOVY-9771] - STC: "putAt" shortcut notation to outer class private field from Closure leads to GroovyCastException
  • [GROOVY-9772] - AnnotationCollectorTransform generates code not marked with @Generated
  • [GROOVY-9779] - Inconsistency with callable properties in static context
  • [GROOVY-9786] - SC: cast exception for variable assigned within conditional blocks
  • [GROOVY-9790] - bootstrap method initialization exception raised when lambda parameter type is wrong
  • [GROOVY-9791] - SC: cross-package protected field access uses dynamic property methods
  • [GROOVY-9799] - Using a method reference causes a compiler error
  • [GROOVY-9803] - Static type checker forgets nested generic types
  • [GROOVY-9814] - Method reference doesn't accept subtypes of argument
  • [GROOVY-9815] - Object not bound with Groovy (but works fine in Java)
  • [GROOVY-9816] - @AutoImplement does not consider declared properties
  • [GROOVY-9821] - STC: spread-safe and list property access error for CollType<? extends ItemType>
  • [GROOVY-9822] - StackOverflowError in STC
  • [GROOVY-9824] - CVE-2020-17521 Apache Groovy Information Disclosure
  • [GROOVY-9825] - interface constants from super interfaces lost in some contexts
  • [GROOVY-9826] - Better propagation of InterruptedException
  • [GROOVY-9828] - Migrate from Codehouse to Apache Groovy 4.0.0-alpha
  • [GROOVY-9842] - Static inner class of a static inner class is missing inner class table attribute

Dependency upgrade

Improvement

  • [GROOVY-9132] - Improve type inference for method reference
  • [GROOVY-9767] - GroovyAssert should not depend on org.junit.Assert *
  • [GROOVY-9808] - GroovyShell parse script use given context
  • [GROOVY-9832] - groovy-jmx: JmxMetaMapBuilder should support GString object names

New Feature

  • [GROOVY-8258] - [GEP] Create a LINQ-like DSL (basic cases)
  • [GROOVY-9817] - Enhance Closure annotation value (as Closure class) to Arrays

Task

  • [GROOVY-9773] - Rework gradle build to use modern conventions
  • [GROOVY-9774] - Rework gradle build to use modern conventions - test remediation
  • [GROOVY-9775] - Rework gradle build to use modern conventions - doc remediation
  • [GROOVY-9827] - Rework gradle build to use modern conventions - better support "provided" concept *

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