Commit Graph

131 Commits

Author SHA1 Message Date
Xi Ge
c5550ce2f8 test: regenerate abi stability baseline after recent fixes. 2018-10-05 14:48:56 -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
2d59078a0d [test] Regenerate ABI/API checker baseline by using stdlib without assertion enabled.
If we use a baseline generated from assertion build, the checker will report false-positives
when running in a non-assertion build since some decls only exist in the former.

resolves: rdar://45014723
2018-10-04 15:57:56 -07:00
Xi Ge
b7c9e5798a [test] regenerated ABI checker baseline to include decls with @usableFromInline. 2018-10-03 14:56:24 -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
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
4b8507c858 [test] Regenerate abi and source stability baseline and start running tests for them. 2018-10-01 15:14:58 -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
a6f886c8b7 swift-module-digester: include operator overloads in the module dump. 2018-09-28 17:41:52 -07:00
Xi Ge
7b45ae9135 swift-module-digester: diagnose adding/removing @escaping as ABI breakage. 2018-09-27 17:43:02 -07:00
Xi Ge
6665b56e9d swift-module-digester: changing open class members to public can be source-breaking. 2018-09-27 14:38:59 -07:00
Xi Ge
0afafd1ca4 swift-module-digester: diagnose let to var changes and vice versa as ABI breaking. 2018-09-27 14:25:46 -07:00
Xi Ge
c5444a8e99 swift-module-digester: diagnose optional protocol requirement changes. 2018-09-27 13:45:23 -07:00
Xi Ge
aa1ae1607a swift-module-digester: keep track of whether a VarDecl is let. 2018-09-27 12:52:58 -07:00
Xi Ge
52e05e1495 swift-module-digester: always canonicalize super class types. 2018-09-27 11:16:15 -07:00
Xi Ge
cf03b247d6 swift-module-digester: use super class types instead of super class decls to incorporate generic argument changes. 2018-09-25 11:48:47 -07:00
Xi Ge
e1f4eecadb swift-module-digester: don't diagnose new protocol requirements if they're inherited. 2018-09-25 11:12:55 -07:00
Xi Ge
c0556cc4dd swift-module-digester: keep track of whether a decl overrides in the dump. 2018-09-25 11:04:55 -07:00
Xi Ge
2182f5301e swift-module-digester: fix a false positive when diagnosing super class changes. 2018-09-24 17:31:13 -07:00
Xi Ge
d0cd97e3e5 swift-module-digester: diagnose any decl kind changes for nominal types. 2018-09-24 14:47:19 -07:00
Xi Ge
9db65f8527 swift-module-digester: removing super classes is API breaking. 2018-09-24 12:51:20 -07:00
Xi Ge
4e3f8f4784 swift-module-digester: added protocol requirements can be source-breaking. 2018-09-23 08:48:08 -07:00
Xi Ge
a64ae05454 swift-module-digester: keep track of whether a protocol member is a requirement. 2018-09-23 08:25:07 -07:00
Xi Ge
5fbecfaee6 swift-module-digester: removing setter from a subscript decl is API breaking. 2018-09-21 18:40:02 -07:00
Xi Ge
f72620c3b7 swift-module-digester: removing setter from a property is API breaking. 2018-09-21 18:25:12 -07:00
Xi Ge
01afc3395e swift-module-digester: include SubscriptDecl in the Json dump.
We model SubscriptDecl as an abstract function decl with a flag indicating
whether setter is defined.
2018-09-21 17:00:52 -07:00
Xi Ge
565fd91a76 swift-module-digester: changing default associated type is API breaking. 2018-09-21 14:38:12 -07:00
Xi Ge
e8c604ff99 swift-module-digester: diagnose removing default associated type as API breakage. 2018-09-21 14:14:39 -07:00
Xi Ge
6500e321aa swift-module-digester: include AssociatedTypeDecl in module digests. 2018-09-21 14:04:21 -07:00
Xi Ge
6cc5855bcf swift-module-digester: when we have multiple extensions to a single external type, we should synthesize only one type decl node. 2018-09-20 16:13:40 -07:00
Xi Ge
08c8cf14e5 swift-module-digester: diagnose adding/removing protocol conformances as API breakages. 2018-09-20 15:24:19 -07:00
Xi Ge
f1b43ab66e swift-module-digester: diagnose removing default argument as API breakage. 2018-09-19 17:40:00 -07:00
Xi Ge
b2a159dbf9 swift-module-digester: diagnose adding variables with fixed binary order.
Removing these variables should be detected as API breakages already.
2018-09-19 13:17:08 -07:00
Xi Ge
971755d5a3 swift-module-digester: under ABI checking mode, include private decls with fixed binary order. 2018-09-19 12:10:00 -07:00
Xi Ge
05e15927a3 swift-module-digester: diagnose reordering of members in a fixed layout type under ABI mode. 2018-09-19 09:36:09 -07:00
Xi Ge
bc79f3011a swift-api-digester: diagnose removal/addition of dynamic attribute under abi mode. 2018-08-16 16:50:10 -07:00
Xi Ge
07e002ce5e swift-api-digester: diagnose generic signature change for any declarations. 2018-08-16 11:32:43 -07:00
Xi Ge
17b9a4edf9 swift-api-digester: diagnose the addition and removal of @objc, @_fixed_layout and @_frozen under ABI mode. 2018-08-15 17:49:01 -07:00
Xi Ge
b78c9eb328 swift-api-digester: ensure the sdk-dump includes extensions from types of other modules. rdar://42266041 2018-07-20 17:26:22 -07:00
Saleem Abdulrasool
bc27395838 Inputs: sprinkle _Null_unspecified to silence nullability-completness
When trying to figure out errors from an import failure, the nullability
completeness warnings would clutter the output making it difficult to
identify the errors.  Sprinkle the declaarations with
`_Null_unspecified` to maintain the current nullability semantics and
silence the warnings.  NFC.
2018-06-11 09:23:22 -07:00
Xi Ge
82ca0a1891 swift-api-digester: detect type alias of raw types change to RawRepresentableStructs.
Related to: rdar://40076487
2018-05-23 12:23:47 -07:00
Xi Ge
1556d62bce swift-api-digester: we should further detect if the declared type of a hoisted variable has been changed. rdar://40076924 2018-05-09 13:42:20 -07:00
Xi Ge
e15c197823 swift-api-digester: detect simple parameter/return type update from String to StringRepresentableStruct. 2018-04-08 13:24:12 -07:00
Xi Ge
3e00fda3e0 swift-api-digester: teach the tool to detect [String] changes to [StringRepresentable]. 2018-04-07 10:55:41 -07:00
Xi Ge
cd87f4142d swift-api-digester: add specific logic to detect optional dictionary's key changes.
We've also seen type changes in the frameworks from "[String: Any]?" to
"[StringRepresentable: Any]?". This patch adds specific logic and
attribute for this kind of change on the top of nonnull dictionary
changes.
2018-04-06 16:43:56 -07:00
Xi Ge
9042db57b2 swift-api-digester: ignore synthesized type members from conformed clang protocols. 2018-04-06 12:42:30 -07:00