You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Lyuben Atanasov (Jira)" <ji...@apache.org> on 2021/09/15 13:25:00 UTC
[jira] [Created] (GROOVY-10235) STC: Generic type of Set not
correctly resolved when calling ConcurrentHashMap.newKeySet()
Lyuben Atanasov created GROOVY-10235:
----------------------------------------
Summary: STC: Generic type of Set not correctly resolved when calling ConcurrentHashMap.newKeySet()
Key: GROOVY-10235
URL: https://issues.apache.org/jira/browse/GROOVY-10235
Project: Groovy
Issue Type: Bug
Components: Static Type Checker
Affects Versions: 4.0.0-beta-1
Environment: OpenJDK 8
Reporter: Lyuben Atanasov
The following code fails to compile when STC is enabled:
{code}
import java.util.concurrent.ConcurrentHashMap;
class Test {
public void test() {
Set<Integer> integers = ConcurrentHashMap.newKeySet();
integers.add(1);
integers.add(2);
printSet(integers);
}
private void printSet(Set<Integer> integers) {
println "$integers";
}
}
{code}
The error reported by the compiler is:
{noformat}
Exception in thread "main" org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script_a26d7b8defa71ea9b230673f8bc53d80.groovy: 9: [Static type checking] - Cannot call Test#printSet(java.util.Set<java.lang.Integer>) with arguments [java.util.concurrent.ConcurrentHashMap$KeySetView<java.lang.Object, java.lang.Object>]
@ line 9, column 9.
printSet(integers);
^
{noformat}
This issue is new to 4.0.0-beta-1, it has not been observed before that. It looks like the variable definition is treated as if it was {{def integers}} so the generic type of the Set is not correctly resolved.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)