Changelog for Groovy 3.0.9
Bug
- [GROOVY-10009] - TracingInterceptor throws NullPointerException if arguments contains a null argument
- [GROOVY-10010] - STC: method call with GString elements in list/array has different error from assignment
- [GROOVY-10027] - STC: NamedParams error for method call argument
- [GROOVY-10033] - Compiler crash when encountering function reference on nested class
- [GROOVY-10046] - NPE in static compiler
- [GROOVY-10047] - STC infers Closure instead of SAM for method references
- [GROOVY-10056] - Inferred parameter type of lambda expression for multi-dimensions array is not correct
- [GROOVY-10075] - Static compiler incorrectly typechecks extension modules
- [GROOVY-10079] - groovyc does not perform unboxing on Character type
- [GROOVY-10085] - Class.isCase() documentation does not clarify that Class.isCase(SomeClass) is false, or why
- [GROOVY-10087] - STC does not perform boxing on chars when encountering assignment and function call
- [GROOVY-10097] - CLONE - Better propagation of InterruptedException (additional cases)
- [GROOVY-10098] - Unexpected behaviour when the return type of a closure is a type parameter
- [GROOVY-10102] - Type checking fails when calling trait method using indirect SelfType relation
- [GROOVY-10104] - SC: runtime error for default argument call expression
- [GROOVY-10106] - STC error for call to static trait method from closure
- [GROOVY-10107] - Cannot assign null to a variable with a bounded generic type
- [GROOVY-10111] - compiler crash during canonicalization
- [GROOVY-10113] - StackOverflowError in STC
- [GROOVY-10121] - @AnnotationCollector does not work with JUnit 5
- [GROOVY-10122] - Wrong cast in stubs generated
- [GROOVY-10132] - XmlUtil.serialize() Emoji bug
- [GROOVY-10141] - NPE in InnerClassVisitor for non-static inner class CCE within two AICs
- [GROOVY-10159] - Compilation failure: ClassCastException
- [GROOVY-10164] - RootLoader cannot be set as system class loader in Java 12+
- [GROOVY-10179] - STC: instanceof and for-in variable type
- [GROOVY-10181] - Groovy 3 AST for annotated fields reports wrong lastLineNumber if field not initialized
- [GROOVY-10188] - Different treatment of property expressions in closures from 2.4 to 2.5
- [GROOVY-10189] - File.withWriter and Path.withWriter are inconsistent
- [GROOVY-10191] - NoSuchMethodError during static field inlining is not caught, unlike NoSuchFieldException
- [GROOVY-10194] - "PermittedSubclasses requires ASM9" when importing enum on Java 17
- [GROOVY-10196] - "Cannot find matching method" with specific class hierarchy and static compilation
- [GROOVY-10197] - java.lang.VerifyError using property inside enum's constant
- [GROOVY-10199] - ASTTest cannot reference types from transform classpath
- [GROOVY-10200] - Static scope error for variable in non-static method of static inner class
- [GROOVY-3015] - Seems like ClosureMetaClass#invokeMethod does not respect the interceptable nature of the owner/delegate
- [GROOVY-3421] - Expression underlying a spread map expression is evaluated twice
- [GROOVY-4610] - GroovyInterceptable (AOP) not working with closures
- [GROOVY-5453] - Incorrect resolve of category property for String
- [GROOVY-6282] - groovyc ant task generates invalid stub (picks wrong constructor) and fails in Java 1.7 compilation
- [GROOVY-7867] - asType(Collection col, Class clazz) ingnores exceptions in clazz constructor
- [GROOVY-8111] - Stack overflow between WideningCategories lowestUpperBound and parameterizeLowestUpperBound
- [GROOVY-8179] - Map-style constructor call, inner class and static compilation
- [GROOVY-8202] - void tail calls in closures break @CompileStatic type inference
- [GROOVY-8452] - @CompileStatic, generic with 'extends' bug: Expected parameter of type ? but got A
- [GROOVY-8638] - CompileStatic fails with Guava Multimap#asMap
- [GROOVY-8652] - Putting key on generic Map fails when using CompileStatic
- [GROOVY-8678] - Groovy Script execution fails when comparing decimal values against decimal constant without leading 0
- [GROOVY-9064] - STC: explicit declared variable type ignored in favor of assigned value type(s)
- [GROOVY-9915] - STC: call to static method fails with incompatible generics error
- [GROOVY-9945] - STC: Cannot find matching method when using Generics
- [GROOVY-9971] - @TypeChecked: Closure<String> no longer compatible with Closure<GString> argument
- [GROOVY-9984] - Wrong type inference when passing null
- [GROOVY-9997] - STC: cast or coerce to functional interface fails to infer param types of closure/lambda
Dependency upgrade
Improvement
- [GROOVY-10036] - STC: unresolved generics for return type of extension method call with full type arguments
- [GROOVY-10052] - STC sometimes requires explicit closure to SAM cast inside of another closure
- [GROOVY-10077] - Groovy Console: Support JDKs without macOS Runtime Support for Java
- [GROOVY-10112] - IndexedProperty AST transform should only provide the getter for immutable fields
- [GROOVY-10146] - Groovy 3 compilation errors are less accurate than Groovy 2
- [GROOVY-10150] - Eliminate ambiguities while parsing non-static class creator
- [GROOVY-10212] - Provide a mechanism for users to enable Antlr4's SLL (fast but only simple) mode
New Feature
- [GROOVY-10210] - Provide a helper factory class to assist with porting
Task