6908259: Covariance bug for multiple interface inheritence
David M. Lloyd
david.lloyd at redhat.com
Tue Feb 9 08:03:59 PST 2010
On 02/09/2010 09:59 AM, Neal Gafter wrote:
> On Tue, Feb 9, 2010 at 7:47 AM, David M. Lloyd<david.lloyd at redhat.com> wrote:
>> However, later on in 8.4.8.4:
>>
>> [-cut-]
>> * If all the inherited methods are abstract, then the class is
>> necessarily an abstract class and is considered to inherit all the abstract
>> methods. A compile-time error occurs if, for any two such inherited methods,
>> one of the methods is not return type substitutable for the other (The
>> throws clauses do not cause errors in this case.)
>
> Section 8.4.8.4 is specifically about classes. The test cases of
> interest contain interfaces, not classes, and so 8.4.8.4 does not
> apply.
OK, so if you go with that interpretation then the earlier section
(8.4.8.1) seems to say that if you don't override the method explicitly,
then covariance doesn't apply, which would mean that my simpler patch is
the correct one and Mr. Cimadamore's T6294779b example class should not
compile, right?
- DML
More information about the compiler-dev
mailing list