A multi-faceted language tool for the Java platform!

Groovy

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe

Groovy 3.0.20

  -  57.64 MB  -  Open Source

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system. Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Groovy 3.0.20.


For those interested in downloading the most recent release of Groovy or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Groovy 3.0.20 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Groovy 3.0.20 Screenshot 1

What's new in this version:

Fixed:
- STC does not support self bounded types
- Closure with type argument inference does not work as expected
- STC misses type checks on default arguments
- STC: cannot combine use-variance with bounded polymorphism
- STC fails to substitute type variable in the presence of the diamond operator and a function call
- Wrong inference when using ternary operator with closure and variable
- Wrong inference when using ternary operator with lambdas
- SC incorrectly reports "access to Object#field" is forbidden
- STC is unable to call parameterized function
- STC: error for map*.value assignment
- STC: missing error for map*.key assignment
- STC: incorrect type inference for list, map, etc. with lower bound generics
- STC changes the inferred type of variable in the presence of flow typing
- SC: IncompatibleClassChangeError when calling interface default method from non-public interface
- Groovy 4 can not compile super.foo with generic interface (or trait) method
- STC: fix support for unbounded wildcard references to self-bounded type parameters
- Type mismatch when encountering unconditional flow typing and null
- STC: closure parameter type inference for raw type that is iterable over type parameter
- STC fails to compile AssertJ fluent API expression
- STC crashes when combining use-site variance with bounded polymorphism
- LUB does not work properly when mixing type parameter names and using wildcards
- Fail to infer the type argument when using nested diamond operator
- Static Type Checking selects wrong method for abstract method call check
- Patterns conditionally created using pattern operator ~ are cast to String/GString
- STC rejects program when passing method reference in parameterized function
- CompileStatic: cannot implicitly call double setter with BigDecimal literal
- STC NPE when using Collectors.toMap() with a generic result
- STC: empty map (or list) literal does not type check like emptyMap()
- Class parsing does not set erasure of type param with bounds
- Fix edge cases for SecureASTCustomizer
- Code that causes Groovy Compiler Crash
- STC: false positive for Class method called from static context
- ambiguous method error for tap on null receiver
- XmlUtil escapeControlCharacters escapes control characters 0-30 instead of 0-31
- Regression in STC generics solution
- Stackoverflow error when calling super from overridden method
- Compilation fails when accessing getter with shortcut notation on Java class
- Cannot assign value of type java.util.List<java.lang.String> to variable of type java.lang.String[]
- Sort methods that accept a comparator should accept Comparator<? super T> (fix type checker ability to cope with super in DGM methods)
- STC: floating-point literals no longer accepted as args to method with double parameter
- List literal type inference does not take its context into account
- @CompileStatic ignores declared type and forces a cast when inside a closure
- BigDecimal to primitive conversion not working
- STC infers too-narrow bounds for inline map
- Cannot call super when overriding an interface default method
- Wildcards with a lower bound fail static type checking

Dependency upgrade:
- Bump ivy to 2.5.2 (includes CVE-2022-46751)
- Bump ant version to 1.10.14
- Bump jansi to 2.4.1
- Bump javaparser to 3.25.6
- Bump log4j2 version to 2.22.0 (test dependency)
- Bump jackson/jackson-databind to 2.16.0
- Bump logback-classic to 1.3.14 (test dependency)

Improved:
- STC: cannot infer list or map type for method return
- "super" invocations of abstract methods should be caught at compile time with static compilation enabled
- STC: infer closure/lambda parameter types for return expression
- STC: assign method pointer to SAM-type
- Improve coercion / implicit cast of map literals for @CompileStatic
- Improve type inference for hash map -> Map<?, ?>

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe