Changelog for Groovy 3.0.18

Bug

  • [GROOVY-10053] - STC: Wrong type inferred for lambda parameter in a generic method
  • [GROOVY-10701] - NullPointerException in instruction selection phase when having conditionals with lambdas and function references
  • [GROOVY-10920] - Compiler exception with void expression as while condition with CompileStatic
  • [GROOVY-10963] - AIOOBE with Java lambda syntax
  • [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-11005] - CompileStatic: Cannot set default-visible property in superclass that has a getter without a setter
  • [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-11013] - Fail to substitute type when having SAM type with generics
  • [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-11029] - SC: super property is not accessible by a subclass that defines a getter and setter
  • [GROOVY-11036] - StackOverflowError in cyclic interface inheritance
  • [GROOVY-11053] - Method ambiguity error when having methods with primitive arrays and varargs
  • [GROOVY-11056] - modified behavior of variable resolution within Closure
  • [GROOVY-11062] - Annotation collection isn't properly handling enum annotation attribute values
  • [GROOVY-11068] - VerifyError when using generic container in closure
  • [GROOVY-11072] - Unable to compile: Expected type for closure parameter
  • [GROOVY-11075] - The method pointer operator suppresses checked exceptions and results in a MethodMissingException
  • [GROOVY-11076] - @ClosureParams for StringGroovyMethods.replaceFirst and StringGroovyMethods.replaceAll wrong
  • [GROOVY-11085] - STC: assignment of closure with untyped parameter to SAM-type (setter target)
  • [GROOVY-11088] - Missing symbol for package-private member under joint compilation
  • [GROOVY-11089] - STC: closure param type inference for array and list
  • [GROOVY-11104] - Static import of property accessor for type in same unit
  • [GROOVY-11107] - EnumSet varargs constructor is not recognized (broken) in runtime
  • [GROOVY-8164] - Groovy allows a Java class to inherit static methods from its interface *

New Feature

  • [GROOVY-5450] - Final field assignment check on static compilation

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