Changelog for Groovy 2.4.0-rc-1

Bug

  • [GROOVY-5200] - Anonymous class with elipsis type in constructor
  • [GROOVY-5524] - rcurry fails using with closures and default parameters
  • [GROOVY-5765] - Enum with vararg argument to the constructor ignores everything except the first argument
  • [GROOVY-6202] - MIssed generics in delegated method
  • [GROOVY-6326] - Nonsensical error message when trying to call instance method from closure enclosed in static method
  • [GROOVY-6378] - Assignment of values from Map to another causes "Incompatible generic argument types." when using @TypeChecked
  • [GROOVY-6477] - Array Index Operator Incorrectly Trying to Use getAt Method
  • [GROOVY-6530] - finally blocks do not always execute
  • [GROOVY-6556] - NPE on TypeResolver using anonymous inner class and the jdk7 compiler
  • [GROOVY-6628] - Static compiler fails on constructors with initializers
  • [GROOVY-6713] - Inherited generic property do not honour type
  • [GROOVY-6718] - MalformedParameterizedTypeException when using genericed interfaces from a library
  • [GROOVY-6741] - Generic Traits and SAM type coercion
  • [GROOVY-6812] - ArrayIndexOutOfBoundsException on JsonBuilder.toString
  • [GROOVY-6842] - Cannot create AIC inside closure body
  • [GROOVY-7007] - Bytecode is too big, please make it smaller.
  • [GROOVY-7009] - try block with finally having nested try causes NPE during compilation
  • [GROOVY-7011] - Trait methods with default arguments do not work correctly
  • [GROOVY-7021] - CompileStatic on templated classes with multiple template constraints
  • [GROOVY-7043] - GString concatenation break equal operator transitive property
  • [GROOVY-7112] - @Memoized failed to apply for method with variable args
  • [GROOVY-7168] - I am unable to instantiate objects using the "new" keyword
  • [GROOVY-7169] - Cannot use array if it is assigned twice
  • [GROOVY-7181] - Using a memoized closure with inject corrupts the memoization cache
  • [GROOVY-7184] - Problem With Compiler Inconsistency
  • [GROOVY-7186] - Resource Leak in GroovyScriptEngine
  • [GROOVY-7190] - Problem With Static Fields Defined In A Trait
  • [GROOVY-7193] - Recursive calls cause unnecessary call site generation
  • [GROOVY-7195] - usage of compare operators should not force fastpath
  • [GROOVY-7196] - Problem With Static Trait Properties And Test Classes
  • [GROOVY-7201] - Groovysh parser produces error when writing methods with annotations
  • [GROOVY-7203] - Groovy 2.3.8 causes Gaelyk 2.1.2's initialization to fail on the Google App Engine Production server
  • [GROOVY-7206] - NullPointerException when assigning an unknown property in a trait
  • [GROOVY-7210] - array index variable unboxing not working
  • [GROOVY-7213] - Private methods in traits cause compile time error if the class implementing trait is statically compiled
  • [GROOVY-7214] - Problem With Private Methods In A Trait
  • [GROOVY-7215] - Incorrect stubs generated for traits if a class defines a conflicting property
  • [GROOVY-7216] - subMap includes keys with null value that are not in the original map
  • [GROOVY-7217] - Number initialization in traits

Improvement

  • [GROOVY-6952] - Add List.removeAt(int) and Collection.removeElement(Object)
  • [GROOVY-7059] - @InheritConstructors should replicate annotations on super constructors
  • [GROOVY-7139] - automated constant optimization for BigDecimal
  • [GROOVY-7140] - optimze "as" usage in the static compiler
  • [GROOVY-7161] - Include inherited properties with @ToString
  • [GROOVY-7175] - List.withIndex()
  • [GROOVY-7183] - ConfigObject does not override toString()
  • [GROOVY-7194] - Improve performance of SBA#compare operations
  • [GROOVY-7198] - Traits should allow to use @Override for method implemented from interface
  • [GROOVY-7200] - Groovysh could complete instanceof statements
  • [GROOVY-7222] - Optimize primitive type initialization in @CompileStatic

New Feature

Task