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