Changelog for Groovy 2.5.19
Bug
- [GROOVY-10006] - @CompileStatic fails to unify types
- [GROOVY-10088] - STC: type argument not applied to error message
- [GROOVY-10098] - Unexpected behaviour when the return type of a closure is a type parameter
- [GROOVY-10107] - Cannot assign null to a variable with a bounded generic type
- [GROOVY-10114] - Wrong type argument inference when using the result of ternary operator directly.
- [GROOVY-10116] - STC: error when passing a type parameter in type constructor
- [GROOVY-10120] - STC: Guava Multimap#asMap bridge method
- [GROOVY-10180] - STC: instanceof and DGM each(Map,Closure)
- [GROOVY-10217] - Type inference does not work with GDK class enhancements
- [GROOVY-10229] - Question mark in the attribute for a class name
- [GROOVY-10230] - Unexpected generics parameter arity mismatch in the "instruction selection" phase
- [GROOVY-10254] - STC: cannot return closure from method without casting
- [GROOVY-10256] - STC: no error for incompatible type bounds on return value
- [GROOVY-10291] - STC fails to substitute type variable when using the diamond operator and calling a closure
- [GROOVY-10294] - Variable's inferred type is upcasted to an Object
- [GROOVY-10319] - Groovy3 CompileStatic bug: Method clone is protected in java.lang.Object
- [GROOVY-10330] - STC instantiates type variable with a wrong type when calling an instance method of the same class
- [GROOVY-10337] - STC rejects program on compiling constructor initialization with a wildcard type
- [GROOVY-10351] - Wrong type argument is inferred on combining use-site variance and diamond operator
- [GROOVY-10358] - Unable to resolve method after LUB operator
- [GROOVY-10367] - STC fails to infer the correct type for type variable in the presence of the diamond operator and bounded polymorphism
- [GROOVY-10414] - STC: cannot set non-static outer class property via setter method
- [GROOVY-10637] - SC: implicit-this reference to outer class super property produces access error
- [GROOVY-10668] - Reference to method is ambiguous if block in "if" with "instanceof"
- [GROOVY-10700] - STC cannot locate method specified by interface but supplied by AST transform
- [GROOVY-10711] - CompileStatic doesn't call asBoolean
- [GROOVY-10717] - Map to type coercion not working on abstract classes
- [GROOVY-10720] - Resolving wrong overloaded method?
- [GROOVY-10725] - Regression in STC related to generics, unknown cause
- [GROOVY-10731] - Exceptions thrown from MarkupTemplateEngine when map accessors and GString interpolation are used
- [GROOVY-10741] - STC method pointer or reference to generated property method
- [GROOVY-10744] - STC support assignment of primitives to interface types like Comparable and Serializable
- [GROOVY-10745] - Type not captured correctly (regression in 2.5.18)
- [GROOVY-10749] - STC: closure/lambda/reference parameter as type witness for SAM type generics
- [GROOVY-10756] - STC: parameterized and bounded return value for java class property
- [GROOVY-10757] - Regression from 2.5.16+: ClassCastException at runtime
- [GROOVY-10767] - Cannot find matching method when trait that implements another trait is compiled statically
- [GROOVY-10775] - VerifyError: Expecting a stackmap
- [GROOVY-10787] - STC: parameterized property check during map-style construction
- [GROOVY-7247] - spreadMap type inference is incorrect and STC reports on valid code
- [GROOVY-7507] - Cannot assign value of type java.lang.Object in ternary operator with null
- [GROOVY-7890] - Lack of compilation error while statically compiled the closure.
- [GROOVY-8034] - Compile error when using generic type with lower bound
- [GROOVY-8050] - Reference outer class property via inner class
- [GROOVY-8243] - SAM trait coercion via middle interface
- [GROOVY-8244] - SAM trait coercion with default parameters
- [GROOVY-8643] - Make for-in null safe for CompileStatic
- [GROOVY-8686] - STC: type inferencing for (a instanceof C && a...) bleeds into enclosing scope
- [GROOVY-8737] - STC Method resolution fails if other methods with more parameters exist
- [GROOVY-8762] - Invalid this reference in nested class
- [GROOVY-8828] - Union types incorrectly resolved
- [GROOVY-8965] - instanceof with || inserts wrong cast
- [GROOVY-8974] - STC ignores declaration type
- [GROOVY-9127] - Cannot set protected field from subclass
- [GROOVY-9195] - STC: mixed checking for access to non-public fields
- [GROOVY-9293] - Compilation error when accessing package-private super class field using `this` from inside a closure
- [GROOVY-9463] - STC: no type check error for invalid method pointer or reference
- [GROOVY-9604] - STC: method or property missing errors for Closure's getResolveStrategy(), etc.
- [GROOVY-9762] - Wrong type resolved if method reference used with typed method
- [GROOVY-9803] - Static type checker forgets nested generic types
- [GROOVY-9871] - NPE when processing the AST of nested annotations from JAR files
- [GROOVY-9893] - Wrong overloaded method selected
- [GROOVY-9907] - Type tracked from instanceof condition is not captured in closure
- [GROOVY-9915] - STC: call to static method fails with incompatible generics error
- [GROOVY-9953] - Type from flow typing is not propagated in variable assignments
- [GROOVY-9963] - Generic type of field is not instantiated
- [GROOVY-9972] - LUB does not work correctly in case of ternary operator
- [GROOVY-9983] - Type argument inference does not work in ternary operator
- [GROOVY-9995] - Wrong inference inside closure when having a bounded type parameter
Dependency upgrade
- [GROOVY-10766] - Bump Spock to 1.3 for GROOVY_2_5_X (test dependency)
Improvement