Commit Graph

387 Commits

Author SHA1 Message Date
Ben Cohen
f625f466c4 [stdlib] Simplify internal DropFirst/PrefixSequence types (#19970)
* Simplify internal DropFirstSequence type

* Simplify internal PrefixSequence type
2018-10-22 07:53:05 -07:00
Saleem Abdulrasool
920aa2f9b7 Merge pull request #19877 from compnerd/sse-no-more
SSE no more
2018-10-16 13:11:02 -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
4ef1904e88 AST: Don't allow declarations to shadow generic parameters
Associated type inference can synthesize type aliases with the same name
as a generic parameter. This is all fine since the underlying type of
the alias is the generic parameter type, however it might have been
synthesized in a constrained extension, resulting in bogus diagnostics
that depend on the order in which declarations are type checked, which
can vary between WMO and non-WMO, different batch mode settings, etc.

Instead, let's just check the generic parameter list first.

Fixes <rdar://problem/22587551>, <rdar://problem/44777661>.
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
Erik Eckstein
15b01ab792 SIL: Remove array.owner semantic function
Also remove the getOwner functions from ArraySlide.
These functions are not needed anymore with accessors.

rdar://problem/44184810
2018-10-15 09:44:52 -07:00
Saleem Abdulrasool
2935c09a07 stdlib: rename x86_64 variables to be generic
Rename some of the variables in the VaListBuilder path to be agnostic to
the architecture.  SSE is x86 specific, by renaming the variables to
hide the fact that the path is x86 specific, we will be able to share
some of the code with arm64 (where the analogous hardware is the VFP).
2018-10-14 13:39:17 -07:00
Xi Ge
87ed4b4488 [test] Remove Swift 3 flags from various tests. 2018-10-09 16:09:41 -07:00
Xi Ge
9802206285 Merge pull request #19799 from nkcsgexi/module-digester-swift-only
swift-module-digester: add a flag to include Swift decls specifically.
2018-10-09 14:00:26 -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
329423b165 Merge pull request #19737 from nkcsgexi/enable-api-json
swift-module-digester: reenable test for Json serialization diagnostics.
2018-10-08 22:12:55 -07:00
Xi Ge
7177f4191b test: regenerate ABI/API stability baselines after recent fixes. 2018-10-08 14:05:17 -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
9ed3894667 Merge remote-tracking branch 'apple/master' into include-non-resilient-class 2018-10-08 10:51:26 -07:00
Karoy Lorentey
4967393618 Merge pull request #19688 from lorentey/hashed-bridgeobject
[stdlib] Set, Dictionary: Replace _Variant enums with _BridgeStorage
2018-10-08 12:07:40 +01:00
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
Jordan Rose
30d15682d5 Merge pull request #19522 from jrose-apple/lined-pockets
Remove unwanted exceptions from @inlinable checking
2018-10-05 14:28:21 -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
Jordan Rose
df1ef05c4c Remove unwanted exceptions from @inlinable checking
- Treat protocol requirements just like associated types in how they
  inherit usable-from-inline-ness, rather than special-casing them in
  the check for inlinable code.

- Enum elements are already treated this way, so we can remove a
  redundant check for that.

- Finally, start enforcing that 'dynamic' declarations need to be
  '@usableFromInline' to be used in inlinable functions...in Swift 5
  mode or resilient code. I didn't even add a warning in Swift 4/4.2
  because it was illegal to use '@usableFromInline' on a 'dynamic'
  declaration in Swift 4.2. (Oops.)
2018-10-05 12:21:01 -07:00
Xi Ge
9978cd9283 swift-module-digester: re-enable test for Json serialization diagnostics. 2018-10-05 11:12:44 -07:00
Karoy Lorentey
c47b922421 [test] Confess Set/Dictionary ABI changes 2018-10-05 14:07:10 +01: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
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
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
Ben Cohen
6cc6f4f182 Underscore @usableFromInlinable symbols (#19686) 2018-10-03 12:01:28 -07:00
Xi Ge
c2c04875d0 swift-module-digester: diagnose operator *fix notation changes. 2018-10-02 15:04:23 -07:00
Xi Ge
9364415eab swift-module-digester: use "stored property" instead of "fixed layout order" in diagnostics. 2018-10-02 11:15:20 -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
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
6a198b151a swift-module-digester: keep track of whether a decl is internal. 2018-09-30 18:53:35 -07:00
Stephen Canon
0707ca6dac Remove concrete floating-point inits from integer types (#19624)
Also removes .gyb from FloatingPoint.swift, since we barely are using it after this change.

Rework Self._convert from integer, by making it require RawSignificand: FixedWidthInteger. This requirement should have always been there, and the existing implementaiton wouldn't have actually worked correctly without it. Making it explcit makes the implementation quite a bit simpler, which is nice.

Additionally add a  fast-path conversion that will catch all concrete integer types without needing to be a concrete implementation itself. Room for further improvement, but good start. See RandomDouble performance improvements, for example.
2018-09-30 11:57:49 -04: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
b9c1cdefed swift-module-digester: keep track of whether a property or subscript has storage. 2018-09-28 11:36:36 -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