Visibility of methods in javac.comp.Resolve
wdietl at gmail.com
Mon Feb 11 16:46:00 PST 2013
>> in the Checker Framework we allow String-valued annotations that refer
>> to variable and method names - e.g. for method post-conditions.
>> We currently use reflection to access methods in javac.comp.Resolve
>> that allow us to go from such a String to the correct Symbol.
>> For the current code, see:
>> Would it be acceptable to change the visibility of a few "findXXX"
>> methods in javac.comp.Resolve from package-default to public?
>> In particular, we currently use:
>> - com.sun.tools.javac.comp.Resolve.findIdent(Env<AttrContext>, Name, int)
>> - com.sun.tools.javac.comp.Resolve.findType(Env<AttrContext>, Name)
>> - com.sun.tools.javac.comp.Resolve.findMethod(Env<AttrContext>, Type,
>> Name, List<Type>, List<Type>, boolean, boolean, boolean)
>> In the future, we might also want:
>> Env<AttrContext>, Type, List<Type>, List<Type>, boolean, boolean)
>> The class already provides a few public methods; having these
>> additional methods made public would make it much more useful for us.
>> What do you think? Do you see a cleaner solution for us?
>> cu, WMD.
> In general, you should not be relying on any API in a class that
> contains the comment:
> * <p><b>This is NOT part of any supported API.
> * If you write code that depends on this, you do so at your own risk.
> * This code and its internal interfaces are subject to change or
> * deletion without notice.</b>
> It would be more appropriate to provide suitable methods in the
> com.sun.source or javax.lang.model API.
Is there already some existing API to which we could add this feature?
Is there any chance of this happening for Java 8?
More information about the type-annotations-dev