swift-api-digester: diagnose changing of the necessity of new witness table entry as ABI breakage

Protocol requirements may not necessarily add new entries to the witness table if
it's inherited from super protocol. This patch teaches the json dump to
include a flag indicating whether a protocol requirement requires new
witness table entry and diagnoses the change of such flag as ABI
breakages.

rdar://47657204
This commit is contained in:
Xi Ge
2019-04-01 20:15:54 -07:00
parent f85ca6c01a
commit f7406e6c3c
16 changed files with 186 additions and 89 deletions

View File

@@ -66,6 +66,7 @@ static StringRef getCategoryName(uint32_t ID) {
return "/* Protocol Conformance Change */";
case LocalDiagID::default_associated_type_removed:
case LocalDiagID::protocol_req_added:
case LocalDiagID::decl_new_witness_table_entry:
return "/* Protocol Requirement Change */";
case LocalDiagID::super_class_removed:
case LocalDiagID::super_class_changed: