Changelog for Groovy 3.0.0-beta-3

Bug

  • [GROOVY-6148] - Multi-assignment declarations should allow "final" keyword instead of "def" placeholder
  • [GROOVY-7868] - Calling super constructor with in-line casted Closure param does not compile: unexpected "constructor call must be first statement" error
  • [GROOVY-8002] - Static compilation drops source position for method calls
  • [GROOVY-8169] - StaticCompilationVisitor.visitForLoop sets Parameter origin type, which prevents access to original source type and location
  • [GROOVY-8507] - groovyc hangs when compiling nested enum
  • [GROOVY-9106] - @CompileStatic and @PackageScope support for inner classes and package peers
  • [GROOVY-9168] - Default Arguments: non-static inner class constructor call in default value not supported
  • [GROOVY-9171] - Static compiler ASM error for methods with identical names
  • [GROOVY-9200] - StringIndexOutOfBoundsException in AstBrowser
  • [GROOVY-9203] - Anonymous inner class count is not local to enclosing type

Dependency upgrade

Improvement

  • [GROOVY-8547] - Factory pattern side-stepped by CompilerConfiguration/ParserVersion
  • [GROOVY-9109] - Groovysh: Do not force override classloader if user supplied is already GroovyClassLoader
  • [GROOVY-9199] - Code in finally block is ignored in IntelliJ IDEA debugger
  • [GROOVY-9210] - Missing TextfierSupport from asm-util

New Feature

  • [GROOVY-8223] - Multiple Return Values @CompileStatic Tuple#<> working
  • [GROOVY-9196] - We should provide a shuffle(d) DGM method similar to Kotlin
  • [GROOVY-9198] - We should provide an average/mean DGM method similar to Kotlin

Task

  • [GROOVY-8279] - Adapt groovysh to compile using the new parser Parrot
  • [GROOVY-9208] - Adapt the groovysh completers to use the new parser Parrot