[foreign] RFR 8219967: Add clang document introspection API support in jdk.internal.clang module

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri Mar 1 13:38:25 UTC 2019


Looks good - please make sure that it builds on Win before pushing. I 
don't see any weird stuff long-related, but when I added support for 
macro evaluation, I found a couple of warnings on Win which where 
preventing it from building.

Maurizio

On 01/03/2019 13:37, Sundararajan Athijegannathan wrote:
> Thanks for your review!
>
> * added assert after all constructor lookup calls
> * removed unnecessary inlineContentHasTrailingNewline0 indirection
> * "indent" was the intent. oops :)
> * added space after copyright uniformly.
>
> Updated: https://cr.openjdk.java.net/~sundar/8219967/webrev.01/
>
> Thanks,
> -Sundar
>
> On 01/03/19, 5:31 PM, Maurizio Cimadamore wrote:
>>
>> Full review:
>>
>> * cleanup of native code is nice - I like that you enforced foo0 
>> everyehere
>>
>> * jdk_internal_clang.cpp - missing an assert after constructor 
>> lookup, at the top
>>
>> * kudos for implementing the full API - I can see how tedious it was :-)
>>
>> * Comment.java - why this:
>>
>> public boolean inlineContentHasTrailingNewline() {
>>    50         return inlineContentHasTrailingNewline0();
>>    51     }
>>
>> E.g. why the 0-version if that's what we want to return in the public 
>> API too?
>>
>> * Comment::intent, I think you meant "indent" ?
>>
>> * Nits: there seems to be a missing newline after copyright in all 
>> new files but Comment.java (e.g. all the new enums)
>>
>> Very good piece of work.
>>
>> Maurizio
>>
>>
>>
>> On 01/03/2019 11:32, Maurizio Cimadamore wrote:
>>
>>>
>>> On 01/03/2019 10:09, Sundararajan Athijegannathan wrote:
>>>> Please review.
>>>>
>>>> Rfe: https://bugs.openjdk.java.net/browse/JDK-8219967
>>>> Webrev: https://cr.openjdk.java.net/~sundar/8219967/webrev.00/
>>>>
>>>> PS. Piggybacking to make few cleanups:
>>>>
>>>> Made few native methods in jdk.internal.clang private.
>>>> Renamed all native methods as foo0 (kind0) pattern as used 
>>>> elsewhere in JDK rather than foo1.
>>>>
>>>> I've not added tests because other parts of jdk.internal.clang 
>>>> don't seem to have direct tests - those are exercised only via 
>>>> jdk.jextract tests. For now, I ran Comment class (which has a test 
>>>> main) on few clang headers with documentation and manually 
>>>> inspected the output.
>>>
>>> Quick idea for testing - if we added printing of comment in the 
>>> cursor (in TreePrinter), then we could have tests which check the 
>>> well-formedness of the AST (including comments)? I also have added 
>>> tree evaluation support in there, so it seems like starting to write 
>>> tree-printer based test could be a good idea (maybe not part of this 
>>> changeset, but as a followup). Reminds me of what we have done in 
>>> javac with the DPrinter framework:
>>>
>>> http://hg.openjdk.java.net/jdk/jdk/file/tip/test/langtools/tools/javac/lib/DPrinter.java 
>>>
>>>
>>> Maurizio
>>>
>>>>
>>>> Thanks,
>>>> -Sundar


More information about the panama-dev mailing list