You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Leonard Brünings (Jira)" <ji...@apache.org> on 2022/04/20 13:31:00 UTC
[jira] [Created] (GROOVY-10588) TypeChecked/CompileStatic wildcard problems
Leonard Brünings created GROOVY-10588:
-----------------------------------------
Summary: TypeChecked/CompileStatic wildcard problems
Key: GROOVY-10588
URL: https://issues.apache.org/jira/browse/GROOVY-10588
Project: Groovy
Issue Type: Bug
Components: Static compilation, Static Type Checker
Affects Versions: 4.0.1
Reporter: Leonard Brünings
The following works fine in 2.x/3x but fails with Groovy 4.0.1
{code:groovy}
@groovy.transform.CompileStatic
class Reproducer {
Map<String, ?> formData = [:]
Map<String, ?> getCsrfTokenField() {
[:]
}
def broken() {
resolveFormData(formData + csrfTokenField)
}
static Map<String, String> resolveFormData(Map<String, ?> formData) {
formData.collectEntries { k, v -> [k, v instanceof Closure ? v().toString() : v] }
}
static void main(String... args) {
println 'compiled successfully'
}
}
{code}
Fails with
{noformat}
[Static type checking] - Cannot call <K,V> org.codehaus.groovy.runtime.DefaultGroovyMethods#plus(java.util.Map<K, V>, java.util.Map<K, V>) with arguments [java.util.Map<java.lang.String, ?>, java.util.Map<java.lang.String, ? extends java.lang.Object>]
@ line 11, column 19.
{noformat}
[Groovy Web Console|https://gwc-experiment.appspot.com/?g=groovy_4_0&codez=eJx1UctqwzAQPNtfsbfYNNUHhNYJuM2tl6a3kIMqr42IrDVa2RCC_71-t0nJHCSxzM4D7QpH1FyEd9JyTq4UKZWVNnjw0msVKiOZ4RMrR1mt0ME1hA7D8SGrl4N32hZr2CbQb79JL-EVjpvTQ1qBPmWXf9EZ7V6jyaJ4Eu0xb7a_-xnm8O16-sAMAodMpsH95Bctxk-gbpTjeykeSt0kGu8E7kUflPubdZ4JRcag8u-24yPDFc5raOA5gePw0LbztQoph9QQ1w5hC00UC0-jQ9drA81pSvo_b0M6g1JqG418IQRIV_ASJqi6sTcWVmr8vQy4VgqZ89qYy2rWa8M2DJf8PX4A4IWY-g]
--
This message was sent by Atlassian Jira
(v8.20.7#820007)