Changelog for Groovy 1.8.4
Bug
- [GROOVY-3547] - Calling varargs method from Groovy creates varargs array of different type compared to Java
- [GROOVY-4290] - Parse error when using method call w/o parens in method-level annotation closure
- [GROOVY-4471] - NPE in property access in anonymous inner classes
- [GROOVY-4529] - GroovyClassLoader script caching not working properly if scripts not in root dir
- [GROOVY-4658] - CLONE -problem compiling @Delegate to an interface that extends another interface (handle default args case)
- [GROOVY-4729] - Object.toString() called instead of coerced Map toString closure
- [GROOVY-4812] - Problem Parsing Expression With 1.8.0
- [GROOVY-4970] - Method call expression parsed differently in 1.8 compared to 1.7
- [GROOVY-4988] - JsonSlurper fails to correctly parse strings containing some escaped character sequences
- [GROOVY-5049] - File.getText() should close the streams
- [GROOVY-5052] - CharsetToolkit javadoc references private guessEncoding() method in the example usage
- [GROOVY-5056] - ?TreeSet? Comparators not correctly comparing everything - Compares only a subset
- [GROOVY-5076] - the shorthand notation for Grab isn't working correctly
- [GROOVY-5089] - Unnecessary unboxing and casting in boolean handling in generated bytecode
- [GROOVY-5090] - Groovy compiler generates invalid byte code for local boolean variables that later on are referenced in a closure
- [GROOVY-5102] - Unrelated changes cause BigDecimal division to return Double
- [GROOVY-5112] - "A transform used a generics containing ClassNode" error messages for @Delegate
- [GROOVY-5114] - String[] to Set coercion seems broken in some cases
- [GROOVY-5180] - Enum Comparison results in incorrect map behavior when using add assignment operator
Improvement
- [GROOVY-3557] - Remove synchronization of isModified method in ExpandoMetaClass to improve performance
- [GROOVY-5059] - Improve DefaultTypeTransformation.booleanUnbox performance
- [GROOVY-5088] - @Immutable should support java.util.UUID
- [GROOVY-5095] - MetaClassRegistryChangeEventListener doesn't provide a way to get a reference to the old meta class
- [GROOVY-5100] - Unnecessary castToType when boxed type subclasses or implements the target type
- [GROOVY-5118] - Make TupleConstructor work with enums
New Feature
- [GROOVY-4789] - Add method on Date to parse strings created with date.toString()
Test
- [GROOVY-5066] - [PATCH] fix a todo in AstBuilderFromSpecificationTest.testSpreadException
- [GROOVY-5067] - [PATCH] AstBuilderFromSpecificationTest.testFieldExpression sets an incorrect modifier to FieldNode
Wish