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