Wow, that’s a substantial amount of code/classes removed! The code changes and generated docs look good. +1.
Hannes > Am 02.04.2020 um 22:37 schrieb Jonathan Gibbons <jonathan.gibb...@oracle.com>: > > Please review a mostly-cleanup change to merge support for annotation types > into the support for other types, like classs, interfaces, enums, and > records. Apart from some very small changes, there should be no visible > difference to any generated documentation. > > At the high level this means moving annottaion-type-specific functionality, > i.e. for required and optional elements, from > AnnotationType{Builder,Writer,WriterImpl} to Class{Builder,Writer,WriterImpl} > so that the annotation-type classes can be deleted. > > A bonus is that what was previously treated as ANNOTATION_FIELD is really the > same as FIELD, and so the AnnotationTypeField{Builder,Writer,WriterImpl} > classes can be removed as well. > > The changes are mostly moving or deleting code. There are some minor > exceptions: > > * In VisibleMemberTable, we more accurately determine the kind of fields and > methods in annotation types, and suppress the methods inherited from > java.lang.Annotation, which otherwise show up in the "inherited methods" > summary. > > * In ClassWriterImpl, we suppress writing out the extends/implements clauses > for annotation types. Also, there is one minor notatable difference that for > annotation types, an additional "id" is declared on the details section. This > "id" is referenced by the annotation-type support in the navbar. Maybe this > could be cleaned up later; for now it seems better to minimize the changes in > the generated code. > > * In various places, references to ANNOTATION_TYPE_FIELDS is changed to FIELDS > > * In various places, signatures referencing AnnotationTypeBuilder and friends > were updated to use ClassBuilder and friends. > > Tests: 3 tests need to be updated. > > 1. TestAnnotationTypes is updated for the ANNOTATET_TYPE_FIELD to FIELD > rename. It seems perverse to retain the old behavior. > > 2. Bug fix: the old code incorrectly used CSS class "member-name-label" when > the more appropriate name is "type-name-label". > > 3. TestMetadata.java is updated to indicate that AnnotationTypeWriterImpl no > longer writes out any pages (because it has been deleted.) > > > There are some potential downstream enhancements, for later: > > * Improve the reporting of annotation type member elements in the static A-Z > index. Right now, they're reported as "methods". > > * Verify that nested types are now properly handled in annotation types. (And > maybe anno types in regular classes) > > * Improve the navigation (i.e. top nav bar) to nested types in annotation > types. > > > -- Jon > > JBS: https://bugs.openjdk.java.net/browse/JDK-8242056 > Webrev: http://cr.openjdk.java.net/~jjg/8242056/webrev.00/ > API: http://cr.openjdk.java.net/~jjg/8242056/api.00/ >