Changelog for Groovy 4.0.4

Bug

  • [GROOVY-10068] - Cannot compile when set short value to annotation by already defined short variable since version 2.5.4
  • [GROOVY-10153] - STC: cannot combine use-variance with bounded polymorphism
  • [GROOVY-10373] - STC cannot compile program with multiple bounded type parameters
  • [GROOVY-10436] - STC: closure parameter type-checking: declared vs inferred
  • [GROOVY-10578] - Groovydoc noscripts and nomainforscripts options no longer work
  • [GROOVY-10633] - Invalid type substitution when encountering bounded type parameter and the diamond operator
  • [GROOVY-10651] - STC: closure parameter type inference for raw type that is iterable over type parameter
  • [GROOVY-10654] - Cannot pass enum literal to ASTTransformationCustomizer
  • [GROOVY-10659] - Parrot Parser: named arguments does not support all key expressions
  • [GROOVY-10662] - Fail to substitute type variable when encountering conflicting type parameter with a bound
  • [GROOVY-10663] - PackageHelperImpl#getPackageNames unable to find package from path or jars that contains plus sign
  • [GROOVY-10667] - Wrong Type-Inference in `instanceof` block
  • [GROOVY-10671] - STC fails to compile AssertJ fluent API expression
  • [GROOVY-10673] - STC inferred type lost in nested closure
  • [GROOVY-10675] - Covariant override method regression
  • [GROOVY-10676] - ErrorReporter (used by FileSystemCompiler) can throw an IOOB exception on files with CR only
  • [GROOVY-10679] - Annotations not being correctly placed in native records
  • [GROOVY-10681] - Groovysh doesn't handle multiline strings with """ or ''' correctly
  • [GROOVY-10690] - dump() method produces errors
  • [GROOVY-10691] - POJO transform applies to only top-level types
  • [GROOVY-6871] - Running :show all command throws StackOverflowError
  • [GROOVY-7252] - Integer literal not accepted for primitive short annotation attribute
  • [GROOVY-8045] - Implicit closure coercion doesn't work for elements of array of functional objects
  • [GROOVY-8643] - Make for-in null safe for CompileStatic
  • [GROOVY-8863] - Groovy compiler doesn't generate InnerClasses attribute for nested class names mentioned in the class file
  • [GROOVY-9205] - Specify primitive annotation default value using number literal with cast/coerce
  • [GROOVY-9206] - Cannot use annotation with attribute of type char
  • [GROOVY-9366] - Unable represent literal byte costant
  • [GROOVY-9550] - groovydoc: java classes don't seem to extend object
  • [GROOVY-9854] - STC doesn't consider switch-expression type for closure cases
  • [GROOVY-9871] - NPE when processing the AST of nested annotations from JAR files
  • [GROOVY-9980] - AnnotationConstantExpression#visit visits its members values first before visiting itself

Dependency upgrade

  • [GROOVY-10692] - Bump log4j2 version to 2.18.0 (test dependency)
  • [GROOVY-10693] - Bump Spotbugs/Spotbugs annotations to 4.7.1 (build dependency)

Improvement

  • [GROOVY-10653] - SC: support extension or variadic method reference with instance expression
  • [GROOVY-10660] - STC: infer closure/lambda parameter types for return expression
  • [GROOVY-10661] - Support launching of ObjectExplorer when property rows are double-clicked
  • [GROOVY-10665] - Add some other known "internal" packages to the sanitized stacktrace list.
  • [GROOVY-10680] - GroovyConsole should display record components
  • [GROOVY-10684] - Support opening the Object browser from within the AST browser
  • [GROOVY-10686] - Add tooltips for Object/AST browser to display contents for narrow columns
  • [GROOVY-10689] - Groovydoc for Groovy 3+ documents classes at too early a phase of compilation
  • [GROOVY-9813] - Support matching functional interface to variadic method reference