Cazacu Mihai created GROOVY-7744:
------------------------------------

             Summary: static import of multiple methods with same name
                 Key: GROOVY-7744
                 URL: https://issues.apache.org/jira/browse/GROOVY-7744
             Project: Groovy
          Issue Type: Improvement
          Components: groovy-jdk
    Affects Versions: 2.4.5
            Reporter: Cazacu Mihai


Hi,

Please take a look at this code:

{code:title=test.groovy|borderStyle=solid}
import groovy.transform.CompileStatic

import static A1.a // as a1
import static A2.a // as a2
import static A3.a // as a3

@CompileStatic
class A1 {
        static void a(String str) { println 'a1' }
}

@CompileStatic
class A2 {
        static void a(int i) { println 'a2' }
}

@CompileStatic
class A3 {
        static void a(boolean b) { println 'a3' }
}

a("string")
a(1)
a(true)
{code}

Running it, a compile exception is thrown:

{quote}
Caught: groovy.lang.MissingMethodException: No signature of method: static 
A3.a() is applicable for argument types: (java.lang.String) values: [string]
Possible solutions: a(boolean), any(), any(groovy.lang.Closure), 
is(java.lang.Object), wait(), wait(long)
groovy.lang.MissingMethodException: No signature of method: static A3.a() is 
applicable for argument types: (java.lang.String) values: [string]
Possible solutions: a(boolean), any(), any(groovy.lang.Closure), 
is(java.lang.Object), wait(), wait(long)
{quote}

It seems that the latest import overwrites the previous ones.
Is this the expected behavior in Groovy (Java allows this syntax)?

Best regards,
Mihai




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to