Community
Participate
Working Groups
Compile the example. There is a diagnostic stating that IDRefs must implement endPacking(). If IDRefs is not nested within Lister, the example compiles fine. As a minor point, there is also a bogus warning about BeanT being hidden within IDRefs. Since IDRefs is static, it can't make reference to the type variables defined by Lister. interface Lister<BeanT, PropT, PackT> { void endPacking(PackT p, BeanT b, Accessor<BeanT, PropT> acc); static class IDRefs<BeanT,PropT> implements Lister<BeanT,PropT,IDRefs<BeanT,PropT>.Pack> { public void endPacking(Pack p, BeanT b, Accessor<BeanT, PropT> acc) {} private class Pack{} } } class Accessor<BeanT, PropT>{}
Philippe - the method in the static member type: public void endPacking(Pack p,...) has a direct reference to Pack as a member type and not as a parameterized type. Should it be a parameterized type instead?
Philippe - this will be fixed with your changes to convert all SourceTypeBinding refs into ParameterizedType refs.
I confirm the problem is going away with my ongoing changes. Added GenericTypeTest#test871
Fixed. Will not backport to 3.1.2, since relies on param/generic binding unification.
Actually should have been closed as a dup, since no specific fix was made for this one scenario.
*** This bug has been marked as a duplicate of 80472 ***
Verified for 3.2 M4 using build I20051213-0010