[ https://issues.apache.org/jira/browse/GROOVY-8737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-8737: -------------------------------- Fix Version/s: 3.0.13 > STC Method resolution fails if other methods with more parameters exist > ----------------------------------------------------------------------- > > Key: GROOVY-8737 > URL: https://issues.apache.org/jira/browse/GROOVY-8737 > Project: Groovy > Issue Type: Bug > Components: Static compilation, Static Type Checker > Affects Versions: 2.4.15, 3.0.0-alpha-3, 2.5.1 > Reporter: Patric Bechtel > Assignee: Eric Milles > Priority: Major > Labels: varargs > Fix For: 4.0.5, 3.0.13 > > > Given two classes as follows > {code:java} > @groovy.transform.CompileStatic > class A { > public static String msg( String key, Object[] args ) { "key=$key, > args=$args" } > public static String msg( String key, Object[] args, Object[] parts ) { > "key=$key, args=$args, parts=$parts" } > public static String msg( String key, Object[] args, String[] names ) { > "key=$key, args=$args, names=$names" } > } > {code} > and > {code:java} > @groovy.transform.CompileStatic > public class B { > public static void main( String[] args ) { > println A.msg( 'hello', [ 'world' ] as Object[] ) > } > } > {code} > will not compile with the error > {noformat} > B.groovy: 4: [Static type checking] - Reference to method is ambiguous. > Cannot choose between [java.lang.String A#msg(java.lang.String, > java.lang.Object[], java.lang.Object[]), java.lang.String > A#msg(java.lang.String, java.lang.Object[], java.lang.String[])] > @ line 4, column 15. > println A.msg( 'hello', [ 'world' ] as Object[] ) > {noformat} > Though there's a perfect match for the called method, it tries to choose one > of the longer signatures. -- This message was sent by Atlassian Jira (v8.20.10#820010)