Bug with simple name lookup inside extends clause?
Vicente-Arturo Romero-Zaldivar
vicente.romero at oracle.com
Tue Feb 18 11:49:12 PST 2014
Hi,
I have filed this bug entry:
https://bugs.openjdk.java.net/browse/JDK-8035259, to track this issue.
Thanks,
Vicente
On 14/02/14 00:02, Alex Buckley wrote:
> Regression. The scope of class T's declaration is the body of class
> Test, including the 'extends' clause of class Two and the body of
> class Two. However, the type parameter T declared for class Two should
> shadow class T's declaration throughout the 'extends' clause and body
> of class Two.
>
> Related bug: https://bugs.openjdk.java.net/browse/JDK-7118412.
>
> Alex
>
> On 2/13/2014 3:28 PM, Liam Miller-Cushon wrote:
>> The following snippet compiles with javac7, but not javac8-b128.
>>
>> Shouldn't the type parameter T be shadowing the inner class Test.T?
>>
>> ===
>> class Test {
>> class T<E> {}
>> abstract class One<E> {
>> abstract E foo();
>> }
>> abstract class Two<T> extends One<T> {
>> abstract T foo();
>> }
>> }
>> ===
>>
>> error: foo() in Test.Two cannot override foo() in Test.One
>> abstract T foo();
>> ^
>> return type T is not compatible with Test.T
>> where T,E are type-variables:
>> T extends Object declared in class Test.Two
>> E extends Object declared in class Test.One
More information about the compiler-dev
mailing list