Changelog for Groovy 3.0.8
Bug
- [GROOVY-10011] - Combining flow typing and type argument inference does not work as expected
- [GROOVY-10024] - Dollar slashy /$ string ending in backslash "breaks" the parser
- [GROOVY-10037] - Private setter method in class that is extended by another class cannot be found.
- [GROOVY-10039] - groovy.lang.MissingPropertyException for a property that exists
- [GROOVY-4727] - Adding "return" automatically in nested switch statements
- [GROOVY-5728] - Accessing private constructor from a static factory
- [GROOVY-6610] - "Expecting to find object/array on stack" VerifyError when passing static member as argument to chained ctor call
- [GROOVY-6747] - Problem With Anonymous Inner Enum
- [GROOVY-7024] - Reference to static member of parent class in enum constructor fails at runtime
- [GROOVY-7306] - Invalid stub generated for a constructor using a generic bounded parameter
- [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-8427] - Issue With Static Compiler And Generics
- [GROOVY-8850] - StreamingMarkupBuilder adds namespace on elements not expected
- [GROOVY-8960] - Can not call a java parameterized type method from groovy with java enum. Compile error
- [GROOVY-9076] - Debugger Step Into doesn't work in Groovy-compiled classes
- [GROOVY-9397] - CLONE - Closures are maybe not Threadsafe
- [GROOVY-9524] - VerifyError when referencing a private enum method
- [GROOVY-9662] - Groovy 3.0.5: Closure delegate is not working properly
- [GROOVY-9681] - Groovy2 indy not backward compatible missingMethod with Groovy3
- [GROOVY-9707] - TypeChecked: NoSuchMethodError: DefaultGroovyMethods.plus(java.lang.String, java.lang.Object)
- [GROOVY-9737] - VerifyError if superclass has static and non-static overloads
- [GROOVY-9777] - Stub missing cast, depending on constructor order
- [GROOVY-9803] - Static type checker forgets nested generic types
- [GROOVY-9855] - Compiler does not resolve compile-time constants in string concatenation
- [GROOVY-9859] - Groovy3 doesn't parse a function property when there's a new line between return value and function name
- [GROOVY-9860] - compilation error when passing a closure's genericized parameters to a constructor under static compilation
- [GROOVY-9861] - parsing bug when inner class references top level class fields in groovy 3
- [GROOVY-9862] - General error during instruction selection: ClassCastException
- [GROOVY-9863] - arithmetic using an implicit getter fails to compile with "BUG! exception in phase 'class generation'" under static compilation
- [GROOVY-9867] - docgenerator not displaying array types correctly
- [GROOVY-9875] - backspace does not work in the groovysh under SecureCRT connecting Linux
- [GROOVY-9880] - Switch incorrectly falls through default case
- [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-9887] - VerifyError on list any closure with multiple check
- [GROOVY-9890] - Static type checking can't find default method overload on interface
- [GROOVY-9891] - Wrongly detected incompatible generic arguments for Java collections
- [GROOVY-9892] - STC: VerifyError when embedding unary pre/postfix inc/decrement operation of outer field in GString
- [GROOVY-9893] - Wrong overloaded method selected
- [GROOVY-9896] - Switch return statement transformation misses last case without break
- [GROOVY-9902] - Generic typecheck in @DelegatesTo doesn't work
- [GROOVY-9903] - STC: @DelegatesTo error for incomplete arguments linked to first line of source
- [GROOVY-9905] - Groovy 3 bug: references to an outer class's parent class variable fails
- [GROOVY-9906] - ArrayIndexOutOfBoundsException when compiling method call with many overloaded methods
- [GROOVY-9907] - Type tracked from instanceof condition is not captured in closure
- [GROOVY-9911] - Tuples with same collection values do not match
- [GROOVY-9914] - map.collectEntries extension method variant returns Map<?,?>
- [GROOVY-9916] - IllegalArgumentException when set null to a boolean field into a closure
- [GROOVY-9918] - NPE in static compiler when calling pathological method signature
- [GROOVY-9932] - MockFor/StubFor makes mocked internal method return null
- [GROOVY-9934] - Bounded type parameter is not captured by closure
- [GROOVY-9935] - int reference seems to not use its wrapper class
- [GROOVY-9936] - Difference between Antlr2 and parrot parsers for variable declaration optimisation *
- [GROOVY-9938] - VerifyError when instantiating class with @CompileStatic that implements a method with @DelegatesTo annotation.
- [GROOVY-9951] - @CompileStatic @POJO annotation on static inner class with @Immutable annotation
- [GROOVY-9953] - Type from flow typing is not propagated in variable assignments
- [GROOVY-9954] - JsonSlurper LAX parser skips the first character after comments
- [GROOVY-9955] - IllegalAccessError exception is raised when accessing inherited static field
- [GROOVY-9962] - Stub generation malforms annotation values
- [GROOVY-9966] - Build Error: StringIndexOutOfBoundsException when the stars align...
- [GROOVY-9967] - STC: Access to field/property is forbidden after instanceof.
- [GROOVY-9968] - @TypeChecked Error: Members of Iterable<T extends Foo> are Foo, not Object
- [GROOVY-9973] - @CompileStatic: Binary operation with property throws ClassCastException
- [GROOVY-9974] - @CompileStatic with Method References
- [GROOVY-9977] - @CompileStatic does not work when a class field has a lambda initializer
- [GROOVY-9978] - ASM reporting processing error
- [GROOVY-9981] - CLONE - println(-0.0f) does not comply with IEEE754
- [GROOVY-9982] - Can't assign a field with the result of a method call of the same name from a base class
- [GROOVY-9985] - STC does not report type mismatches in array initializers
- [GROOVY-9991] - STC: error for closure not matching functional interface method's parameter count
- [GROOVY-9994] - Type checking of array initializer expressions
- [GROOVY-9996] - Cannot infer correct type argument when using subtyping
Dependency upgrade
- [GROOVY-10038] - Bump jackson to 2.12.3
- [GROOVY-9856] - Bump jackson to 2.12.0
- [GROOVY-9869] - Upgrade Jansi to 2
- [GROOVY-9876] - Bump antlr to 4.9.0
- [GROOVY-9889] - Bump Gradle to 6.8
- [GROOVY-9897] - Bump jansi to 2.1.1
- [GROOVY-9898] - Bump xstream to 1.4.15
- [GROOVY-9899] - Bump javaparser to 3.18.0
- [GROOVY-9900] - Bump jackson to 2.12.1
- [GROOVY-9912] - Bump Gradle to 6.8.1
- [GROOVY-9913] - Bump checkstyle to 8.39
- [GROOVY-9943] - Bump ASM to 9.1 and add JDK17 constant
- [GROOVY-9944] - Bump junit to 4.13.2
- [GROOVY-9957] - Bump testng to 7.4.0
- [GROOVY-9990] - Bump openbeans to 1.0.2
Documentation
- [GROOVY-9925] - Groovy match operator documentation should contain real examples and slashy strings reminder
- [GROOVY-9926] - Groovy documentation does not describe how to instantiate empty maps in section where maps are first described
Improvement
- [GROOVY-6360] - GString performance is slow with String's method
- [GROOVY-9132] - Improve type inference for method reference
- [GROOVY-9858] - In generated closures, annotate generated call() methods with @Generated
- [GROOVY-9865] - Add some DGM methods for primitive arrays
- [GROOVY-9868] - DGM methods via dgminfo not enabled for int[][], long[][], double[][]
- [GROOVY-9878] - GroovyClassLoader#fileReallyExists is inefficient
Task
- [GROOVY-9989] - Investigate impact of Bintray/JCenter shutdown (grape config aspects)
* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)