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