Xi Ge
350ed65def
swift-api-digester: simplify the API to emit diagnostics. NFC
...
All diagnostics in the abi/api checker shares empty source location
and a screening info string as the first argument. This patch
adds a new forwarding function to avoid duplicating these common
logics.
2019-03-27 14:28:41 -07:00
Saleem Abdulrasool
760ef4442a
swift-api-digester: use elaborated typename
...
cl is unable to disambiguate between `swift::KnownProtocolKind` and
`swift::ide::api::KnownProtocolKind`. Use the elaborated typename to
disambiguate the type. This allows us to build `swift-api-digester`
with cl again.
2019-02-24 15:38:45 -08:00
Harlan Haskins
081b05a4b4
[api-digester] Don’t synthesize type nodes with no public members
...
Upon seeing an extension for a type outside the current module, the digester
creates a dummy type node and puts all the extensions’ members and conformances
in that type. This allows us to track new API endpoints that are retroactively
added.
Unfortunately, if there are no public members/conformances (only internal or
private ones), the type itself ends up in the SDK dump without any public
children. This causes an issue when you dump the SDK from a parseable
interface, where the internal extension was not printed.
2019-01-30 11:45:19 -08:00
Parker Schuh
f5859ff46e
Rename NameAliasType to TypeAliasType.
2019-01-09 16:47:13 -08:00
Xi Ge
588391eb7e
swift-api-digester: avoid synthesizing nominal types from the same module.
...
Synthesizing types from the same module may bring back types that are
not part the ABI/API, leading to false positives.
Resolves: SR-9372
2018-12-12 11:26:07 -08:00
Xi Ge
6fac47e7e6
swift-module-digester: non-final methods in fixed-layout classes no longer have fixed orders. rdar://46617463
2018-12-12 11:26:07 -08:00
Xi Ge
33c0b4f4b2
swift-module-digester: test -v mode when diagnosing ABI/API changes.
2018-12-07 14:23:19 -08:00
Adrian Prantl
ff63eaea6f
Remove \brief commands from doxygen comments.
...
We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.
Patch produced by
for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
2018-12-04 15:45:04 -08:00
swift-ci
7f121bf2f7
Merge pull request #20843 from akyrtzi/api-checker-protocol-whitelist
2018-11-28 15:57:10 -08:00
Argyrios Kyrtzidis
2358c8944f
[api-digester] For readFileLineByLine() ignore lines that are comments
...
Allows us to add informational comments in the text files that are used as inputs for the digester.
2018-11-28 15:34:36 -08:00
Argyrios Kyrtzidis
5e7327714f
[api-digester] Add '-protocol-requirement-white-list' option to the digester for when diagnosing API breakage in SDKs
...
This option access a file that lists protocol names that are 'whitelisted' for getting new protocol requirements.
This allows the SDK checker to avoid flagging protocol method additions for protocols that we know are not intended
for user classes to conform to.
2018-11-28 15:01:39 -08:00
Argyrios Kyrtzidis
0413358f25
[api-digester] Don't report as API breaking when an ObjC protocol gets a new optional method
2018-11-28 11:59:20 -08:00
Saleem Abdulrasool
dd85d79105
tools: use target_link_libraries like clang (NFC)
...
Rather than using the `LINK_LIBRARIES` option, use target_link_libraries
like clang does. Because these are all host tools, there is no name
mangling done for the libraries making this a no-op change.
2018-11-16 17:43:06 -08:00
Xi Ge
8c0495f467
swift-module-digester: drop isSDKPrivate() from node since filtering should happen at AST level.
2018-10-25 17:41:28 -07:00
Xi Ge
49c16922dd
swift-module-digester: diagnose type witness type changes when checking ABI stability.
2018-10-25 16:40:23 -07:00
Xi Ge
fcc4bf5be2
swift-module-digester: don't blindly include initializer decls. rdar://45418572
2018-10-25 15:14:17 -07:00
Xi Ge
da4fc05a0e
swift-module-digester: model ProcotolConformance as a standalone node.
...
Modeling ProtocolConformance as a standalone node allows us to keep
track of all type witnesses and re-use existing matching algorithm
to diagnose type witness changes.
2018-10-25 15:14:17 -07:00
Slava Pestov
8954e5f3c8
Merge pull request #19891 from slavapestov/unqualified-lookup-fixes-part-2
...
Unqualified lookup fixes, part 2
2018-10-15 23:02:19 -07:00
swift-ci
7cd273e777
Merge pull request #19904 from nkcsgexi/redirect-diags
2018-10-15 20:06:13 -07:00
Slava Pestov
7c6a6bd724
swift-api-digester: Minor typos
2018-10-15 19:24:27 -07:00
Slava Pestov
91fc404d4f
swift-api-digester: Don't desugar type aliases all the way
2018-10-15 19:24:27 -07:00
Slava Pestov
5e7a289877
swift-api-digester: Subscripts don't have storage
2018-10-15 19:24:27 -07:00
Slava Pestov
ba066b8257
swift-api-digester: Don't drop value ownership when parameter has typealias type
2018-10-15 19:24:27 -07:00
Xi Ge
70118d4db0
swift-module-digester: output ABI/API diagnostics to a path instead of stdout.
...
This is handy for scripts.
2018-10-15 19:12:34 -07:00
Xi Ge
715d481333
swift-module-digester: remove unused clang importer flag specialization.
2018-10-14 23:10:28 -07:00
Xi Ge
3f58f1e6d3
swift-module-digester: add a flag to include Swift decls specifically.
...
This flag allows us to diagnose the overlay part exclusively without digesting
the entire SDK framework.
2018-10-09 12:57:22 -07:00
Xi Ge
c8c7fb39b0
swift-module-digester: exclude fixed binary order when checking API stability.
2018-10-08 13:59:30 -07:00
Xi Ge
847aa9b327
swift-module-digester: avoid including private protocol conformances when checking API stability.
2018-10-08 13:30:30 -07:00
Xi Ge
382e27f4ab
swift-module-digester: diagnose adding/removing final as ABI/API breakages.
2018-10-08 13:19:54 -07:00
Xi Ge
bfadd46d57
swift-module-digester: diagnose non-final function changes in non-resilient classes.
2018-10-08 12:15:55 -07:00
Xi Ge
8a769a0460
swift-module-digester: include non-resilient class decls when checking ABI stability.
2018-10-05 14:48:00 -07:00
Xi Ge
9cfc0dee79
swift-module-digester: keep track of whether a property/subscript has didSet and willSet.
2018-10-05 13:02:31 -07:00
Xi Ge
a1e66a0515
swift-module-digester: diagnose value ownership changes for parameters.
2018-10-04 18:02:45 -07:00
Xi Ge
5bab518d5f
swift-module-digester: include parameters' value ownership values in the digests.
2018-10-04 15:57:56 -07:00
Xi Ge
78271f19a0
swift-module-digester: diagnose self access kind changes for function decls.
2018-10-04 15:57:56 -07:00
Xi Ge
d36fc85535
swift-module-digester: include underscored and unavailable decls when checking stdlib abi stability.
2018-10-03 14:54:08 -07:00
Xi Ge
58b3c2173f
swift-module-digester: use getEffectiveAccess() to get accessibility when checking ABI stability.
...
This allows us to include internal decls with @usableFromInline attribute, whose stored property
changes can effect ABI.
2018-10-03 14:06:53 -07:00
Xi Ge
c2c04875d0
swift-module-digester: diagnose operator *fix notation changes.
2018-10-02 15:04:23 -07:00
Xi Ge
784cb9e1a9
Revert "swift-module-digester: diagnose added associated types as ABI breakages even they have default type."
2018-10-02 11:12:37 -07:00
Xi Ge
a969486932
swift-module-digester: diagnose added associated types as ABI breakages even they have default type.
2018-10-01 16:00:36 -07:00
Xi Ge
8e81b59f4e
swift-module-digester: diagnose fixed-order property changes to computed property and vice versa as ABI breakage.
2018-10-01 15:54:14 -07:00
Xi Ge
b3614a4b6f
swift-module-digester: include unavailable variables with fixed layout order when checking ABI stability.
2018-10-01 15:02:41 -07:00
Xi Ge
9fcc59bcaf
swift-module-digester: include operator declarations in the module dump.
...
Their changes should have no impact on ABI, but can be source-breaking.
2018-10-01 12:28:54 -07:00
Xi Ge
6a198b151a
swift-module-digester: keep track of whether a decl is internal.
2018-09-30 18:53:35 -07:00
Xi Ge
226811007b
swift-module-digester: refactor diagnostics logic. NFC
2018-09-29 20:18:29 -07:00
Xi Ge
d15f611acd
Merge pull request #19620 from nkcsgexi/include-operator
...
swift-module-digester: include operator overloads in the module dump.
2018-09-28 20:35:57 -07:00
Xi Ge
a6f886c8b7
swift-module-digester: include operator overloads in the module dump.
2018-09-28 17:41:52 -07:00
Xi Ge
e31b04495e
swift-module-digester: print node matching details in verbose mode for debugging purposes, NFC.
2018-09-28 13:50:09 -07:00
Xi Ge
b9c1cdefed
swift-module-digester: keep track of whether a property or subscript has storage.
2018-09-28 11:36:36 -07:00
Xi Ge
459538f49a
swift-module-digester: slight performance enhancement to re-use node comparison results. NFC
2018-09-28 11:05:57 -07:00