[
https://issues.apache.org/jira/browse/GROOVY-11776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18028793#comment-18028793
]
Björn Kautler commented on GROOVY-11776:
----------------------------------------
Hm, that's indeed very strange.
I'm pretty sure I triple-checked, searching for a way to properly add Groovy 5
support to Spock.
But right now, I also get the Object overloads in 5.0.1.
So unless I was really tired, I'd also suspect some hashmap ordering problem or
similar. :-/
Yet it was 100% reproducible until yesterday and is 100% non-reproducible now
... wth
> Overload resolution of trait methods does not work properly
> -----------------------------------------------------------
>
> Key: GROOVY-11776
> URL: https://issues.apache.org/jira/browse/GROOVY-11776
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 2.5.23, 4.0.26, 3.0.25, 5.0.1
> Reporter: Björn Kautler
> Priority: Major
>
> Given this snippet:
> {code:groovy}
> trait Foo {
> def foo(Object o) {
> println("foo(o)")
> }
> def foo(Map<String, Object> m) {
> println("foo(m)")
> }
> }
> class Bar implements Foo {
> def bar(Object o) {
> println("bar(o)")
> }
> def bar(Map<String, Object> m) {
> println("bar(m)")
> }
> }
> new Bar().with {
> foo((Object) null)
> foo(null as Object)
> bar((Object) null)
> bar(null as Object)
> }
> (new Object() as Foo).with {
> foo((Object) null)
> foo(null as Object)
> }
> {code}
> In Groovy 2.5, 3.0 and 4.0 {{bar}} uses the {{Object}} variant as expected,
> but {{foo}} uses the {{Map}} variant for some reason.
> In Groovy 5.0.alpha that is still on groovyconsole.dev this was fixed and
> both used the {{Object}} variant as expected.
> In 5.0.1 this is also broken again, behaving like before.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)