-
Notifications
You must be signed in to change notification settings - Fork 10.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SE-0157] Standard library uses of Recursive Protocol Constraints #11923
[SE-0157] Standard library uses of Recursive Protocol Constraints #11923
Commits on Oct 1, 2017
-
Configuration menu - View commit details
-
Copy full SHA for e5f893b - Browse repository at this point
Copy the full SHA e5f893bView commit details -
[SE-0157] Make *Collection.SubSequence conform to corresponding *Coll…
…ection. Introduce (recursive) constraints that make the *Collection constraint of SubSequence match that of its enclosing *Collection, e.g., MutableCollection.SubSequence conforms to MutableCollection. Fixes rdar://problem/20715031 and more of SR-3453.
Configuration menu - View commit details
-
Copy full SHA for 6b51806 - Browse repository at this point
Copy the full SHA 6b51806View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4457264 - Browse repository at this point
Copy the full SHA 4457264View commit details -
[Collections] Constrain Indices type to Collection.
Make the Indices types conform to the appropriate Collection protocol: * Collection.Indices: Collection * BidirectionalCollection.Indices: BidirectionalCollection * RandomAccessCollection.Indices: RandomAccessCollection
Configuration menu - View commit details
-
Copy full SHA for 52eb618 - Browse repository at this point
Copy the full SHA 52eb618View commit details -
Use Collection protocols in IndexingIterator and Default*Indices cons…
…traints. Eliminates a few explicit uses of the Indexable protocols.
Configuration menu - View commit details
-
Copy full SHA for af48bdc - Browse repository at this point
Copy the full SHA af48bdcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d2c9be - Browse repository at this point
Copy the full SHA 9d2c9beView commit details -
Configuration menu - View commit details
-
Copy full SHA for 31ad22d - Browse repository at this point
Copy the full SHA 31ad22dView commit details -
Use a more efficient SubSequence type for lazy map and filter.
Rather than using the default slice type when slicing the collection produced by a lazy map or filter, slice the base collection and form a new lazy map/filter collection from it. This allows any optimizations provided by the collection SubSequence type to kick in, as well as ensuring that slicing a lazy collection provides the same type as producing a lazy collection of a slice. This is technically source-breaking, because someone could have spelled out the types of slicing a lazy filter or map… but it seems unlikely to matter in practice and the benefits could be significant. Fixes ABI FIXME’s apple#28 and apple#46.
Configuration menu - View commit details
-
Copy full SHA for fb253b1 - Browse repository at this point
Copy the full SHA fb253b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 42968b2 - Browse repository at this point
Copy the full SHA 42968b2View commit details -
Eliminate the _*Indexable protocols.
The various _*Indexable protocols only exist to work around the lack of recursive protocol constraints. Eliminate all of the *_Indexable protocols, collapsing their requirements into the corresponding Collection protocol (e.g., _MutableIndexable —> Collection). This introduces a number of extraneous requirements into the various Collection protocols to work around bugs in associated type inference. Specifically, to work around the lack of "global" inference of associated type witnesses. These hacks were implicitly present in the *Indexable protocols; I've made marked them as ABI FIXMEs here so we can remove them when associated type inference improves. Fixes rdar://problem/21935030 and a number of ABI FIXMEs in the library.
Configuration menu - View commit details
-
Copy full SHA for 797df6e - Browse repository at this point
Copy the full SHA 797df6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 772352e - Browse repository at this point
Copy the full SHA 772352eView commit details
Commits on Oct 2, 2017
-
Configuration menu - View commit details
-
Copy full SHA for 5db9b11 - Browse repository at this point
Copy the full SHA 5db9b11View commit details