RFR: JDK-8218630: CreateSymbols includes class and module headers unnecessarily.
jan.lahoda at oracle.com
Thu Feb 7 17:15:36 UTC 2019
Joe noted that the proposed historical data for JDK 12:
may contain unnecessary items, and it indeed is the case.
The main problems appear to be:
-when the class headers are being compared, the nestMembers for the
current version may be null, and the nestMembers for the previous
version may be an empty list. So, currently, such headers won't match
and the header will be generated again to the historical record.
listMatch can be used to consider null and empty list to be the same
-module header descriptions may refer to
RequiresDescription/ProvidesDescription, which are missing
hashCode/equals, which means that headers that have either requires or
provides won't match any of the existing headers. The fix is to add
hashCode and equals
I generated the ct.sym for the original JDK 12 historical data from
and the historical data generated by this patch, and the resulting
content appears to be equivalent.
Proposed webrev: http://cr.openjdk.java.net/~jlahoda/8218630/webrev.00/
How does this look?
More information about the compiler-dev