Changelog for Groovy 2.3.8

Bug

  • [GROOVY-7015] - Groovy static type checking doesn't solve the generic types properly (behavior is different than Java)
  • [GROOVY-7017] - GStringTemplateEngine leaks classes
  • [GROOVY-7039] - Access to constant fields in classes implementing constant interfaces erroneously forbidden in @CompileStatic code
  • [GROOVY-7041] - CompileStatic with a spread operator in a boolean expression causes compiler error
  • [GROOVY-7042] - Problem With TraitComposer.doExtendTraits With Trait Which Contains A Property
  • [GROOVY-7057] - JsonSlurper with type LAX throws exception on comments in arrays
  • [GROOVY-7065] - ReturnAdder shouldn't add return if there's one in a finally block
  • [GROOVY-7081] - Problem With Compiler Error Message And Conflicting Trait Methods
  • [GROOVY-7091] - Cloning with AutoClone results in Null Pointer Exception
  • [GROOVY-7093] - VerifyError at CompileStatic
  • [GROOVY-7096] - Groovydoc needlessly initialises classes
  • [GROOVY-7098] - looping of java.lang.Iterable or java.lang.Iterator objects in CompileStatic mode
  • [GROOVY-7104] - Default methods on closures coerced to interfaces don't work
  • [GROOVY-7110] - Error while popping argument from operand stack tracker
  • [GROOVY-7113] - Problem With Stubs Related To Class Which Implements A Trait
  • [GROOVY-7122] - Static type checking error at Iterable<T> loop
  • [GROOVY-7123] - In traits field assignment is not an expression
  • [GROOVY-7132] - JsonSlurper throws exception if reader does not fill complete char buffer
  • [GROOVY-7133] - NoClassDefFoundError: [Lint;
  • [GROOVY-7138] - Calling super.foo() from a closure fails if code is statically compiled
  • [GROOVY-7145] - Safe navigation operator does not perform null-check for field access under CompileStatic
  • [GROOVY-7146] - VerifyError when coercing at runtime a method that uses double or long
  • [GROOVY-7149] - @CompileStatic 'Access to <property> is forbidden' with abstract base class and interface
  • [GROOVY-7176] - Trait missing as a keyword in Groovy documentation
  • [GROOVY-7192] - @CompileStatic: can't access interface implement static field from nested closures

Improvement

  • [GROOVY-6626] - Add a BigInteger.power(Biginteger) method
  • [GROOVY-7062] - In ExpandoMetaClass, use lower concurrency level for rarely written maps to save memory

Wish

  • [GROOVY-7085] - Add DefaultGroovyMethods.size(Iterable)