Christopher Smith created GROOVY-10890:
------------------------------------------

             Summary: Generics regression in method call
                 Key: GROOVY-10890
                 URL: https://issues.apache.org/jira/browse/GROOVY-10890
             Project: Groovy
          Issue Type: Bug
          Components: Static Type Checker
    Affects Versions: 4.0.7
            Reporter: Christopher Smith


I'm receiving a compile-time error on an invocation that is semantically 
correct and worked in 4.0.6. When using the {{EnumMap}} copy constructor, the 
STC appears to misinfer the type as {{<V, V>}} instead of {{<K, V>}}. The 
problem seems to present itself only when {{V}} is also an enum type (of 
course, {{K}} must be an enum type).

{code}
@CompileStatic
class Example {

    enum Foo {}
    enum Bar {}

    void run(Map<Foo, Bar> input) {
        error(new EnumMap<>(input))  // error here
    }

    void error(Map<Foo, Bar> input) {
    }
}
{code}

{code}
Groovy:[Static type checking] - Cannot call 
.Example#error(java.util.Map<Example.Foo, Example.Bar>) with arguments 
[java.util.EnumMap<Example.Bar, Example.Bar>]        {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to