|
12565 | 12565 | "summary" : "[SE-0279 \"Multiple Trailing Closures\"](https:\/\/github.com\/swiftlang\/swift-evolution\/blob\/master\/proposals\/0279-multiple-trailing-closures.md) threaded the needle between getting the syntax we wanted for multiple trailing closures without breaking source compatibility. One aspect of that compromise was to extend (rather than replace) the existing rule for matching a trailing closure to a parameter by scanning *backward* from the end of the parameter list.", |
12566 | 12566 | "title" : "Forward-scan matching for trailing closures", |
12567 | 12567 | "upcomingFeatureFlag" : { |
12568 | | - "available" : "5.8", |
12569 | 12568 | "flag" : "ForwardTrailingClosures" |
12570 | 12569 | } |
12571 | 12570 | }, |
|
14867 | 14866 | "summary" : "Existential types in Swift have an extremely lightweight spelling: a plain protocol name in type context means an existential type. Over the years, this has risen to the level of **active harm** by causing confusion, leading programmers down the wrong path that often requires them to re-write code once they hit a fundamental [limitation of value-level abstraction](https:\/\/forums.swift.org\/t\/improving-the-ui-of-generics\/22814#heading--limits-of-existentials). This proposal makes the impact of existential types explicit in the language by annotating such types with `any`.", |
14868 | 14867 | "title" : "Introduce existential `any`", |
14869 | 14868 | "upcomingFeatureFlag" : { |
14870 | | - "available" : "5.8", |
14871 | 14869 | "flag" : "ExistentialAny" |
14872 | 14870 | } |
14873 | 14871 | }, |
|
15617 | 15615 | "summary" : "Existential types in Swift allow one to store a value whose specific type is unknown and may change at runtime. The dynamic type of that stored value, which we refer to as the existential's *underlying type*, is known only by the set of protocols it conforms to and, potentially, its superclass. While existential types are useful for expressing values of dynamic type, they are necessarily restricted because of their dynamic nature. Recent proposals have made [existential types more explicit](https:\/\/github.com\/swiftlang\/swift-evolution\/blob\/main\/proposals\/0335-existential-any.md) to help developers understand this dynamic nature, as well as [making existential types more expressive](https:\/\/github.com\/swiftlang\/swift-evolution\/blob\/main\/proposals\/0309-unlock-existential-types-for-all-protocols.md) by removing a number of limitations. However, a fundamental issue with existential types remains, that once you have a value of existential type it is *very* hard to use generics with it. Developers usually encounter this via the error message \"protocol 'P' as a type cannot conform to itself\":", |
15618 | 15616 | "title" : "Implicitly Opened Existentials", |
15619 | 15617 | "upcomingFeatureFlag" : { |
15620 | | - "available" : "6.0", |
15621 | | - "enabledInLanguageMode" : "6", |
15622 | 15618 | "flag" : "ImplicitOpenExistentials" |
15623 | 15619 | } |
15624 | 15620 | }, |
|
15730 | 15726 | "summary" : "We propose the introduction of regex literals to Swift source code, providing compile-time checks and typed-capture inference. Regex literals help complete the story told in *[Regex Type and Overview](https:\/\/github.com\/swiftlang\/swift-evolution\/blob\/main\/proposals\/0350-regex-type-overview.md)*.", |
15731 | 15727 | "title" : "Regex Literals", |
15732 | 15728 | "upcomingFeatureFlag" : { |
15733 | | - "available" : "5.8", |
15734 | 15729 | "flag" : "BareSlashRegexLiterals" |
15735 | 15730 | } |
15736 | 15731 | }, |
|
18932 | 18927 | "summary" : "This proposal defines options for the usage of global variables free of data races. Within this proposal, global variables encompass any storage of static duration: `let`s and stored `var`s that are either declared at global scope or as static member variables.", |
18933 | 18928 | "title" : "Strict concurrency for global variables", |
18934 | 18929 | "upcomingFeatureFlag" : { |
18935 | | - "enabledInLanguageMode" : "6", |
18936 | 18930 | "flag" : "GlobalConcurrency" |
18937 | 18931 | } |
18938 | 18932 | }, |
|
0 commit comments