Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0.0-beta-1, 3.0.0-rc-1, 3.0.5
-
None
-
Important
Description
Custom extension like this
class CustomExtension { static MyData call(ArrayList header, Closure code) { new MyData(data: header.join(":") + " " + code()) } static MyData test(ArrayList header, Closure code) { new MyData(data: header.join(":") + " " + code()) } }
used to work with Groovy 2.5.12
class CustomExtensionTest { @Test void "implicit call on array with closure used to work"() { def result = [1, 2, 3] { "world" } assert result.data == '1:2:3 world' } @Test void "explicit call on array with closure still works"() { def result = [1, 2, 3].test { "world" } assert result.data == '1:2:3 world' } }
with Groovy 3.0.x I get this error instead
groovy.lang.MissingMethodException: No signature of method: regression.CustomExtensionTest.[1, 2, 3]() is applicable for argument types: (regression.CustomExtensionTest$_call_on_array_with_closure_used_to_work_closure1) values: [regression.CustomExtensionTest$_call_on_array_with_closure_used_to_work_closure1@8b87145]
Is this intentional?
I have attached a maven project to reproduce.