Commit Graph

4464 Commits

Author SHA1 Message Date
Stephen Canon
2f015ce574 Conform Float80 to CustomReflectable. (#18577)
Fixes SR-8492.
2018-08-08 19:34:17 -04:00
Mox Soini
c66e136c18 Improve documentation for compactMapValues() of Dictionary (#18547) 2018-08-08 00:25:49 -05:00
Nate Cook
efb0415a61 [stdlib] More documentation revisions (#18263)
- Fix error in `last(where:)` example
- Improve MemoryLayout, UnsafePointer, and integer operator discussions
- Clean up ranges and random APIs
- Revisions to overflow operators and the SignedNumeric requirements
- Standardize on 'nonoptional' in remaining uses
2018-08-08 00:25:09 -05:00
Xiaodi Wu
0dcaff99eb Merge pull request #18511 from xwu/simplify-fp-int-conversion
[stdlib] Simplify concrete floating-point-to-integer conversion
2018-08-07 23:02:59 -04:00
Xiaodi Wu
c2ed788dad [stdlib] Restore rounding-based test of numeric conversion exactness 2018-08-07 21:29:51 -04:00
eeckstein
1ccad42482 Merge pull request #18520 from eeckstein/utf8iterator
stdlib: mark the UTF8View iterator's next function as inline-always.
2018-08-06 13:38:16 -07:00
swift-ci
71f0248b0a Merge remote-tracking branch 'origin/master' into master-next 2018-08-06 11:07:55 -07:00
Erik Eckstein
93e7786161 stdlib: mark the UTF8View iterator's next function as inline-always.
This speeds up C-String handling

rdar://problem/42247427
2018-08-06 10:28:32 -07:00
Xiaodi Wu
44f02a2fd1 [stdlib] Simplify fp-to-int and int-to-fp conversion 2018-08-04 15:36:38 -04:00
Michael Ilseman
8294c0003a [string] Drop _StringGuts subscript; NFC
_StringGuts shouldn't expose a subscript, implying efficient
access. Switch to the explicit code unit fetch method. Update tests
accordingly, and switch off of deprecated typealiases.
2018-08-02 16:34:22 -07:00
Michael Ilseman
ced2e63d95 [test] Make string internal testing a little more robust; NFC
Add an isSmall query to Character so testing doesn't have to bake in
internal format. Clarify the purpose of the invalid UTF-16 backdoor
creation method.
2018-08-02 16:34:19 -07:00
swift-ci
84909c68db Merge remote-tracking branch 'origin/master' into master-next 2018-08-02 13:29:01 -07:00
Michael Ilseman
336ae86bc5 [string] Un-break Linux build 2018-08-02 10:17:03 -07:00
Michael Ilseman
ba6158d74e [test] Internalize _StringGuts; Add shared testing struct; NFC
Create a _StringRepresentation struct to standardize internal testing
on. Internalize much of _StringGuts, except for some SPI hacks, and
update tests to use _StringRepresentation.
2018-08-01 14:23:56 -07:00
Michael Ilseman
1859ae404a [test] Internalize SmallString; NFC 2018-08-01 14:23:56 -07:00
swift-ci
bf137ae65b Merge remote-tracking branch 'origin/master' into master-next 2018-07-31 18:59:26 -07:00
Michael Ilseman
d3f7a1615b [stdlib] Eviscerate MigrationSupport String impl
Remove many of the implementations of obsoleted String functionality
by replacing it with unreachable. A few remain temporarily until the
Foundation overlay can be updated.

Also, update TestJSONEncoder.swift off of deprecated functionality.
2018-07-31 15:42:22 -07:00
swift-ci
8247c2ba15 Merge remote-tracking branch 'origin/master' into master-next 2018-07-30 13:09:54 -07:00
Joe Groff
f8e5ebe873 Merge pull request #18299 from jckarter/enable-key-path-resilience
Enable key path resilience.
2018-07-30 13:00:43 -07:00
swift-ci
be19f650fd Merge remote-tracking branch 'origin/master' into master-next 2018-07-30 10:08:59 -07:00
swift-ci
37faf21f51 Merge pull request #18289 from Dante-Broggi/patch-6 2018-07-30 10:04:35 -07:00
swift-ci
be42f56e2c Merge remote-tracking branch 'origin/master' into master-next 2018-07-27 17:19:18 -07:00
Doug Gregor
ee1713ce67 [Standard library] Break up another “large” expression.
Bitwise arithmetic is a killer for the type checker :(. Shave off another
half second of typecheck time in the standard library.
2018-07-27 15:37:59 -07:00
Doug Gregor
6ffcbc5eff [Standard library] Faster formulation for the _HasherTailBuffer sanity check 2018-07-27 15:37:59 -07:00
Doug Gregor
fa9a24538f [Standard library] Ascribe types to some literals to improve typecheck time.
One expression in the new hashing implementation is going exponential,
accounting for a huge amount of type-checking type. Add (admittedly ugly)
“as UInt64” annotations to greatly reduce the time to type-check this
expression.

*Ahem* type-checking time for the standard library goes from 24s->14s with
this change. Added a type-checker “slow” performance test and captured
the problem in rdar://problem/42672946.
2018-07-27 14:10:49 -07:00
Joe Groff
b89ed05148 KeyPaths: Followup fix for computed component size 2018-07-27 13:16:14 -07:00
Joe Groff
c4806b5889 KeyPaths: Centralize alignment manipulations in helpers. 2018-07-27 13:15:49 -07:00
Joe Groff
f01c731a6b KeyPaths: Fix alignment skew issue when key path pattern ends with a less-than-pointer-aligned element. 2018-07-27 13:15:49 -07:00
Dante Broggi
6e5b471aad "if is RandomAccessCollection" is unnecessary
* remove the performance qualifiers on API redeclared from `Collection`, because they are necessarily satisfied.
2018-07-27 14:28:21 -04:00
swift-ci
f2623b8659 Merge remote-tracking branch 'origin/master' into master-next 2018-07-26 10:29:20 -07:00
Max Moiseev
26790d0c72 Merge pull request #18165 from moiseev/bidirectional-decls
[stdlib] Explicitly declare Collection requirements on child protocols
2018-07-26 10:15:16 -07:00
swift-ci
87fc9d2cf8 Merge remote-tracking branch 'origin/master' into master-next 2018-07-26 00:49:24 -07:00
swift-ci
128d33cb85 Merge pull request #18169 from ravikandhadai/InconsistentUnreachWarning 2018-07-26 00:37:33 -07:00
swift-ci
a39a50d142 Merge remote-tracking branch 'origin/master' into master-next 2018-07-25 21:09:25 -07:00
Joe Groff
665bcb99a5 Merge pull request #18100 from jckarter/keypath-external-irgen
IRGen and runtime support for key path resilience.
2018-07-25 21:04:40 -07:00
swift-ci
e5e4bab96e Merge remote-tracking branch 'origin/master' into master-next 2018-07-25 18:09:16 -07:00
Michael Ilseman
296ee295a1 [gardening] De-gyb Substring; NFC 2018-07-25 15:42:48 -07:00
Maxim Moiseev
7cbfed3f3a [stdlib] Explicitly declare Collection requirements on child protocols
Fixes: <rdar://problem/42408692> and SR-8022
2018-07-25 15:12:40 -07:00
Michael Ilseman
ba591b3f3c [stdlib] Drop some inlinability annotations.
ThreadLocalStorage is not accessible in an inlinable context, so drop
all such annotations. Also, drop a redundant one from Optional to
suppress a warning.

NFC
2018-07-25 15:04:48 -07:00
Joe Groff
4098aa02c7 KeyPaths: Support instantiating property descriptors with captured arguments. 2018-07-25 14:28:33 -07:00
Michael Ilseman
463e3747a8 [gardening] Factor out String bidi conformance
Add StringCharacterView.swift for String's bidi conformance. NFC.
2018-07-25 14:14:37 -07:00
Michael Ilseman
2195cda3ec [gardening] Rename StringUTFx.swift to StringUTFxView.swift 2018-07-25 14:09:45 -07:00
Michael Ilseman
4a66c4719f [gardening] Move string creation internals to StringCreate.swift
NFC
2018-07-25 14:05:46 -07:00
Ravi Kandhadai
81fad3c367 [Stdlib] Make the comparison operators (<, >, <= and >=) on concrete Int types transparent.
This makes all operators symmetric, and makes constant folding
and unreachable code analysis more precise and consistent.

<rdar://39516135>
2018-07-25 12:02:02 -07:00
Joe Groff
fceea87bf4 KeyPaths: Support instantiating generic property descriptors from concrete contexts.
This is a bit easier than the fully general case where both the external descriptor and local pattern have captured arguments (because of generics or subscript indices) since we don't have to combine the two argument files in one component.
2018-07-25 11:09:04 -07:00
Joe Groff
02fa6311ae KeyPaths: Centralize some flag testing logic. 2018-07-25 11:09:04 -07:00
Joe Groff
36882aae7a Remove test/stdlib/KeyPathImplementation test.
This was useful for bringup before compiler support for building key path patterns was implemented, but now it just hardcodes a bunch of implementation details that expose some internal details as ABI and interfere with refactorings. Remove it now that the same functionality is tested at a higher level.
2018-07-25 11:09:04 -07:00
Joe Groff
add80edea9 KeyPaths: Rationalize fragility attributes. 2018-07-25 11:09:04 -07:00
Joe Groff
3b9501a283 KeyPaths: Handle computed property descriptor instantiation w/o indexes or generics. 2018-07-25 11:09:04 -07:00
Joe Groff
e96472807f KeyPaths: Instantiate external property descriptors for stored properties. 2018-07-25 11:09:04 -07:00