Changelog for Groovy 2.5.16

Bug

  • [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-10037] - Private setter method in class that is extended by another class cannot be found.
  • [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-10075] - Static compiler incorrectly typechecks extension modules
  • [GROOVY-10104] - SC: runtime error for default argument call expression
  • [GROOVY-10106] - STC error for call to static trait method from closure
  • [GROOVY-10141] - NPE in InnerClassVisitor for non-static inner class CCE within two AICs
  • [GROOVY-10164] - RootLoader cannot be set as system class loader in Java 12+
  • [GROOVY-10176] - @NamedVariant with primitives can't find method
  • [GROOVY-10179] - STC: instanceof and for-in variable type
  • [GROOVY-10191] - NoSuchMethodError during static field inlining is not caught, unlike NoSuchFieldException
  • [GROOVY-10197] - java.lang.VerifyError using property inside enum's constant
  • [GROOVY-10199] - ASTTest cannot reference types from transform classpath
  • [GROOVY-10215] - Ivy library threadsafe bug cause dependency resolve failed
  • [GROOVY-10261] - @NamedVariant: Default parameters on ctor/method are ignored when passing some named parameters
  • [GROOVY-10262] - MethodNode#getText can output incorrect modifiers
  • [GROOVY-10289] - Regression with static and non static class mixing
  • [GROOVY-10312] - MissingMethodException in method with default parameter in trait - regression in 3.0.9
  • [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-10424] - SC: stack overflow for optimized boolean on private inner class with inner class(es)
  • [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-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-10516] - Script @groovy.transform.Field AST transformation generics handling with fully qualified types
  • [GROOVY-3421] - Expression underlying a spread map expression is evaluated twice
  • [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-5728] - Accessing private constructor from a static factory
  • [GROOVY-5736] - Log4j, Commons, Slf4j ast transforms are broken in Groovy-Eclipse
  • [GROOVY-6510] - Problems with implicit closures inside of @Category-annotated classes
  • [GROOVY-6747] - Problem With Anonymous Inner Enum
  • [GROOVY-7033] - Bug with annotation with closure on method of anonymous class
  • [GROOVY-7304] - Cannot mutate private field from within an AIC or a closure
  • [GROOVY-7512] - Cannot call Trait method from Closure when using static compilation
  • [GROOVY-7609] - java.lang.VerifyError when initializing object of inner class within the constructor of its containing class
  • [GROOVY-7686] - Can not see local variable from overriden method called from the constructor of an anonymous class instance
  • [GROOVY-7945] - Expect compilation error while resolving generic types
  • [GROOVY-8104] - Could not call constructor of inner class from anonimous class inside closure
  • [GROOVY-8111] - Stack overflow between WideningCategories lowestUpperBound and parameterizeLowestUpperBound
  • [GROOVY-8433] - Anonymous inner class results in cast exception with @Category applied
  • [GROOVY-8448] - Local variable is accessible via explicit this
  • [GROOVY-8638] - CompileStatic fails with Guava Multimap#asMap
  • [GROOVY-8652] - Putting key on generic Map fails when using CompileStatic
  • [GROOVY-8707] - += in CompileStatic dynamically sets property instead of using setter
  • [GROOVY-8715] - Cannot resolve array of inner class from type in same package (no import)
  • [GROOVY-8840] - CLONE - Compile Static causes getAt to fail (advanced cases)
  • [GROOVY-9151] - Default Arguments: reference to another defaulted parameter causes run-time errors
  • [GROOVY-9158] - @NamedParam arguments don't get their default value when only named parameters are used in the method call
  • [GROOVY-9183] - Issue using @MapConstructor and @NamedVariant
  • [GROOVY-9189] - AIC in default argument expression of static method causes class cast exception
  • [GROOVY-9238] - Groovy 2.5 AnnotationCollector not generating expected bytecode
  • [GROOVY-9281] - Unqualified reference to inner class of super class does not support package-private visibility
  • [GROOVY-9327] - @CompileStatic is not propagated to anonymous class
  • [GROOVY-9328] - Cannot call private member of containing class in @CS
  • [GROOVY-9336] - Shift operator used in field initial value expression causing incorrect type conversion
  • [GROOVY-9338] - STC: no error for incorrect bounds match
  • [GROOVY-9344] - CCE in closure shared variable assignment
  • [GROOVY-9376] - Groovy completely ignores @GrabResolver annotation
  • [GROOVY-9385] - Access to outer class private field from closure leads to ClassCastException (@CompileStatic)
  • [GROOVY-9386] - Field initialized in a trait using tap doesn't work correctly
  • [GROOVY-9455] - STC: no error for if (!(x instanceof T)) x.methodFromT()
  • [GROOVY-9460] - Groovy 3 Compilation Failure with method with argument Class<?> called with Class<D>
  • [GROOVY-9516] - Static compiler infers wrong type for implicitly shared variables
  • [GROOVY-9524] - VerifyError when referencing a private enum method
  • [GROOVY-9526] - Failed to reload classes with generic parameters
  • [GROOVY-9570] - Class-Level Closure Definition With Generics Fails TypeChecked
  • [GROOVY-9575] - ASTNode.hashCode violates Object.hashCode contract: does not return consistent value
  • [GROOVY-9586] - SC: calling trait method inside closure has incorrect receivers data
  • [GROOVY-9607] - Class generation regression in 3.0.5-ss: This method should not have been called
  • [GROOVY-9711] - @Sortable annotation always sorts by the parent properties
  • [GROOVY-9751] - STC: error for addAll with collect argument
  • [GROOVY-9763] - Regression in groovyc 3.0 and 4.0 and Compile static with generic static method in trait
  • [GROOVY-9807] - Static compile of dynamically generated code produces different output in a top-level class and a nested class
  • [GROOVY-9855] - Compiler does not resolve compile-time constants in string concatenation
  • [GROOVY-9862] - General error during instruction selection: ClassCastException
  • [GROOVY-9882] - STC: field or property with parameterized SAM-type and closure initializer
  • [GROOVY-9885] - STC doesn't coerce GString in certain ternary expressions
  • [GROOVY-9890] - Static type checking can't find default method overload on interface
  • [GROOVY-9902] - Generic typecheck in @DelegatesTo doesn't work
  • [GROOVY-9903] - STC: @DelegatesTo error for incomplete arguments linked to first line of source
  • [GROOVY-9918] - NPE in static compiler when calling pathological method signature
  • [GROOVY-9935] - int reference seems to not use its wrapper class
  • [GROOVY-9938] - VerifyError when instantiating class with @CompileStatic that implements a method with @DelegatesTo annotation.
  • [GROOVY-9945] - STC: Cannot find matching method when using Generics
  • [GROOVY-9971] - @TypeChecked: Closure<String> no longer compatible with Closure<GString> argument
  • [GROOVY-9974] - @CompileStatic with Method References
  • [GROOVY-9997] - STC: cast or coerce to functional interface fails to infer param types of closure/lambda

Dependency upgrade

Improvement

  • [GROOVY-10052] - STC sometimes requires explicit closure to SAM cast inside of another closure
  • [GROOVY-10112] - IndexedProperty AST transform should only provide the getter for immutable fields
  • [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
  • [GROOVY-9289] - @Delegate should check property/method names for annotation attributes like includes/excludes
  • [GROOVY-9726] - Compile error needed for illegal field modifier combination