Changelog for Groovy 3.0.10
Bug
- [GROOVY-10051] - STC: return type for unresolved placeholder with bound resolved to Object
- [GROOVY-10071] - SC: closure with variadic parameter
- [GROOVY-10072] - SC: closure with default argument(s)
- [GROOVY-10125] - FP Cycle detected in type parameter that extends another type parameter
- [GROOVY-10176] - @NamedVariant with primitives can't find method
- [GROOVY-10178] - @CompileStatic and @NullCheck make compiler fail
- [GROOVY-10184] - NPE in SecureASTCustomizer with indirectImportCheckEnabled
- [GROOVY-10218] - BUG! exception in phase 'instruction selection' when non-existent method called
- [GROOVY-10232] - Massive increase in memory usage due to CacheableCallSite
- [GROOVY-10234] - Groovyc throws Stackoverflow error on generic class with lower bound
- [GROOVY-10239] - GroovyCastException when @CompileStatic and !in keyword are used together
- [GROOVY-10249] - Generated stubs missing method from traits with array parameter
- [GROOVY-10261] - @NamedVariant: Default parameters on ctor/method are ignored when passing some named parameters
- [GROOVY-10262] - MethodNode#getText can output incorrect modifiers
- [GROOVY-10269] - STC: Stackoverflow Error when passing function reference to closure
- [GROOVY-10288] - Regression with generics
- [GROOVY-10289] - Regression with static and non static class mixing
- [GROOVY-10299] - Groovy compiler generates invalid Java stubs
- [GROOVY-10303] - Compiler NPE within CompileStack#clear
- [GROOVY-10312] - MissingMethodException in method with default parameter in trait - regression in 3.0.9
- [GROOVY-10318] - Weird behavior of !in operator
- [GROOVY-10319] - Groovy3 CompileStatic bug: Method clone is protected in java.lang.Object
- [GROOVY-10320] - Generics failed to compile with Groovy 3.0.9 when overriding plus operator
- [GROOVY-10336] - STC crashes when passing method reference to an inner closure
- [GROOVY-10375] - SC: cast exception for private property access from lambda
- [GROOVY-10379] - Error for super class and super interface methods of same name
- [GROOVY-10396] - Static import is not applied for custom println method since 2.5.1
- [GROOVY-10398] - LazyFieldNode never equals itself
- [GROOVY-10407] - unchecked method invocation warning in generated stubs
- [GROOVY-10414] - STC: cannot set non-static outer class property via setter method
- [GROOVY-10419] - STC: stack overflow for elvis assignment with explicit setter
- [GROOVY-10424] - SC: stack overflow for optimized boolean on private inner class with inner class(es)
- [GROOVY-10456] - Inconsistent exception upon accessing empty property
- [GROOVY-10457] - Compilation of constructor calls inside CompileDynamic constructors fails with ArrayIndexOutOfBoundsException
- [GROOVY-10458] - Path to a problematic file isn't shown in the error message sometimes if compilation fails with IndexOutOfBoundsException
- [GROOVY-10461] - Gradle multimodule project fails with NoClassDefFoundError in groovyjarjarasm.asm.signature.SignatureReader.parseType
- [GROOVY-10464] - Wrong cast for type parameter in generated stubs
- [GROOVY-10472] - @AutoImplement is failing when covariant returns are involved
- [GROOVY-10478] - Groovy4: java.lang.VerifyError: Bad invokespecial instruction: interface method reference is in an indirect superinterface.
- [GROOVY-10483] - Source encoding incorrectly set in v4.0.0
- [GROOVY-10484] - NamedVariant: NamedParam not checked when added by transform
- [GROOVY-10497] - NamedVariant: default value overrides supplied value if it's falsy
- [GROOVY-10500] - NamedVariant: non-trivial default value of NamedDelegate property
- [GROOVY-10502] - NamedVariant: improve consistency of default value treatment
- [GROOVY-10516] - Script @groovy.transform.Field AST transformation generics handling with fully qualified types
- [GROOVY-4320] - Joint compiler + @Delegate fail to recognize method signature with default value
- [GROOVY-5204] - @Delegate to a method with optional params
- [GROOVY-5239] - Statically imported method vs other methods with the same name
- [GROOVY-5364] - Static property reference from static context in script does not compile
- [GROOVY-5367] - Closure property in Binding used as Closure delegate cannot be called
- [GROOVY-5726] - Source locations of command chain expressions
- [GROOVY-5736] - Log4j, Commons, Slf4j ast transforms are broken in Groovy-Eclipse
- [GROOVY-6510] - Problems with implicit closures inside of @Category-annotated classes
- [GROOVY-6802] - CompileStatic: ListAssignment takes precedence over Coercion when statically compiling
- [GROOVY-6803] - CompileStatic: ListAssignment for String takes precendence over Coercion when statically compiling
- [GROOVY-7033] - Bug with annotation with closure on method of anonymous class
- [GROOVY-8050] - Reference outer class property via inner class
- [GROOVY-8433] - Anonymous inner class results in cast exception with @Category applied
- [GROOVY-8448] - Local variable is accessible via explicit this
- [GROOVY-8974] - STC ignores declaration type
- [GROOVY-9006] - Static type checking fails on java.sql.Timestamp when compared to null
- [GROOVY-9158] - @NamedParam arguments don't get their default value when only named parameters are used in the method call
- [GROOVY-9259] - Implementing Groovy interface with default methods can cause compile issues.
- [GROOVY-9784] - GroovyRowResult not assignable to Map<String, Object> with static type checker
- [GROOVY-9807] - Static compile of dynamically generated code produces different output in a top-level class and a nested class
- [GROOVY-9927] - Stub not using fully qualified class for inner java class when importing outer class
Dependency upgrade
Documentation
- [GROOVY-10468] - Ability to define system properties for groovyc using CompilerConfiguration
Improvement
- [GROOVY-10352] - Java8 does not load enum values into annotation attributes
- [GROOVY-10477] - SC: optimize for-in loop on array with dynamic variable
- [GROOVY-10505] - TraitComposer should mark generated methods as @Generated
- [GROOVY-5441] - Type argument checking