RFR: JDK-8186688 javax.lang.model.util.Elements.hides does not work correctly with interfaces
Jonathan Gibbons
jonathan.gibbons at oracle.com
Fri Feb 23 15:32:46 UTC 2018
Maurizio,
Thanks for the review.
Yes, the intent was not to change the behavior of any existing uses of
isInheritedIn in javac, except for the one problem case in
JavacElements, where even the existing comment hinted that the method
being used seemed inappropriate, even though it originally had the
desired functionality.
I'll make the new method final and update the doc comments. I generally
defer updating copyright headers to minimize trivia in the webrev.
-- Jon
On 2/22/18 4:59 PM, Maurizio Cimadamore wrote:
> If I'm correct this fix doesn't really change anything in terms of the
> implementation - the main goal is to give Symbol.isInheritedIn a
> 'fresh' name so that the overridden version in MethodSymbol is never
> called? Seems a tad subtle :-)
>
> I suggest making the new method 'final' to avoid possibilities of
> similar issues in the future (e.g. if an override of 'isAccessibleIn'
> is added, things will be broken again).
>
> Also, minor nit, the javadoc of the two sibling methods are slighty
> off sync ("of the given class" vs. "of given class"); copyright
> headers in tests could also use a refresh.
>
> Cheers
> Maurizio
>
>
> On 23/02/18 00:37, Jonathan Gibbons wrote:
>> Please review a simple fix to Symbol, to provide the ability to see
>> if an element is accessible in a subtype, as distinct from being
>> inherited. This is needed by JavacElements.hides.
>>
>> The test was provided by Kumar, in the original bug report.
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8186688
>> Webrev: http://cr.openjdk.java.net/~jjg/8186688/webrev.00/
>>
>> -- Jon
>
More information about the compiler-dev
mailing list