[ https://issues.apache.org/jira/browse/GROOVY-7767?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jochen Theodorou updated GROOVY-7767: ------------------------------------- Issue Type: Sub-task (was: Bug) Parent: GROOVY-2503 > Single-parameter method chosen zero parameters passed > ----------------------------------------------------- > > Key: GROOVY-7767 > URL: https://issues.apache.org/jira/browse/GROOVY-7767 > Project: Groovy > Issue Type: Sub-task > Affects Versions: 2.4.6 > Reporter: Mike Martin > > When there is a single variant of a given method name, and that method has a > single parameter, then calls to that method with zero arguments will result > in a call to the method with a value of {{null}}, even though the no argument > is present in the actual method call. This is surprising and leads to silent > errors. Instead, I would expect groovy to throw an error saying that no > matching method could be found. > Example: > {code} > new A() > class A { > A(){ > m() > } > void m(String param){ > println "param: $param" > } > } > {code} > Running the code above yields: > {code} > param: null > {code} > But I would expect it to yield something like: > {code} > Caught: groovy.lang.MissingMethodException: No signature of method: A.m() is > applicable for argument types: () values: [] > Possible solutions: m(java.lang.String), is(java.lang.Object), dump(), any(), > any(groovy.lang.Closure), use([Ljava.lang.Object;) > groovy.lang.MissingMethodException: No signature of method: A.m() is > applicable for argument types: () values: [] > Possible solutions: m(java.lang.String), is(java.lang.Object), dump(), any(), > any(groovy.lang.Closure), use([Ljava.lang.Object;) > at A.<init>(testClass2.groovy:8) > at testClass2.run(testClass2.groovy:3) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)