Changelog for Groovy 1.8.5

Bug

  • [GROOVY-4415] - Error implementing a Java or Groovy generic interface
  • [GROOVY-4457] - generic type declarations leaking across all files in a build
  • [GROOVY-4645] - Convariant returns causes compiler to fail when generating property getters
  • [GROOVY-4958] - ConfigSlurper doesn't parse config files that contain $ signs in property values correctly
  • [GROOVY-4966] - VeryifyError in multi-dimensional array usage: Incompatible argument to function
  • [GROOVY-4967] - List to LinkedHashSet inconsistent conversion behavior vs List to HashSet
  • [GROOVY-4973] - Inconsistent numeric range types
  • [GROOVY-4986] - java.sql.Timestamp + int = java.util.Date
  • [GROOVY-5061] - Incorrect translation of class property which type has array as enclosed type argument
  • [GROOVY-5063] - Cannot set "-Werror" javac option when using Groovyc ant task.
  • [GROOVY-5080] - Inner type default constructors incorrectly tagged synthetic
  • [GROOVY-5101] - GroovyCastException occurs since 1.8.3
  • [GROOVY-5109] - inner class inheritance with outer class inheritance can't find constructor
  • [GROOVY-5122] - static fields on interface not getting initialized, when being initialized to an anonymous class instance
  • [GROOVY-5129] - groovy.json.JsonSlurper failes to parse decimal numbers correctly
  • [GROOVY-5137] - MockFor.getInstance() fails for abstract classes
  • [GROOVY-5140] - ASTTransformationCustomizer uses wrong classloader to find transformer class from annotation
  • [GROOVY-5142] - collectMany should not use createSimilarCollection and instead behave like collect
  • [GROOVY-5152] - object instanceof MyObject[] causes ClassDefNotFound exception within Closure
  • [GROOVY-5161] - MetaObjectProtocol.getMetaMethod doc for "args" is ambiguous
  • [GROOVY-5162] - JsonOutput fails with uninformative NPE when map has null key
  • [GROOVY-5165] - ASTNode#removeNodeMetaData may nullify metaData field
  • [GROOVY-5173] - BigDecimals are incorrectly converted to Double after arithmetic operation (appears to be the same as [GROOVY-5102] - Unrelated changes cause BigDecimal division to return Double)
  • [GROOVY-5176] - incorrect handling of generics placeholders in JavaStubGenerator
  • [GROOVY-5181] - "static final" constructors should be a Compile-time error
  • [GROOVY-5193] - Compilation should always fail when two methods exist in the same class with the same name but differing access levels *
  • [GROOVY-5196] - Map#drop Javadoc breaks all following Javadoc
  • [GROOVY-5198] - using "as" to coerce a String to an Enum value results in a groovy.lang.MissingMethodException under high contention
  • [GROOVY-5199] - Expression#transformExpression should copy node metadata
  • [GROOVY-5210] - Problem converting primitive array to a Set

Improvement

  • [GROOVY-5132] - GroovyConsole should support adding multiple Jars at one time via the Menu.
  • [GROOVY-5143] - We should provide a version of collect with no parameters that implicitly uses Closure.IDENTITY
  • [GROOVY-5146] - Disallow setting of type on VariableExpression if isClosureSharedVariable() returns true from AST transforms
  • [GROOVY-5149] - Groovy should default to LinkedHashSet when using 'as Set' to make default sets deterministic
  • [GROOVY-5150] - Switch to a primitive representation of constants
  • [GROOVY-5151] - Provide methods to specify owner, delegate and thisObject of closures
  • [GROOVY-5164] - LongMath does not make use of Long.valueOf() optimization
  • [GROOVY-5182] - for consistency, DGM collectEntries should have a Closure.IDENTITY variant
  • [GROOVY-5190] - groovy -version could show more information about the JVM

Wish

  • [GROOVY-5123] - avoid getTypeClass() use in DelegateASTTransformation
  • [GROOVY-5133] - java.net.URL support in groovy.json.JsonBuilder

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