Changelog for Groovy 2.5.3

Bug

  • [GROOVY-7330] - Incorrect dynamic proxy creation from map when there are default methods
  • [GROOVY-7412] - Map-to-interface cast: map method definition does not override the default method
  • [GROOVY-8084] - Captured types doesn't work in @CompileStatic
  • [GROOVY-8090] - Incorrectly processing method-level type generics information
  • [GROOVY-8250] - VariableScopeVisitor does not set declaring class on property nodes
  • [GROOVY-8327] - Can't access static method from same class within this constructor call
  • [GROOVY-8337] - STC: instanceof in ternary expression not propagating type info to true expression
  • [GROOVY-8342] - Static compilation error with a method returning an array in a type parameter
  • [GROOVY-8405] - Inherited methods with default parameters cause cause static compilation to fail
  • [GROOVY-8549] - Compile Static causes getAt to fail
  • [GROOVY-8669] - Groovy class does not compile if the ValueType of an annotation is not on the classpath
  • [GROOVY-8703] - Unexpected behavior with @NamedVariant on constructor *
  • [GROOVY-8727] - JDK 11 Compilation Failure: ClassVisitor.visitNestMemberExperimental throws UnsupportedOperationException
  • [GROOVY-8747] - jar/zip file and input stream are not closed in grape
  • [GROOVY-8753] - Compiler error in STC: exception in phase 'instruction selection'
  • [GROOVY-8754] - Spaces in JAVA_HOME not handled properly for JDK10 on windows
  • [GROOVY-8757] - Incorrect bytecode produced after compiling class implementing trait with generic method
  • [GROOVY-8758] - @WithReadLock in inner class of @CompileStatic class causes java.lang.VerifyError
  • [GROOVY-8761] - Exception in phase 'instruction selection'
  • [GROOVY-8764] - Closure inside an anonymous class uses wrong outside class instance with @CS
  • [GROOVY-8768] - Unable to add Groovy indy JARs as dependency in Gradle
  • [GROOVY-8779] - Groovy 2.5.2 triggers a bug in IntelliJ IDEA
  • [GROOVY-8797] - VariableScopeVisitor.getPropertyName does not check for "isser" style method
  • [GROOVY-8800] - Wrong detection of Java 10 version in groovy-json
  • [GROOVY-8806] - Immutable classes break in groovy 2.5.2
  • [GROOVY-8816] - NPE in inferClosureParameterTypes with CompileStatic and incorrect zero-arg closure
  • [GROOVY-8819] - java.lang.VerifyError when calling this() with static final field from a super class
  • [GROOVY-8822] - Conflict between @Generated and @Delegate
  • [GROOVY-8833] - @Canonical creates invalid hashCode
  • [GROOVY-8835] - AstNodeToScriptVisitor - no token needed for EmptyStatement initialization

Dependency upgrade

Improvement

  • [GROOVY-7554] - Add method to get printed stack trace in Throwable
  • [GROOVY-8748] - CompileUnit could implement NodeMetaDataHandler to act as a "global" node for metadata
  • [GROOVY-8765] - Annotate generated methods with @Generated
  • [GROOVY-8780] - Add `sha256` DGM
  • [GROOVY-8783] - Support Java 9/10/11 bytecode
  • [GROOVY-8784] - Prepare for supporting JDK 12 bytecode
  • [GROOVY-8812] - Make `Sql` and `BatchingStatementWrapper` implement `AutoCloseable`
  • [GROOVY-8827] - Close a small gap in the EMC DSL for constructors

New Feature

Sub-task

  • [GROOVY-8802] - GroovyObject method implementations when supplied by Groovy compiler are now marked with @Internal

* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)