Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 2, 2019

Conversation

nkcsgexi
Copy link
Contributor

@nkcsgexi nkcsgexi commented Apr 2, 2019

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

nkcsgexi added 2 commits April 1, 2019 20:29
… 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
…rmance is ABI placeholder.

ABI placeholders are decls with attribute '@available(macOS 9999, iOS
9999, tvOS 9999, watchOS 9999, *)'. The diagnostics phase could be
forgiving for ABI breakages on these decls since they are added
recently. This patch adds a new flag to the json file indicating whether
a declaration or a conformance is an ABI placeholder. The checking of
placeholder is transitive, meaning a decl is an ABI placeholder if its
decl context is one.

rdar://49502365
@nkcsgexi nkcsgexi force-pushed the witness-table-entry branch from 33a449f to 747d9df Compare April 2, 2019 17:49
@nkcsgexi
Copy link
Contributor Author

nkcsgexi commented Apr 2, 2019

@swift-ci please smoke test

@nkcsgexi
Copy link
Contributor Author

nkcsgexi commented Apr 2, 2019

This PR contains several ABI/API checker fixes that require new versions of Json baseline, thus I've regenerated baselines along with the fixes. The same changes will be applied to swift-5.1-branch as well: #23740.
CC: @akyrtzi @airspeedswift

@nkcsgexi nkcsgexi merged commit dd8b405 into swiftlang:master Apr 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant