evaluation for bug: https://bugs.openjdk.java.net/browse/JDK-8059921
Vicente-Arturo Romero-Zaldivar
vicente.romero at oracle.com
Thu Oct 23 00:30:46 UTC 2014
Hi Alex,
Thanks for your evaluation,
Vicente
On 10/22/2014 05:24 PM, Alex Buckley wrote:
> On 10/22/2014 2:30 PM, Vicente-Arturo Romero-Zaldivar wrote:
>> I would like to know your opinion about the bug in the subject. The
>> related code is:
>>
>> interface T2 { int f = 0; }
>>
>> interface T extends T2 { int f = 0; }
>>
>> class X implements T {
>> int i = T.super.f;
>> }
>>
>> The reporter considers that JLS 15.11.2 doesn't mention interfaces
>> explicitly and that for this reason this is a bug. Should the spec be
>> read more generally, thus including interfaces?
>
> No. The code shouldn't compile.
>
> The T.super.f construct is only for accessing fields of a lexically
> enclosing superclass. The goal is to allow access to instance
> variables which would otherwise be hidden. (It's also possible to
> access static variables too, but that's a side effect of how field
> access works generally.) This goal is not relevant to superinterfaces,
> as they have no instance variables to be hidden - you can always
> access their fields (static variables) via qualified names.
>
> Alex
More information about the compiler-dev
mailing list