Commit Graph

5543 Commits

Author SHA1 Message Date
Tomohiro Kumagai
cf8a733a4d [stdlib] [docs] Modify Set's type parameter name in comments.
In swift 2.0, type parameter name of `Set` is changed from `T` to `Element`.
Therefore, modified the names which appear in code comments and a document.
2016-01-11 16:02:05 +09:00
JohnLui
451ce376e3 [stdlib] Change C-style for loop to Swift-style for-in loop 2016-01-09 12:57:55 +08:00
Maxim Moiseev
bf969a385f Merge pull request #894 from nonsensery/fix-inc-if-signed-logic
[stdlib] Remove confusing `incIfSigned` control flow
2016-01-08 17:27:13 -08:00
practicalswift
73b63c894b Conform to standard spacing around operators, etc. 2016-01-09 01:39:22 +01:00
practicalswift
57d4f2d4da Remove redundant backslashes. 2016-01-09 01:39:22 +01:00
practicalswift
21c3d93bea Remove unused imports. 2016-01-09 01:39:22 +01:00
nonsensery
e76dbd5798 Remove confusing incIfSigned control flow
This function was named exactly backwards (it incremented only when
*not* signed). Investigating this naming error revealed that the call
site was also unclear: `incIfSigned` was called from a block where
`signed` was known to be False). So, I inlined the logic in the one
place where it was actually used, and removed the function.
2016-01-08 15:35:15 -08:00
Doug Gregor
1a38e0ad3b Merge branch 'master' into swift-3-api-guidelines 2016-01-06 15:32:55 -08:00
Max Moiseev
31f17e212c [stdlib] using static method dispatch instead of failable casts
Overriding `AnySequence.dropFirst` and `AnySequence.prefix` to delegate
these operations to an underlying sequence, thus simplifying default
implementations in `Sequence`.
2016-01-06 13:22:24 -08:00
Max Moiseev
1600c52822 [stdlib] Constraining AnySequence.init
... to only allow sequences where SubSequence.SubSequence ==
SubSequence. See swift-evolution proposal
https://github.com/apple/swift-evolution/blob/master/proposals/0014-constrained-AnySequence.md
for more details.
2016-01-06 12:25:09 -08:00
practicalswift
4689a22f1b Replace left/right quotation marks with apostrophes in non-quote contexts
* LEFT SINGLE QUOTATION MARK (U+2018) → APOSTROPHE (U+0027)
* RIGHT SINGLE QUOTATION MARK (U+2019) → APOSTROPHE (U+0027)
2016-01-06 12:29:40 +01:00
nonsensery
a23e16199f [stdlib] Fix conversion from (signed) int to float in default init
The default initializer for a float types initializes the value to `0`
by calling a “builtin” function to convert an integer with value `0`
into an “FPIEEE” float with value `0`. The integer value is signed, but
the code was calling a function that expected an unsigned integer.
2016-01-05 16:08:02 -08:00
Max Moiseev
f51e708a8f Merge remote-tracking branch 'origin/master' into swift-3-api-guidelines 2016-01-04 12:25:25 -08:00
practicalswift
1339b5403b Consistent use of header comment format.
Correct format:
//===--- Name of file - Description ----------------------------*- Lang -*-===//
2016-01-04 13:26:31 +01:00
practicalswift
fd608f3d85 Fix incorrect file names in file headers. 2016-01-04 10:02:46 +01:00
practicalswift
f91525a10f Consistent placement of "-*- [language] -*-===//" in header. 2016-01-04 09:46:20 +01:00
practicalswift
50baf2e53b Use consistent formatting in top of file headers. 2016-01-04 02:17:48 +01:00
Michael Gottesman
3d8433b7f6 [arc] Add in a new semantics attribute called "arc.programtermination_point" and document it.
If this semantic tag is applied to a function, then we know that:

- The function does not touch any reference counted objects.
- After the function is executed, all reference counted objects are leaked
  (most likely in preparation for program termination).

This allows one, when performing ARC code motion, to ignore blocks that contain
an apply to this function as long as the block does not have any other side
effect having instructions.

I have wanted to do this for a while but was stymied by lacking the ability to
apply multiple @_semantics attributes. This is now committed to trunk so I added
this attribute instead of pattern matching against fatalError (since there could
be other functions with this property).

rdar://19592537
2016-01-02 16:22:06 -06:00
Ling Wang
bb7119f4ae Add O(1) contains() implementation for Range with Comparable Element 2016-01-01 19:43:01 -06:00
Chris Lattner
a30ae2bf55 Merge pull request #836 from zachpanz88/new-year
Update copyright date
2015-12-31 19:36:14 -08:00
Dave Abrahams
e210532690 Merge pull request #825 from kballard/collectiontype-lazy-first
[Stdlib] Optimize CollectionType.first
2015-12-31 16:41:05 -08:00
Zach Panzarino
e3a4147ac9 Update copyright date 2015-12-31 23:28:40 +00:00
Kevin Ballard
dee1c7a05c [Stdlib] Add notes to lazy collection doc comments about complexity
Many lazy collections don't offer O(1) performance for `startIndex`,
`first`, or any method that depends on `startIndex`.
`LazyFilterCollection` already had a note to this effect (which I
tweaked a bit), but `FlattenCollection` didn't.

