Frank Pavageau created GROOVY-7719:
--------------------------------------

             Summary: Generic type incompatibility not detected for method 
called on field
                 Key: GROOVY-7719
                 URL: https://issues.apache.org/jira/browse/GROOVY-7719
             Project: Groovy
          Issue Type: Bug
          Components: Static Type Checker
    Affects Versions: 2.4.5
            Reporter: Frank Pavageau
            Assignee: Cédric Champeau


While reading the test case for GROOVY-5839, I noticed it did not actually 
match the reported problem, which is about a method-level generic type 
shadowing a class-level generic type. However, the real problem is that the 
code compiles even without the shadowing of the generic type of the class by 
the method:
{code}
class GoodCodeRed<T> {
    Collection<GoodCodeRed<T>> attached = []
    public <U> void attach(GoodCodeRed<U> toAttach) {
        attached.add(toAttach)
    }
}
def g1 = new GoodCodeRed<Integer>()
def g2 = new GoodCodeRed<Integer>()
g1.attach(g2)
{code}

{{T}} and {{U}} are unrelated, the {{attached.add(toAttach)}} call should not 
compile.

Once that is fixed, we can see if the shadowing of the type is also an issue, 
simply by renaming {{U}} to {{T}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to