You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2021/04/09 18:18:00 UTC
[jira] [Created] (GROOVY-10027) STC: NamedParams error for method
call argument
Eric Milles created GROOVY-10027:
------------------------------------
Summary: STC: NamedParams error for method call argument
Key: GROOVY-10027
URL: https://issues.apache.org/jira/browse/GROOVY-10027
Project: Groovy
Issue Type: Bug
Components: Static Type Checker
Reporter: Eric Milles
Consider the following:
{code:groovy}
import groovy.transform.NamedParam
import groovy.transform.NamedParams
@groovy.transform.TypeChecked
//@Configuration
class Config {
//@Value
String indexName
//@Bean
ResultType resultType() { }
//@Bean
def facetApplier() { new FacetApplier(index:indexName, resultType:resultType()) }
}
//@Component
class FacetApplier {
protected final String index
protected final ResultType resultType
FacetApplier(@NamedParams([
@NamedParam(value='index', type=String, required=true),
@NamedParam(value='resultType', type=ResultType, required=true)]) Map props)
{
this.index = props.index
this.resultType = props.resultType
}
}
class ResultType {
}
{code}
Constructor call expression "new FacetApplier(index:indexName, resultType:resultType())" has static type checking error for "resultType" named parameter. {{[Static type checking] - parameter for named arg 'resultType' has type 'java.lang.Object' but expected 'ResultType'.}}
If {{resultType()}} is cast or replaced with a variable, the error goes away.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)