Christopher Smith created GROOVY-11204:
------------------------------------------
Summary: Incorrect overload selection for subclasses
Key: GROOVY-11204
URL: https://issues.apache.org/jira/browse/GROOVY-11204
Project: Groovy
Issue Type: Bug
Components: Static compilation
Affects Versions: 4.0.12
Reporter: Christopher Smith
I'm writing a Spring Security 6.2 configurer and trying to add it to my
configuration using {{apply(C)}}, but the Groovy compiler selects the wrong
overload, and necessary initialization is not performed.
{code:groovy}
// AbstractHttpConfigurer extends SecurityConfigurerAdapter
class MyConfigurer extends AbstractHttpConfigurer<MyConfigurer, HttpSecurity> {}
// configuration
@Bean
SecurityFilterChain securityFilterChain(HttpSecurity http) {
http.apply(new MyConfigurer())
// ^ should select apply(SecurityConfigurerAdapter), but selects
apply(SecurityConfigurer)
.and()
.build()
}
{code}
This is probably a result of an edge case in the generics, since the bounds on
the overloads are determined by type parameters.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)