Related to SR-425.
2015-12-31 13:35:52 -08:00
Kevin Ballard
6ae85cea26 [Stdlib] Optimize CollectionType.first
For lazy collections, `isEmpty` and `startIndex` may be O(N) operations.
The old implementation ended up being potentially O(2N) instead of O(1).
In particular, accessing `col.lazy.filter(pred).first` would evaluate
the predicate on elements twice, once to determine the result of
`isEmpty` and once to determine `startIndex`.
2015-12-31 13:30:11 -08:00
Joe Groff
8f55d99173 stdlib: Reduce code size of tuple comparators.
We can define the operations for N+1-tuples in terms of the ones for N-tuples, which reduces an x86-64 stdlib by about 4KB:

-rwxr-xr-x  1 jgroff  staff  5172856 Dec 30 10:54 lib/swift/macosx/libswiftCore.before.dylib
-rwxr-xr-x  1 jgroff  staff  5168752 Dec 30 11:59 lib/swift/macosx/libswiftCore.after.dylib

The optimizer should still be able to inline all the calls together in release builds.
2015-12-30 13:42:33 -08:00
Ray Lillywhite
4f90ba129e [stdlib] Add documentation for === 2015-12-29 10:45:46 -08:00
practicalswift
d89b4d45e1 Fix typos in code (non-comment typos). 2015-12-27 13:05:01 +01:00
practicalswift
ce760cff66 Fix typos. 2015-12-26 12:43:52 +01:00
Patrick Pijnappel
f181a6eca3 [stdlib] Remove return comments 2015-12-26 11:18:22 +11:00
Patrick Pijnappel
4c894b97a0 [stdlib] Fix comment
Amendment to my own commit.
2015-12-26 11:13:54 +11:00
Chris Lattner
12e670a5b7 Merge pull request #464 from nielsandriesse/patch-6
Make local variable name more expressive
2015-12-25 16:07:10 -08:00
Dmitri Gribenko
480c5c307d Merge pull request #769 from PatrickPijnappel/patch-4
[stdlib] Fix punctuation in doc comment
2015-12-24 15:30:12 -08:00
Dmitri Gribenko
7fa7d186a9 Merge pull request #767 from frootloops/rename-params
Availability: refactoring and tests
2015-12-24 14:47:56 -08:00
Patrick Pijnappel
1a88207fe4 [stdlib] Fix punctuation in doc comment 2015-12-25 09:36:09 +11:00
Dmitri Gribenko
0b0043ddea Merge pull request #765 from SemperIdem/master
[stdlib]Remove the get keyword of read-only computed property
2015-12-24 13:42:55 -08:00
Arsen Gasparyan
d202c2c92b Availability: refactoring and tests 2015-12-25 00:22:18 +03:00
semper_idem
c5c63519e5 [stdlib]Remove the get keyword of read-only computed property
Simplify the read-only computed property by removing the
non-@_transparent “get” keyword
2015-12-24 20:59:34 +08:00
Arsen Gasparyan
862a117864 Rename params 2015-12-24 12:58:45 +03:00
Slava Pestov
27e38fa4ee stdlib: Remove non-ASCII characters from Tuple.swift.gyb
SourceKit tests were checking that the generated interface
only contains ASCII characters.
2015-12-23 20:17:04 -08:00
Kevin Ballard
b61c7a5004 [Stdlib] Implement comparison operators for tuples
Implement == and != for tuples up to arity 6 where each component type
is Equatable.

Implement <, <=, >, and >= for tuples up to arity 6 where each component
type is Comparable.
2015-12-23 18:25:31 -08:00
Joe Groff
d366089df7 Runtime: Change getInstancePositiveExtents methods to return both extents.
A bit of future-proofing, since we plan to be able to grow class instances in both directions relative to their object header.
2015-12-23 15:39:53 -08:00
Joe Groff
583f5bdb6f Runtime: Rename class property lookup functions with consistent naming scheme.
Getting a superclass, instance extents, and whether a class is native-refcounted are all useful type API. De-underscore these functions and give them a consistent `swift[_objc]_class*` naming scheme.
2015-12-23 15:04:27 -08:00
Dmitri Gribenko
b1fdf56f5c stdlib: mark _preprocessingPass with @noescape 2015-12-23 14:56:15 -08:00
Joe Groff
fe4782ef05 Runtime: Rename swift_isClassOrObjCExistential to -Type.
To conform with the other 'is*Type' queries.
2015-12-23 13:34:47 -08:00
Dmitri Gribenko
3877d04a73 Merge pull request #731 from ken0nek/add-spaces-before-and-after-arrow
Add spaces before and after closure arrow
2015-12-23 10:53:22 -08:00
Max Moiseev
200be71583 Merge remote-tracking branch 'origin' into swift-3-api-guidelines 2015-12-23 10:28:04 -08:00
Joe Groff
4b461684e3 Remove unused _swift_isClass function. 2015-12-23 09:17:08 -08:00
practicalswift
81e7439a9a Fix typos. 2015-12-23 11:16:34 +01:00
Dmitri Gribenko
b703259ca6 Merge pull request #736 from nielsandriesse/patch-1
[stdlib] Fix reserveCapacity() call in RangeReplaceableCollectionType +(_:_:)
2015-12-22 16:22:17 -08:00
Slava Pestov
36ddea64ae Merge pull request #729 from ken0nek/fix-can-not
Convert [Cc]an not -> [Cc]annot
2015-12-22 16:06:20 -08:00