Changelog for Groovy 2.2.0-beta-2

Bug

  • [GROOVY-2974] - IntRange.step overflows near Integer.MAX_VALUE or Integer.MIN_VALUE
  • [GROOVY-5078] - Compiler should not allow 2 methods with same name and no argument to return different types
  • [GROOVY-5261] - A static method call inside a static closure bypasses closure delegate behavior
  • [GROOVY-5610] - Type checking of method calls using generics and default values is not supported
  • [GROOVY-5742] - CompileStatic goes into infinite loop when handling self-referential generics
  • [GROOVY-5839] - Typechecker does not detect shadowed generic parameter
  • [GROOVY-5873] - Type checker does not infer generic type
  • [GROOVY-5882] - @CompileStatic breaks with generic boxed numerics
  • [GROOVY-5883] - @CompileStatic incorrectly inferred closure return type upper bound
  • [GROOVY-5885] - @CompileStatic incorrectly infers generic return type
  • [GROOVY-5891] - Static compiler wrongly infers the return type of Class<T>.cast()
  • [GROOVY-5920] - Type not inferred from Iterator<Data<String>>
  • [GROOVY-5974] - @Delegate should support including/excluding which methods are delegated to (and optionally complain if multiple exist) - simple use cases
  • [GROOVY-5987] - JavaDoc and GroovyDoc tasks always rebuild
  • [GROOVY-6048] - Generated Java stub for inner interface with generics fails to compile
  • [GROOVY-6056] - @Lazy(soft=true) not quite right
  • [GROOVY-6155] - Can't access private static constant from closure, when using @CompileStatic
  • [GROOVY-6179] - Sublist can be modified by parent list operations
  • [GROOVY-6199] - @CompileStatic class throws runtime errors accessing outer class methods inside nested closures
  • [GROOVY-6250] - Parsing issue with enums using inner generic methods
  • [GROOVY-6251] - Grab of an extension module with a transitive dependency fails
  • [GROOVY-6261] - Inefficient method DefaultGrailsDomainClassInjector.implementsMethod(..)
  • [GROOVY-6262] - Sql.withTransaction setAutoCommit in finally not wrapped in try/catch
  • [GROOVY-6266] - 'class generation' bug when CompileStatic with HashMap and List
  • [GROOVY-6270] - Verifyerror in static compiled code
  • [GROOVY-6272] - Cannot define a no-args closure in Groovy Shell
  • [GROOVY-6274] - replaceNode improvements for XML processing *
  • [GROOVY-6275] - DOMCategory: text() doesn't get node value if it is a CDATA section
  • [GROOVY-6288] - Overloaded operator with return type
  • [GROOVY-6289] - Null arg call not ambiguouseven though it should be
  • [GROOVY-6295] - GroovyDoc doesn't escape angle brackets in @code and @literal tags
  • [GROOVY-6300] - JavaStubGenerator clears instance initializers
  • [GROOVY-6306] - Unable to use Grape to grab DLLs
  • [GROOVY-6307] - @TimedInterrupt et al only partially support multiple annotations within a single source file
  • [GROOVY-6311] - Using @CompileStatic on code that uses spread operator on a Set results in compilation error
  • [GROOVY-6317] - @CompileStatic on class using with(Closure) leads to compilation error.
  • [GROOVY-6333] - Changes required regarding unaryPlus and bitwiseNegate operators for numbers

Improvement

  • [GROOVY-3695] - DGM method signature improvements
  • [GROOVY-6269] - Document limitation of normal map-style constructor use when using @Immutable
  • [GROOVY-6287] - @Immutable could support Class as an immutable type
  • [GROOVY-6305] - newWriter() method for OutputStream

New Feature

  • [GROOVY-4164] - A groovier way of iterate over dates/calendars: upTo() and downTo()

Sub-task

  • [GROOVY-5875] - Cannot use DELEGATE_FIRST and delegates that are inner classes.

Task

  • [GROOVY-6227] - Delete (not working) Eclipse files from groovy-core git repo
  • [GROOVY-6252] - bump ant dependency version from 1.9.1 to 1.9.2
  • [GROOVY-6280] - Update GPars Dependency to 1.1.0
  • [GROOVY-6292] - Update Gradle version to 1.7-rc-2

Test

  • [GROOVY-5069] - AstBuilderFromSpecificationTest.testElvisOperatorExpression(): DSL and expected AST incorrect

Wish

  • [GROOVY-6226] - Configure Gradle Eclipse plugin for groovy-core

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