diff --git a/proposals/0001-keywords-as-argument-labels.md b/proposals/0001-keywords-as-argument-labels.md index 8d60862154..65cf45b4f8 100644 --- a/proposals/0001-keywords-as-argument-labels.md +++ b/proposals/0001-keywords-as-argument-labels.md @@ -1,6 +1,6 @@ # Allow (most) keywords as argument labels -* Proposal: [SE-0001](https://github.com/apple/swift-evolution/blob/master/proposals/0001-keywords-as-argument-labels.md) +* Proposal: [SE-0001](0001-keywords-as-argument-labels.md) * Author: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 2.2)** * Bugs: [SR-344](https://bugs.swift.org/browse/SR-344) diff --git a/proposals/0002-remove-currying.md b/proposals/0002-remove-currying.md index 8c159a9d7e..edc10be271 100644 --- a/proposals/0002-remove-currying.md +++ b/proposals/0002-remove-currying.md @@ -1,6 +1,6 @@ # Removing currying `func` declaration syntax -* Proposal: [SE-0002](https://github.com/apple/swift-evolution/blob/master/proposals/0002-remove-currying.md) +* Proposal: [SE-0002](0002-remove-currying.md) * Author: [Joe Groff](https://github.com/jckarter) * Status: **Implemented (Swift 3)** diff --git a/proposals/0003-remove-var-parameters.md b/proposals/0003-remove-var-parameters.md index 17f6da6ab4..74d4543cb2 100644 --- a/proposals/0003-remove-var-parameters.md +++ b/proposals/0003-remove-var-parameters.md @@ -1,6 +1,6 @@ # Removing `var` from Function Parameters -* Proposal: [SE-0003](https://github.com/apple/swift-evolution/blob/master/proposals/0003-remove-var-parameters-patterns.md) +* Proposal: [SE-0003](0003-remove-var-parameters-patterns.md) * Author: [David Farler](https://github.com/bitjammer) * Review Manager: [Joe Pamer](https://github.com/jopamer) * Status: **Implemented (Swift 3)** diff --git a/proposals/0004-remove-pre-post-inc-decrement.md b/proposals/0004-remove-pre-post-inc-decrement.md index 335d32ace7..f2b3fb08c7 100644 --- a/proposals/0004-remove-pre-post-inc-decrement.md +++ b/proposals/0004-remove-pre-post-inc-decrement.md @@ -1,6 +1,6 @@ # Remove the `++` and `--` operators -* Proposal: [SE-0004](https://github.com/apple/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md) +* Proposal: [SE-0004](0004-remove-pre-post-inc-decrement.md) * Author: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0005-objective-c-name-translation.md b/proposals/0005-objective-c-name-translation.md index bac72ef5e7..690eafbd8a 100644 --- a/proposals/0005-objective-c-name-translation.md +++ b/proposals/0005-objective-c-name-translation.md @@ -1,6 +1,6 @@ # Better Translation of Objective-C APIs Into Swift -* Proposal: [SE-0005](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md) +* Proposal: [SE-0005](0005-objective-c-name-translation.md) * Authors: [Doug Gregor](https://github.com/DougGregor), [Dave Abrahams](https://github.com/dabrahams) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 3)** @@ -11,9 +11,9 @@ This review is part of a group of three related reviews, running concurrently: -* [SE-0023 API Design Guidelines](https://github.com/apple/swift-evolution/blob/master/proposals/0023-api-guidelines.md) -* [SE-0006 Apply API Guidelines to the Standard Library](https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard-library.md) -* [SE-0005 Better Translation of Objective-C APIs Into Swift](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md) +* [SE-0023 API Design Guidelines](0023-api-guidelines.md) +* [SE-0006 Apply API Guidelines to the Standard Library](0006-apply-api-guidelines-to-the-standard-library.md) +* [SE-0005 Better Translation of Objective-C APIs Into Swift](0005-objective-c-name-translation.md) These reviews are running concurrently because they interact strongly (e.g., an API change in the standard library will correspond to a diff --git a/proposals/0006-apply-api-guidelines-to-the-standard-library.md b/proposals/0006-apply-api-guidelines-to-the-standard-library.md index fe294c1149..df0d3b963a 100644 --- a/proposals/0006-apply-api-guidelines-to-the-standard-library.md +++ b/proposals/0006-apply-api-guidelines-to-the-standard-library.md @@ -1,6 +1,6 @@ # Apply API Guidelines to the Standard Library -* Proposal: [SE-0006](https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard-library.md) +* Proposal: [SE-0006](0006-apply-api-guidelines-to-the-standard-library.md) * Authors: [Dave Abrahams](https://github.com/dabrahams), [Dmitri Gribenko](https://github.com/gribozavr), [Maxim Moiseev](https://github.com/moiseev) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 3)** @@ -12,9 +12,9 @@ This review is part of a group of three related reviews, running concurrently: -* [SE-0023 API Design Guidelines](https://github.com/apple/swift-evolution/blob/master/proposals/0023-api-guidelines.md) -* [SE-0006 Apply API Guidelines to the Standard Library](https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard-library.md) -* [SE-0005 Better Translation of Objective-C APIs Into Swift](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md) +* [SE-0023 API Design Guidelines](0023-api-guidelines.md) +* [SE-0006 Apply API Guidelines to the Standard Library](0006-apply-api-guidelines-to-the-standard-library.md) +* [SE-0005 Better Translation of Objective-C APIs Into Swift](0005-objective-c-name-translation.md) These reviews are running concurrently because they interact strongly (e.g., an API change in the standard library will correspond to a diff --git a/proposals/0007-remove-c-style-for-loops.md b/proposals/0007-remove-c-style-for-loops.md index 1e5398fe3d..def47e117c 100644 --- a/proposals/0007-remove-c-style-for-loops.md +++ b/proposals/0007-remove-c-style-for-loops.md @@ -1,6 +1,6 @@ # Remove C-style for-loops with conditions and incrementers -* Proposal: [SE-0007](https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md) +* Proposal: [SE-0007](0007-remove-c-style-for-loops.md) * Author: [Erica Sadun](https://github.com/erica) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 3)** diff --git a/proposals/0008-lazy-flatmap-for-optionals.md b/proposals/0008-lazy-flatmap-for-optionals.md index d826ba4fb2..0faa46adcd 100644 --- a/proposals/0008-lazy-flatmap-for-optionals.md +++ b/proposals/0008-lazy-flatmap-for-optionals.md @@ -1,6 +1,6 @@ # Add a Lazy flatMap for Sequences of Optionals # -* Proposal: [SE-0008](https://github.com/apple/swift-evolution/blob/master/proposals/0008-lazy-flatmap-for-optionals.md) +* Proposal: [SE-0008](0008-lazy-flatmap-for-optionals.md) * Author: [Oisin Kidney](https://github.com/oisdk) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 3)** diff --git a/proposals/0009-require-self-for-accessing-instance-members.md b/proposals/0009-require-self-for-accessing-instance-members.md index 4e89e95ab4..737a62e7ff 100644 --- a/proposals/0009-require-self-for-accessing-instance-members.md +++ b/proposals/0009-require-self-for-accessing-instance-members.md @@ -1,6 +1,6 @@ # Require self for accessing instance members -* Proposal: [SE-0009](https://github.com/apple/swift-evolution/blob/master/proposals/0009-require-self-for-accessing-instance-members.md) +* Proposal: [SE-0009](0009-require-self-for-accessing-instance-members.md) * Author: [David Hart](https://github.com/hartbit) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Rejected** diff --git a/proposals/0010-add-staticstring-unicodescalarview.md b/proposals/0010-add-staticstring-unicodescalarview.md index 8e8ca53b34..dc4d4c1a5e 100644 --- a/proposals/0010-add-staticstring-unicodescalarview.md +++ b/proposals/0010-add-staticstring-unicodescalarview.md @@ -1,6 +1,6 @@ # Add StaticString.UnicodeScalarView -* Proposal: [SE-0010](https://github.com/apple/swift-evolution/blob/master/proposals/0010-add-staticstring-unicodescalarview.md) +* Proposal: [SE-0010](0010-add-staticstring-unicodescalarview.md) * Author: [Kevin Ballard](https://github.com/kballard) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Rejected** diff --git a/proposals/0011-replace-typealias-associated.md b/proposals/0011-replace-typealias-associated.md index 0b4ed1fc01..df397c9580 100644 --- a/proposals/0011-replace-typealias-associated.md +++ b/proposals/0011-replace-typealias-associated.md @@ -1,6 +1,6 @@ # Replace `typealias` keyword with `associatedtype` for associated type declarations -* Proposal: [SE-0011](https://github.com/apple/swift-evolution/blob/master/proposals/0011-replace-typealias-associated.md) +* Proposal: [SE-0011](0011-replace-typealias-associated.md) * Authors: [Loïc Lecrenier](https://github.com/loiclec) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 2.2)** diff --git a/proposals/0012-add-noescape-to-public-library-api.md b/proposals/0012-add-noescape-to-public-library-api.md index 32a07c6b50..f252335a14 100644 --- a/proposals/0012-add-noescape-to-public-library-api.md +++ b/proposals/0012-add-noescape-to-public-library-api.md @@ -1,6 +1,6 @@ # Add `@noescape` to public library API -* Proposal: [SE-0012](https://github.com/apple/swift-evolution/blob/master/proposals/0012-add-noescape-to-public-library-api.md) +* Proposal: [SE-0012](0012-add-noescape-to-public-library-api.md) * Author: [Jacob Bandes-Storch](https://github.com/jtbandes) * Review Manager: [Philippe Hausler](https://github.com/phausler) * Status: **Rejected** diff --git a/proposals/0013-remove-partial-application-super.md b/proposals/0013-remove-partial-application-super.md index 1fbf482c5c..17a9ee43af 100644 --- a/proposals/0013-remove-partial-application-super.md +++ b/proposals/0013-remove-partial-application-super.md @@ -1,6 +1,6 @@ # Remove Partial Application of Non-Final Super Methods (Swift 2.2) -* Proposal: [SE-0013](https://github.com/apple/swift-evolution/blob/master/proposals/0013-remove-partial-application-super.md) +* Proposal: [SE-0013](0013-remove-partial-application-super.md) * Author: [David Farler](https://github.com/bitjammer) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Rejected** diff --git a/proposals/0014-constrained-AnySequence.md b/proposals/0014-constrained-AnySequence.md index f7e9eca1bc..1c3e45ccee 100644 --- a/proposals/0014-constrained-AnySequence.md +++ b/proposals/0014-constrained-AnySequence.md @@ -1,6 +1,6 @@ # Constraining `AnySequence.init` -* Proposal: [SE-0014](https://github.com/apple/swift-evolution/blob/master/proposals/0014-constrained-AnySequence.md) +* Proposal: [SE-0014](0014-constrained-AnySequence.md) * Author: [Max Moiseev](https://github.com/moiseev) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 2.2)** diff --git a/proposals/0015-tuple-comparison-operators.md b/proposals/0015-tuple-comparison-operators.md index 4e2f09aecd..15e887604c 100644 --- a/proposals/0015-tuple-comparison-operators.md +++ b/proposals/0015-tuple-comparison-operators.md @@ -1,6 +1,6 @@ # Tuple comparison operators -* Proposal: [SE-0015](https://github.com/apple/swift-evolution/blob/master/proposals/0015-tuple-comparison-operators.md) +* Proposal: [SE-0015](0015-tuple-comparison-operators.md) * Author: [Kevin Ballard](https://github.com/kballard) * Review Manager: [Dave Abrahams](https://github.com/dabrahams) * Status: **Implemented (Swift 2.2)** diff --git a/proposals/0016-initializers-for-converting-unsafe-pointers-to-ints.md b/proposals/0016-initializers-for-converting-unsafe-pointers-to-ints.md index a2c734bd94..e1095f7c15 100644 --- a/proposals/0016-initializers-for-converting-unsafe-pointers-to-ints.md +++ b/proposals/0016-initializers-for-converting-unsafe-pointers-to-ints.md @@ -1,6 +1,6 @@ # Add initializers to Int and UInt to convert from UnsafePointer and UnsafeMutablePointer -* Proposal: [SE-0016](https://github.com/apple/swift-evolution/blob/master/proposals/0016-initializers-for-converting-unsafe-pointers-to-ints.md) +* Proposal: [SE-0016](0016-initializers-for-converting-unsafe-pointers-to-ints.md) * Author: [Michael Buckley](https://github.com/MichaelBuckley) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0017-convert-unmanaged-to-use-unsafepointer.md b/proposals/0017-convert-unmanaged-to-use-unsafepointer.md index cf57df6d56..7506024d24 100644 --- a/proposals/0017-convert-unmanaged-to-use-unsafepointer.md +++ b/proposals/0017-convert-unmanaged-to-use-unsafepointer.md @@ -1,6 +1,6 @@ # Change `Unmanaged` to use `UnsafePointer` -* Proposal: [SE-0017](https://github.com/apple/swift-evolution/blob/master/proposals/0017-convert-unmanaged-to-use-unsafepointer.md) +* Proposal: [SE-0017](0017-convert-unmanaged-to-use-unsafepointer.md) * Author: [Jacob Bandes-Storch](https://github.com/jtbandes) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0018-flexible-memberwise-initialization.md b/proposals/0018-flexible-memberwise-initialization.md index 06ad4ea350..38bbda10c0 100644 --- a/proposals/0018-flexible-memberwise-initialization.md +++ b/proposals/0018-flexible-memberwise-initialization.md @@ -1,6 +1,6 @@ # Flexible Memberwise Initialization -* Proposal: [SE-0018](https://github.com/apple/swift-evolution/blob/master/proposals/0018-flexible-memberwise-initializers.md) +* Proposal: [SE-0018](0018-flexible-memberwise-initializers.md) * Author: [Matthew Johnson](https://github.com/anandabits) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Deferred** diff --git a/proposals/0019-package-manager-testing.md b/proposals/0019-package-manager-testing.md index 2989d29ebd..c5be9cbf6a 100644 --- a/proposals/0019-package-manager-testing.md +++ b/proposals/0019-package-manager-testing.md @@ -1,6 +1,6 @@ # Swift Testing -* Proposal: [SE-0019](https://github.com/apple/swift-evolution/blob/master/proposals/0019-package-manager-testing.md) +* Proposal: [SE-0019](0019-package-manager-testing.md) * Authors: [Max Howell](https://github.com/mxcl), [Daniel Dunbar](https://github.com/ddunbar), [Mattt Thompson](https://github.com/mattt) * Review Manager: [Rick Ballard](https://github.com/rballard) * Status: **Implemented (Swift 3)** diff --git a/proposals/0020-if-swift-version.md b/proposals/0020-if-swift-version.md index ee47653374..052c82cffc 100644 --- a/proposals/0020-if-swift-version.md +++ b/proposals/0020-if-swift-version.md @@ -1,6 +1,6 @@ # Swift Language Version Build Configuration -* Proposal: [SE-0020](https://github.com/apple/swift-evolution/blob/master/proposals/0020-if-swift-version.md) +* Proposal: [SE-0020](0020-if-swift-version.md) * Author: [David Farler](https://github.com/bitjammer) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 2.2)** diff --git a/proposals/0021-generalized-naming.md b/proposals/0021-generalized-naming.md index d8cbb181fc..2a850aa56a 100644 --- a/proposals/0021-generalized-naming.md +++ b/proposals/0021-generalized-naming.md @@ -1,6 +1,6 @@ # Naming Functions with Argument Labels -* Proposal: [SE-0021](https://github.com/apple/swift-evolution/blob/master/proposals/0021-generalized-naming.md) +* Proposal: [SE-0021](0021-generalized-naming.md) * Author: [Doug Gregor](https://github.com/DougGregor) * Review Manager: [Joe Groff](https://github.com/jckarter) * Status: **Implemented (Swift 2.2)** diff --git a/proposals/0022-objc-selectors.md b/proposals/0022-objc-selectors.md index 15a9f2ac43..b9982e34e8 100644 --- a/proposals/0022-objc-selectors.md +++ b/proposals/0022-objc-selectors.md @@ -1,6 +1,6 @@ # Referencing the Objective-C selector of a method -* Proposal: [SE-0022](https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md) +* Proposal: [SE-0022](0022-objc-selectors.md) * Author: [Doug Gregor](https://github.com/DougGregor) * Review Manager: [Joe Groff](https://github.com/jckarter) * Status: **Implemented (Swift 2.2)** @@ -23,7 +23,7 @@ error-prone: there is no checking that the string is even a well-formed selector, much less that it refers to any known method, or a method of the intended class. Moreover, with the effort to perform [automatic renaming of Objective-C -APIs](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md), +APIs](0005-objective-c-name-translation.md), the link between Swift name and Objective-C selector is non-obvious. By providing explicit "create a selector" syntax based on the Swift name of a method, we eliminate the need for developers to diff --git a/proposals/0023-api-guidelines.md b/proposals/0023-api-guidelines.md index 0d7486d958..8cab1f37a6 100644 --- a/proposals/0023-api-guidelines.md +++ b/proposals/0023-api-guidelines.md @@ -1,6 +1,6 @@ # API Design Guidelines -* Proposal: [SE-0023](https://github.com/apple/swift-evolution/blob/master/proposals/0023-api-guidelines.md) +* Proposal: [SE-0023](0023-api-guidelines.md) * Authors: [Dave Abrahams](https://github.com/dabrahams), [Doug Gregor](https://github.com/DougGregor), [Dmitri Gribenko](https://github.com/gribozavr), [Ted Kremenek](https://github.com/tkremenek), [Chris Lattner](http://github.com/lattner), Alex Migicovsky, [Max Moiseev](https://github.com/moiseev), Ali Ozer, [Tony Parker](https://github.com/parkera) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 3)** @@ -11,9 +11,9 @@ This review is part of a group of three related reviews, running concurrently: -* [SE-0023 API Design Guidelines](https://github.com/apple/swift-evolution/blob/master/proposals/0023-api-guidelines.md) -* [SE-0006 Apply API Guidelines to the Standard Library](https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard-library.md) -* [SE-0005 Better Translation of Objective-C APIs Into Swift](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md) +* [SE-0023 API Design Guidelines](0023-api-guidelines.md) +* [SE-0006 Apply API Guidelines to the Standard Library](0006-apply-api-guidelines-to-the-standard-library.md) +* [SE-0005 Better Translation of Objective-C APIs Into Swift](0005-objective-c-name-translation.md) These reviews are running concurrently because they interact strongly (e.g., an API change in the standard library will correspond to a diff --git a/proposals/0024-optional-value-setter.md b/proposals/0024-optional-value-setter.md index 07efa1744c..5a3cd05f1e 100644 --- a/proposals/0024-optional-value-setter.md +++ b/proposals/0024-optional-value-setter.md @@ -1,6 +1,6 @@ # Optional Value Setter `??=` -* Proposal: [SE-0024](https://github.com/apple/swift-evolution/blob/master/proposals/0024-optional-value-setter.md) +* Proposal: [SE-0024](0024-optional-value-setter.md) * Author: [James Campbell](https://github.com/jcampbell05) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Rejected** diff --git a/proposals/0025-scoped-access-level.md b/proposals/0025-scoped-access-level.md index 9023e4f06a..2986cb8034 100644 --- a/proposals/0025-scoped-access-level.md +++ b/proposals/0025-scoped-access-level.md @@ -1,6 +1,6 @@ # Scoped Access Level -* Proposal: [SE-0025](https://github.com/apple/swift-evolution/blob/master/proposals/0025-scoped-access-level.md) +* Proposal: [SE-0025](0025-scoped-access-level.md) * Author: Ilya Belenkiy * Status: **Implemented (Swift 3)** * Review Manager: [Doug Gregor](http://github.com/DougGregor) diff --git a/proposals/0026-abstract-classes-and-methods.md b/proposals/0026-abstract-classes-and-methods.md index ea335d48ae..5b663a6a74 100755 --- a/proposals/0026-abstract-classes-and-methods.md +++ b/proposals/0026-abstract-classes-and-methods.md @@ -1,6 +1,6 @@ # Abstract classes and methods -* Proposal: [SE-0026](https://github.com/apple/swift-evolution/blob/master/proposals/0026-abstract-classes-and-methods.md) +* Proposal: [SE-0026](0026-abstract-classes-and-methods.md) * Author: David Scrève * Review Manager: [Joe Groff](https://github.com/jckarter/) * Status: **Deferred** diff --git a/proposals/0027-string-from-code-units.md b/proposals/0027-string-from-code-units.md index 8ac24f8319..5c44821236 100644 --- a/proposals/0027-string-from-code-units.md +++ b/proposals/0027-string-from-code-units.md @@ -1,6 +1,6 @@ # Expose code unit initializers on String -* Proposal: [SE-0027](https://github.com/apple/swift-evolution/blob/master/proposals/0027-string-from-code-units.md) +* Proposal: [SE-0027](0027-string-from-code-units.md) * Author: [Zachary Waldowski](https://github.com/zwaldowski) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Rejected** diff --git a/proposals/0028-modernizing-debug-identifiers.md b/proposals/0028-modernizing-debug-identifiers.md index 0f793a1e23..66aa7c2435 100644 --- a/proposals/0028-modernizing-debug-identifiers.md +++ b/proposals/0028-modernizing-debug-identifiers.md @@ -1,6 +1,6 @@ # Modernizing Swift's Debugging Identifiers -* Proposal: [SE-0028](https://github.com/apple/swift-evolution/blob/master/proposals/0028-modernizing-debug-identifiers.md) +* Proposal: [SE-0028](0028-modernizing-debug-identifiers.md) * Author: [Erica Sadun](http://github.com/erica) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 2.2)** diff --git a/proposals/0029-remove-implicit-tuple-splat.md b/proposals/0029-remove-implicit-tuple-splat.md index 836e708c17..aa07aaefa9 100644 --- a/proposals/0029-remove-implicit-tuple-splat.md +++ b/proposals/0029-remove-implicit-tuple-splat.md @@ -1,6 +1,6 @@ # Remove implicit tuple splat behavior from function applications -* Proposal: [SE-0029](https://github.com/apple/swift-evolution/blob/master/proposals/0029-remove-implicit-tuple-splat.md) +* Proposal: [SE-0029](0029-remove-implicit-tuple-splat.md) * Author: [Chris Lattner](http://github.com/lattner) * Review Manager: [Joe Groff](http://github.com/jckarter) * Status: **Implemented (Swift 3)** diff --git a/proposals/0030-property-behavior-decls.md b/proposals/0030-property-behavior-decls.md index 4bc829a470..781cd2f8d8 100644 --- a/proposals/0030-property-behavior-decls.md +++ b/proposals/0030-property-behavior-decls.md @@ -1,6 +1,6 @@ # Property Behaviors -* Proposal: [SE-0030](https://github.com/apple/swift-evolution/blob/master/proposals/0030-property-behavior-decls.md) +* Proposal: [SE-0030](0030-property-behavior-decls.md) * Author: [Joe Groff](https://github.com/jckarter) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Deferred** diff --git a/proposals/0031-adjusting-inout-declarations.md b/proposals/0031-adjusting-inout-declarations.md index c76c486cb7..6a66043879 100644 --- a/proposals/0031-adjusting-inout-declarations.md +++ b/proposals/0031-adjusting-inout-declarations.md @@ -1,6 +1,6 @@ # Adjusting `inout` Declarations for Type Decoration -* Proposal: [SE-0031](https://github.com/apple/swift-evolution/blob/master/proposals/0031-adjusting-inout-declarations.md) +* Proposal: [SE-0031](0031-adjusting-inout-declarations.md) * Authors: [Joe Groff](https://github.com/jckarter), [Erica Sadun](http://github.com/erica) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0032-sequencetype-find.md b/proposals/0032-sequencetype-find.md index af28a327fc..b83ba69fd9 100644 --- a/proposals/0032-sequencetype-find.md +++ b/proposals/0032-sequencetype-find.md @@ -1,6 +1,6 @@ # Add `first(where:)` method to `Sequence` -* Proposal: [SE-0032](https://github.com/apple/swift-evolution/blob/master/proposals/0032-sequencetype-find.md) +* Proposal: [SE-0032](0032-sequencetype-find.md) * Author: [Kevin Ballard](https://github.com/kballard) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0033-import-objc-constants.md b/proposals/0033-import-objc-constants.md index 1924260b5e..71e4bf0ce4 100644 --- a/proposals/0033-import-objc-constants.md +++ b/proposals/0033-import-objc-constants.md @@ -1,6 +1,6 @@ # Import Objective-C Constants as Swift Types -* Proposal: [SE-0033](https://github.com/apple/swift-evolution/blob/master/proposals/0033-import-objc-constants.md) +* Proposal: [SE-0033](0033-import-objc-constants.md) * Author: [Jeff Kelley](https://github.com/SlaunchaMan) * Review Manager: [John McCall](https://github.com/rjmccall) * Status: **Implemented (Swift 3)** diff --git a/proposals/0034-disambiguating-line.md b/proposals/0034-disambiguating-line.md index 54d30e9e8a..10573fa1a4 100644 --- a/proposals/0034-disambiguating-line.md +++ b/proposals/0034-disambiguating-line.md @@ -1,6 +1,6 @@ # Disambiguating Line Control Statements from Debugging Identifiers -* Proposal: [SE-0034](https://github.com/apple/swift-evolution/blob/master/proposals/0034-disambiguating-line.md) +* Proposal: [SE-0034](0034-disambiguating-line.md) * Author: [Erica Sadun](http://github.com/erica) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** @@ -10,7 +10,7 @@ ## Introduction -In being accepted, Swift Evolution SE-0028 (https://github.com/apple/swift-evolution/blob/master/proposals/0028-modernizing-debug-identifiers.md) overloads +In being accepted, Swift Evolution SE-0028 (0028-modernizing-debug-identifiers.md) overloads the use of `#line` to mean both an identifier that maps to a calling site's line number within a file and acts as part of a line control statement. This proposal nominates `#setline` to replace `#line` for file and line syntactic source control. The discussion took place on-line in the [*\[Discussion\]: Renaming #line, the line control statement*](https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160208/009390.html) thread. diff --git a/proposals/0035-limit-inout-capture.md b/proposals/0035-limit-inout-capture.md index 93ae157d1c..23003a1866 100644 --- a/proposals/0035-limit-inout-capture.md +++ b/proposals/0035-limit-inout-capture.md @@ -1,6 +1,6 @@ # Limiting `inout` capture to `@noescape` contexts -* Proposal: [SE-0035](https://github.com/apple/swift-evolution/blob/master/proposals/0035-limit-inout-capture.md) +* Proposal: [SE-0035](0035-limit-inout-capture.md) * Author: [Joe Groff](https://github.com/jckarter) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** @@ -143,7 +143,7 @@ For migration, the compiler can offer one of the above fixits, checking the use shadow copy is more appropriate. (Or naively, the fixit can just offer the shadow copy fixit.) This also increases pressure on libraries to make more use of `@noescape` where possible, as -proposed in [SE-0012](https://github.com/apple/swift-evolution/blob/master/proposals/0012-add-noescape-to-public-library-api.md). +proposed in [SE-0012](0012-add-noescape-to-public-library-api.md). ## Alternatives considered diff --git a/proposals/0036-enum-dot.md b/proposals/0036-enum-dot.md index 8ac55fa4bd..4d53013a44 100644 --- a/proposals/0036-enum-dot.md +++ b/proposals/0036-enum-dot.md @@ -1,6 +1,6 @@ # Requiring Leading Dot Prefixes for Enum Instance Member Implementations -* Proposal: [SE-0036](https://github.com/apple/swift-evolution/blob/master/proposals/0036-enum-dot.md) +* Proposal: [SE-0036](0036-enum-dot.md) * Authors: [Erica Sadun](http://github.com/erica), [Chris Lattner](https://github.com/lattner) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Implemented (Swift 3)** diff --git a/proposals/0037-clarify-comments-and-operators.md b/proposals/0037-clarify-comments-and-operators.md index a31b1427b4..49fbe5209f 100644 --- a/proposals/0037-clarify-comments-and-operators.md +++ b/proposals/0037-clarify-comments-and-operators.md @@ -1,6 +1,6 @@ # Clarify interaction between comments & operators -* Proposal: [SE-0037](https://github.com/apple/swift-evolution/blob/master/proposals/0037-clarify-comments-and-operators.md) +* Proposal: [SE-0037](0037-clarify-comments-and-operators.md) * Author: [Jesse Rusak](https://github.com/jder) * Review Manager: [Chris Lattner](http://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0038-swiftpm-c-language-targets.md b/proposals/0038-swiftpm-c-language-targets.md index 470a38d4f6..aca7f04cbf 100644 --- a/proposals/0038-swiftpm-c-language-targets.md +++ b/proposals/0038-swiftpm-c-language-targets.md @@ -1,6 +1,6 @@ # Package Manager C Language Target Support -* Proposal: [SE-0038](https://github.com/apple/swift-evolution/blob/master/proposals/0038-swiftpm-c-language-targets.md) +* Proposal: [SE-0038](0038-swiftpm-c-language-targets.md) * Author: [Daniel Dunbar](https://github.com/ddunbar) * Review Manager: [Rick Ballard](https://github.com/rballard) * Status: **Implemented (Swift 3)** diff --git a/proposals/0039-playgroundliterals.md b/proposals/0039-playgroundliterals.md index eb218f910f..1c91e480d0 100644 --- a/proposals/0039-playgroundliterals.md +++ b/proposals/0039-playgroundliterals.md @@ -1,6 +1,6 @@ # Modernizing Playground Literals -* Proposal: [SE-0039](https://github.com/apple/swift-evolution/blob/master/proposals/0039-playgroundliterals.md) +* Proposal: [SE-0039](0039-playgroundliterals.md) * Author: [Erica Sadun](http://github.com/erica) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0040-attributecolons.md b/proposals/0040-attributecolons.md index e1810732d7..974cf67149 100644 --- a/proposals/0040-attributecolons.md +++ b/proposals/0040-attributecolons.md @@ -1,6 +1,6 @@ # Replacing Equal Signs with Colons For Attribute Arguments -* Proposal: [SE-0040](https://github.com/apple/swift-evolution/blob/master/proposals/0040-attributecolons.md) +* Proposal: [SE-0040](0040-attributecolons.md) * Author: [Erica Sadun](http://github.com/erica) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0042-flatten-method-types.md b/proposals/0042-flatten-method-types.md index f82243e25a..c49deac119 100644 --- a/proposals/0042-flatten-method-types.md +++ b/proposals/0042-flatten-method-types.md @@ -1,6 +1,6 @@ # Flattening the function type of unapplied method references -* Proposal: [SE-0042](https://github.com/apple/swift-evolution/blob/master/proposals/0042-flatten-method-types.md) +* Proposal: [SE-0042](0042-flatten-method-types.md) * Author: [Joe Groff](https://github.com/jckarter) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Accepted** diff --git a/proposals/0043-declare-variables-in-case-labels-with-multiple-patterns.md b/proposals/0043-declare-variables-in-case-labels-with-multiple-patterns.md index 335d6922d8..3d681d17f4 100644 --- a/proposals/0043-declare-variables-in-case-labels-with-multiple-patterns.md +++ b/proposals/0043-declare-variables-in-case-labels-with-multiple-patterns.md @@ -1,6 +1,6 @@ # Declare variables in 'case' labels with multiple patterns -* Proposal: [SE-0043](https://github.com/apple/swift-evolution/blob/master/proposals/0043-declare-variables-in-case-labels-with-multiple-patterns.md) +* Proposal: [SE-0043](0043-declare-variables-in-case-labels-with-multiple-patterns.md) * Author: [Andrew Bennett](https://github.com/therealbnut) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** diff --git a/proposals/0044-import-as-member.md b/proposals/0044-import-as-member.md index 579829cde6..3eca59f465 100644 --- a/proposals/0044-import-as-member.md +++ b/proposals/0044-import-as-member.md @@ -1,6 +1,6 @@ # Import as member -* Proposal: [SE-0044](https://github.com/apple/swift-evolution/blob/master/proposals/0044-import-as-member.md) +* Proposal: [SE-0044](0044-import-as-member.md) * Author: [Michael Ilseman](https://github.com/milseman) * Status: **Implemented (Swift 3)** * Review Manager: [Doug Gregor](https://github.com/DougGregor) diff --git a/proposals/0046-first-label.md b/proposals/0046-first-label.md index ca9dd8ce17..2a7db82806 100644 --- a/proposals/0046-first-label.md +++ b/proposals/0046-first-label.md @@ -1,6 +1,6 @@ # Establish consistent label behavior across all parameters including first labels -* Proposal: [SE-0046](https://github.com/apple/swift-evolution/blob/master/proposals/0046-first-label.md) +* Proposal: [SE-0046](0046-first-label.md) * Authors: [Jake Carter](https://github.com/JakeCarter), [Erica Sadun](http://github.com/erica) * Review Manager: [Chris Lattner](https://github.com/lattner) * Status: **Implemented (Swift 3)** @@ -40,7 +40,7 @@ For the most part, Swift 2 developers were encouraged to mimic this approach and that moved the label name out of the parameter list and into the function or method name. Swift 3's newly accepted [API naming guidelines](https://swift.org/documentation/api-design-guidelines/) -shook up this approach. They more thoroughly embraced method and function first argument labels. The updated naming guidance is further supported by the [automated Objective-C API translation rules](https://github.com/apple/swift-evolution/blob/master/proposals/0005-objective-c-name-translation.md) +shook up this approach. They more thoroughly embraced method and function first argument labels. The updated naming guidance is further supported by the [automated Objective-C API translation rules](0005-objective-c-name-translation.md) recently accepted for Swift 3. Under these revised guidelines, first argument labels are encouraged for but are not limited to: diff --git a/proposals/0052-iterator-post-nil-guarantee.md b/proposals/0052-iterator-post-nil-guarantee.md index 99189f5fab..53349e54a5 100644 --- a/proposals/0052-iterator-post-nil-guarantee.md +++ b/proposals/0052-iterator-post-nil-guarantee.md @@ -75,7 +75,7 @@ This however kind of defeats the purpose of having an API contract. ### Frequency In both cases, sometimes code needs to track extra state and branch: - **Current:** Callers sometimes need to track a bool and branch. The standard library currently has 3 occurrences of this being necessary ([#1](https://github.com/apple/swift/blob/master/stdlib/public/core/Sequence.swift#L435), [#2](https://github.com/apple/swift/blob/master/stdlib/public/core/Unicode.swift#L128), [#3](https://github.com/apple/swift/blob/master/stdlib/public/core/Unicode.swift#L373)). -- **Proposed:** Iterator implementations sometimes need to track a bool and branch. The standard library currently has no occurrences of this being necessary. If [SE-0045](https://github.com/apple/swift-evolution/blob/master/proposals/0045-scan-takewhile-dropwhile.md) is accepted, it will introduce the first case (out of 30 iterators), `TakeWhileIterator`. +- **Proposed:** Iterator implementations sometimes need to track a bool and branch. The standard library currently has no occurrences of this being necessary. If [SE-0045](0045-scan-takewhile-dropwhile.md) is accepted, it will introduce the first case (out of 30 iterators), `TakeWhileIterator`. ### Performance considerations In both cases, the extra state and branching that is sometimes needed has potential for performance implications. Though performance is not the *key* concern, iterators are often used in tight loops and can affect very commonly used algorithms. The original rationale for introducing the precondition was in fact because of concerns it might add storage and performance burden to some implementations of `IteratorType`. However in light of implementation experience, it appears including the guarantee would likely be beneficial for performance: diff --git a/proposals/0055-optional-unsafe-pointers.md b/proposals/0055-optional-unsafe-pointers.md index e2e3e06cd2..bb7a5e551f 100644 --- a/proposals/0055-optional-unsafe-pointers.md +++ b/proposals/0055-optional-unsafe-pointers.md @@ -176,7 +176,7 @@ for this proposal.) pointer as an Int is the best alternative; Int has the same C variadic calling conventions as a pointer on all supported platforms. -[SE-0016]: https://github.com/apple/swift-evolution/blob/master/proposals/0016-initializers-for-converting-unsafe-pointers-to-ints.md +[SE-0016]: 0016-initializers-for-converting-unsafe-pointers-to-ints.md ### Conversion between pointers diff --git a/proposals/0083-remove-bridging-from-dynamic-casts.md b/proposals/0083-remove-bridging-from-dynamic-casts.md index 9ccbb33e43..b2ea803209 100644 --- a/proposals/0083-remove-bridging-from-dynamic-casts.md +++ b/proposals/0083-remove-bridging-from-dynamic-casts.md @@ -34,7 +34,7 @@ pieces in the language, the compiler, and the runtime: between Swift value types and their analogous classes. We've been working on phasing the implicit conversions out--we removed the object-to-value implicit conversion in Swift 1.2, and propose to remove the other direction in - [SE-0072](https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md) + [SE-0072](0072-eliminate-implicit-bridging-conversions.md) --but the conversions can still be performed by an *explicit coercion* `string as NSString`. These required-explicit `as` coercions don't otherwise exist in the language, since `as` generally is used to force coercions that @@ -331,7 +331,7 @@ the bridging conversions have to be failable, since not every element type is bridgeable, and the Objective-C classes come into Swift as untyped containers. (That may change if we're able to extend the Objective-C generics importer support from -[SE-0057](https://github.com/apple/swift-evolution/blob/master/proposals/0057-importing-objc-generics.md) +[SE-0057](0057-importing-objc-generics.md) to apply to Cocoa container classes, though bridging support makes that challenging.) diff --git a/proposals/0091-improving-operators-in-protocols.md b/proposals/0091-improving-operators-in-protocols.md index b214e083b8..f014386985 100644 --- a/proposals/0091-improving-operators-in-protocols.md +++ b/proposals/0091-improving-operators-in-protocols.md @@ -24,7 +24,7 @@ Swift-evolution thread: ## Motivation The proposal came about as a result of discussion about -[SE-0067: Enhanced Floating Point Protocols](https://github.com/apple/swift-evolution/blob/master/proposals/0067-floating-point-protocols.md). +[SE-0067: Enhanced Floating Point Protocols](0067-floating-point-protocols.md). To implement the numerous arithmetic and comparison operators, this protocol defined named instance methods for them and then implemented the global operator functions to delegate to them. For example, diff --git a/proposals/0092-typealiases-in-protocols.md b/proposals/0092-typealiases-in-protocols.md index 2d7f7f71d5..c088786e75 100644 --- a/proposals/0092-typealiases-in-protocols.md +++ b/proposals/0092-typealiases-in-protocols.md @@ -12,7 +12,7 @@ This proposal is from the [Generics Manifesto](https://github.com/apple/swift/bl ## Motivation -In Swift versions prior to 2.2, the `typealias` keyword was used outside of protocols to declare type aliases and in protocols to declare associated types. Since [SE-0011](https://github.com/apple/swift-evolution/blob/master/proposals/0011-replace-typealias-associated.md) and Swift 2.2, associated type now use the `associatedtype` keyword and `typealias` is available for implementing true associated type aliases. +In Swift versions prior to 2.2, the `typealias` keyword was used outside of protocols to declare type aliases and in protocols to declare associated types. Since [SE-0011](0011-replace-typealias-associated.md) and Swift 2.2, associated type now use the `associatedtype` keyword and `typealias` is available for implementing true associated type aliases. ## Proposed solution diff --git a/proposals/0093-slice-base.md b/proposals/0093-slice-base.md index 7f2f9ea388..4d3babf9e7 100644 --- a/proposals/0093-slice-base.md +++ b/proposals/0093-slice-base.md @@ -1,6 +1,6 @@ # Adding a public `base` property to slices -* Proposal: [SE-0093](https://github.com/apple/swift-evolution/blob/master/proposals/0093-slice-base.md) +* Proposal: [SE-0093](0093-slice-base.md) * Author: [Max Moiseev](https://github.com/moiseev) * Review Manager: [Dave Abrahams](https://github.com/dabrahams) * Status: **Implemented (Swift 3)** diff --git a/proposals/0094-sequence-function.md b/proposals/0094-sequence-function.md index 8f7d127f9a..620742407d 100644 --- a/proposals/0094-sequence-function.md +++ b/proposals/0094-sequence-function.md @@ -24,13 +24,13 @@ Swift-evolution thread: ## Motivation -[SE-0045](https://github.com/apple/swift-evolution/blob/master/proposals/0045-scan-takewhile-dropwhile.md), originally proposed `iterate(_:apply:)` (see [SE-0045r1](https://github.com/apple/swift-evolution/blob/dd0a39dd051b11e4460accad5af0e74223533e95/proposals/0045-scan-takewhile-dropwhile.md)), a method that +[SE-0045](0045-scan-takewhile-dropwhile.md), originally proposed `iterate(_:apply:)` (see [SE-0045r1](https://github.com/apple/swift-evolution/blob/dd0a39dd051b11e4460accad5af0e74223533e95/proposals/0045-scan-takewhile-dropwhile.md)), a method that was subsequently changed to `unfold(_:applying:)`. The proposal was accepted with modifications. The core team rejected `unfold` based on its naming. As its core utility remains unquestionably high, this proposal re-introduces the method with better, more Swift-appropriate naming. This function provides the natural counterpart to `reduce` as well as a replacement for non-striding C-style `for` loops that were removed by the -acceptance of [SE-0007](https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md), `sequence` can be used to apply generation steps that use non-linear math or +acceptance of [SE-0007](0007-remove-c-style-for-loops.md), `sequence` can be used to apply generation steps that use non-linear math or apply non-mathematical operations, as in the following examples: ```swift @@ -49,8 +49,8 @@ for view in sequence(first: someView, next: { $0.superview }) { See also: -* [SE-0007 Remove C-style For Loops](https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md), -* [SE-0045](https://github.com/apple/swift-evolution/blob/master/proposals/0045-scan-takewhile-dropwhile.md), +* [SE-0007 Remove C-style For Loops](0007-remove-c-style-for-loops.md), +* [SE-0045](0045-scan-takewhile-dropwhile.md), * [SE-0045r1](https://github.com/apple/swift-evolution/blob/b39d653f7e3d5e982b562664343f26c826652291/proposals/0045-scan-takewhile-dropwhile.md), * [SE-0045r3](https://github.com/apple/swift-evolution/blob/d709546002e1636a10350d14da84eb9e554c3aac/proposals/0045-scan-takewhile-dropwhile.md) diff --git a/proposals/0101-standardizing-sizeof-naming.md b/proposals/0101-standardizing-sizeof-naming.md index b706d3dcb2..71284326ff 100644 --- a/proposals/0101-standardizing-sizeof-naming.md +++ b/proposals/0101-standardizing-sizeof-naming.md @@ -146,7 +146,7 @@ According to Joe Groff, concerns about existential values (it's illegal to ask f This proposal uses `` / `T.Type` to reflect Swift's current implementation. -**Note:** There is a [known bug](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160530/002150.html) (cite D. Gregor) that does not enforce `.self` when used with `sizeof`, allowing `sizeof(UInt)`. This call should be `sizeof(UInt.self)`. This proposal is written as if the bug were resolved without relying on adoption of [SE-0090](https://github.com/apple/swift-evolution/blob/master/proposals/0090-remove-dot-self.md). +**Note:** There is a [known bug](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160530/002150.html) (cite D. Gregor) that does not enforce `.self` when used with `sizeof`, allowing `sizeof(UInt)`. This call should be `sizeof(UInt.self)`. This proposal is written as if the bug were resolved without relying on adoption of [SE-0090](0090-remove-dot-self.md). ## Impact on Existing Code diff --git a/proposals/0103-make-noescape-default.md b/proposals/0103-make-noescape-default.md index 5fef53d3cb..aa0d8923f3 100644 --- a/proposals/0103-make-noescape-default.md +++ b/proposals/0103-make-noescape-default.md @@ -77,7 +77,7 @@ There should be few, if any, changes required for uses of Cocoa APIs as these wi ## Future directions -The `@noescape(once)` annotation proposed in [SE-0073](https://github.com/apple/swift-evolution/blob/master/proposals/0073-noescape-once.md) would, if some future version is accepted, just become `@once`. +The `@noescape(once)` annotation proposed in [SE-0073](0073-noescape-once.md) would, if some future version is accepted, just become `@once`. ## Alternatives considered diff --git a/proposals/0105-remove-where-from-forin-loops.md b/proposals/0105-remove-where-from-forin-loops.md index b5dcce7dad..acfd954df4 100644 --- a/proposals/0105-remove-where-from-forin-loops.md +++ b/proposals/0105-remove-where-from-forin-loops.md @@ -66,7 +66,7 @@ Removing where from for-in loops reduces cognitive burden when interpreting inte #### SE-0099 -Upon accepting [SE-0099](https://github.com/apple/swift-evolution/blob/master/proposals/0099-conditionclauses.md), the core team removed `where` clauses from condition clauses. The team wrote, "[T]he 'where' keyword can be retired from its purpose as a [B]oolean condition introducer." +Upon accepting [SE-0099](0099-conditionclauses.md), the core team removed `where` clauses from condition clauses. The team wrote, "[T]he 'where' keyword can be retired from its purpose as a [B]oolean condition introducer." #### Malformed Grammar diff --git a/proposals/0110-distingish-single-tuple-arg.md b/proposals/0110-distingish-single-tuple-arg.md index aaf672e470..bf440fb9b8 100644 --- a/proposals/0110-distingish-single-tuple-arg.md +++ b/proposals/0110-distingish-single-tuple-arg.md @@ -28,7 +28,7 @@ let fn2 : (Int, Int) -> Void = { x, y in } ``` -A variable of function type where there exist _n_ parameters (where _n_ > 1) can be assigned a value (whether it be a named function, a closure literal, or other acceptable value) which either takes in _n_ parameters, or one tuple containing _n_ elements. This seems to be an artifact of the tuple splat behavior removed in [SE-0029](https://github.com/apple/swift-evolution/blob/master/proposals/0029-remove-implicit-tuple-splat.md). +A variable of function type where there exist _n_ parameters (where _n_ > 1) can be assigned a value (whether it be a named function, a closure literal, or other acceptable value) which either takes in _n_ parameters, or one tuple containing _n_ elements. This seems to be an artifact of the tuple splat behavior removed in [SE-0029](0029-remove-implicit-tuple-splat.md). The current behavior violates the principle of least surprise and weakens type safety, and should be changed. diff --git a/proposals/0112-nserror-bridging.md b/proposals/0112-nserror-bridging.md index 268b8402f9..746b01ce8b 100644 --- a/proposals/0112-nserror-bridging.md +++ b/proposals/0112-nserror-bridging.md @@ -724,7 +724,7 @@ extension AVError : _ObjectiveCBridgeableError { We do not propose that ``_ObjectiveCBridgeableError`` become a public protocol, because the core team has already deferred a similar proposal -([SE-0058](https://github.com/apple/swift-evolution/blob/master/proposals/0058-objectivecbridgeable.md)) +([SE-0058](0058-objectivecbridgeable.md)) to make the related protocol ``_ObjectiveCBridgeable`` public. ## Other Issues @@ -745,7 +745,7 @@ types will change from ``NSError`` to ``Error``. There are ~400 such APIs in the macOS SDK, and closer to 500 in the iOS SDK, which is a sizable number. Fortunately, this is similar in scope to the [Foundation value types -proposal](https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.md), +proposal](0069-swift-mutability-for-foundation.md), and can use the same code migration mechanism. That said, the scale of this change means that it should either happen in Swift 3 or not at all. diff --git a/proposals/0115-literal-syntax-protocols.md b/proposals/0115-literal-syntax-protocols.md index 29fc249eb2..62f53e8cd8 100644 --- a/proposals/0115-literal-syntax-protocols.md +++ b/proposals/0115-literal-syntax-protocols.md @@ -29,7 +29,7 @@ Further, the standard library team has observed: (e.g., Int or String), and as far as the user at the call site is concerned, there is no visible conversion (even if one is happening behind the scenes). -[An earlier proposal](https://github.com/apple/swift-evolution/blob/master/proposals/0041-conversion-protocol-conventions.md) was intended to address the first problem by introducing strong naming conventions for three kinds of conversion protocols (*from*, *to*, and *bidirectional*). The review highlighted the difficulity in establishing conventions that everyone is happy with. This proposal takes a different approach to solving the problem that originally inspired that proposal while also solving the awkwardness of the current names described by the standard library team. +[An earlier proposal](0041-conversion-protocol-conventions.md) was intended to address the first problem by introducing strong naming conventions for three kinds of conversion protocols (*from*, *to*, and *bidirectional*). The review highlighted the difficulity in establishing conventions that everyone is happy with. This proposal takes a different approach to solving the problem that originally inspired that proposal while also solving the awkwardness of the current names described by the standard library team. ## Proposed solution @@ -185,7 +185,7 @@ public protocol DictionaryLiteralProtocol { ... } ### Previous proposal -This proposal is a follow up to [Updating Protocol Naming Conventions for Conversions](https://github.com/apple/swift-evolution/blob/master/proposals/0041-conversion-protocol-conventions.md). Many related alternatives were explored during the discussion and review of that proposal. +This proposal is a follow up to [Updating Protocol Naming Conventions for Conversions](0041-conversion-protocol-conventions.md). Many related alternatives were explored during the discussion and review of that proposal. ## Acknowledgements diff --git a/proposals/0116-id-as-any.md b/proposals/0116-id-as-any.md index 01c1f374f8..b23f75dada 100644 --- a/proposals/0116-id-as-any.md +++ b/proposals/0116-id-as-any.md @@ -42,10 +42,10 @@ language and have in practice been a common source of problems and surprising behavior. We have popular proposals in flight to remove the special cases: -- [SE-0072](https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md) +- [SE-0072](0072-eliminate-implicit-bridging-conversions.md) (accepted) removes the implicit conversion, requiring one to explicitly write `x as NSString` or `x as AnyObject` to use a bridgeable value as an object. -- [SE-0083](https://github.com/apple/swift-evolution/blob/master/proposals/0083-remove-bridging-from-dynamic-casts.md) +- [SE-0083](0083-remove-bridging-from-dynamic-casts.md) (deferred for later consideration) removes the dynamic casting behavior and overloading of `as` coercion, requiring one to use normal constructors to convert between value types and object types. @@ -157,7 +157,7 @@ an [`AnyHashable` type-erased container](#anyhashabletype) in the standard libra ## Impact on existing code For most code, the combination of this proposal with -[SE-0072](https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md) +[SE-0072](0072-eliminate-implicit-bridging-conversions.md) should have the net effect of most Swift 2 style code working as it does today, allowing value types to be passed into untyped Objective-C APIs without requiring explicit bridging or unbridging operations. There will definitely @@ -272,7 +272,7 @@ possible. Some obvious candidates include: ### Simplifying pure Swift dynamic casting behavior -[SE-0083](https://github.com/apple/swift-evolution/blob/master/proposals/0083-remove-bridging-from-dynamic-casts.md) +[SE-0083](0083-remove-bridging-from-dynamic-casts.md) sought to remove the *ambivalent dynamic casting* behavior and overloading of `as` coercion from Swift. This proposal *relies* on ambivalent dynamic casting to make sense of incoming `id` values returned from Objective-C diff --git a/proposals/0120-revise-partition-method.md b/proposals/0120-revise-partition-method.md index 013a420f3f..d56660a768 100644 --- a/proposals/0120-revise-partition-method.md +++ b/proposals/0120-revise-partition-method.md @@ -21,7 +21,7 @@ Based on feedback during the review of proposal [SE-0074, Implementation of Bina The standard library's current `partition` methods, which partition a mutable collection using a binary predicate based on the value of the first element of a collection, are used by the standard library's sorting algorithm but don't offer more general partitioning functionality. A more general partition algorithm using a unary (single-argument) predicate would be more flexible and generally useful. -[se-74]: https://github.com/apple/swift-evolution/blob/master/proposals/0074-binary-search.md +[se-74]: 0074-binary-search.md [list]: https://gist.github.com/gribozavr/37e811f12b27c6365fc88e6f9645634d ## Proposed solution @@ -127,4 +127,4 @@ To more closely match the existing API, the `partition(by:)` method could be add The external parameter label could be `where` instead of `by`. However, using `where` implies that the method finds a pre-existing partition point within in the collection (as in `index(where:)`), rather than modifying the collection to be partitioned by the predicate (as in `sort(by:)`, assuming [SE-0118][] is accepted). -[SE-0118]: https://github.com/apple/swift-evolution/blob/master/proposals/0118-closure-parameter-names-and-labels.md +[SE-0118]: 0118-closure-parameter-names-and-labels.md diff --git a/proposals/0138-unsaferawbufferpointer.md b/proposals/0138-unsaferawbufferpointer.md index ae8dd6a199..07102ed676 100644 --- a/proposals/0138-unsaferawbufferpointer.md +++ b/proposals/0138-unsaferawbufferpointer.md @@ -20,7 +20,7 @@ Contents: This is a purely additive proposal to improve the Swift 3 migration experience. -[SE-0107: UnsafeRawPointer](https://github.com/apple/swift-evolution/blob/master/proposals/0107-unsaferawpointer.md) +[SE-0107: UnsafeRawPointer](0107-unsaferawpointer.md) formalized Swift's memory model with respect to strict aliasing and prevented arbitrary conversion between `UnsafePointer` types. When moving to Swift 3, users will need to migrate much of their code diff --git a/proposals/0139-bridge-nsnumber-and-nsvalue.md b/proposals/0139-bridge-nsnumber-and-nsvalue.md index 4d4bd012b8..852f521397 100644 --- a/proposals/0139-bridge-nsnumber-and-nsvalue.md +++ b/proposals/0139-bridge-nsnumber-and-nsvalue.md @@ -16,7 +16,7 @@ Swift-evolution thread: [here](https://lists.swift.org/pipermail/swift-evolution ## Motivation -[SE-0116](https://github.com/apple/swift-evolution/blob/master/proposals/0116-id-as-any.md) +[SE-0116](0116-id-as-any.md) changed how Objective-C's `id` and untyped collections import into Swift to use the `Any` type. This makes it much more natural to pass in Swift value types such as `String` and `Array`, but introduces the hazard of passing in @@ -42,7 +42,7 @@ bridging conversions in both directions from Swift value types to `NS` objects and back, which meant that you could slowly and brokenly convert between any two numeric types transitively via NSNumber if we allowed this. We killed the implicit conversions completely with -[SE-0072](https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md) +[SE-0072](0072-eliminate-implicit-bridging-conversions.md) so that is no longer a concern, so expanding the bridging behavior should no longer be a major problem, since it must now always be explicitly asked for. diff --git a/proposals/0140-bridge-optional-to-nsnull.md b/proposals/0140-bridge-optional-to-nsnull.md index 2b71df10c3..6ce53162d6 100644 --- a/proposals/0140-bridge-optional-to-nsnull.md +++ b/proposals/0140-bridge-optional-to-nsnull.md @@ -1,6 +1,6 @@ # Warn when `Optional` converts to `Any`, and bridge `Optional` As Its Payload Or `NSNull` -* Proposal: [SE-0140](0140-bridge-nsnumber-and-nsvalue.md) +* Proposal: [SE-0140](0140-bridge-optional-to-nsnull.md) * Author: [Joe Groff](https://github.com/jckarter) * Review Manager: [Doug Gregor](https://github.com/DougGregor) * Status: **Active Review (September 2...September 8)** @@ -8,7 +8,7 @@ ## Introduction `Optional`s can be used as values of `Any` type. After -[SE-0116](https://github.com/apple/swift-evolution/blob/master/proposals/0116-id-as-any.md), +[SE-0116](0116-id-as-any.md), this means you can pass an `Optional` to an Objective-C method expecting nonnull `id`: @@ -45,7 +45,7 @@ Swift-evolution thread: [here](https://lists.swift.org/pipermail/swift-evolution ## Motivation -[SE-0116](https://github.com/apple/swift-evolution/blob/master/proposals/0116-id-as-any.md) +[SE-0116](0116-id-as-any.md) changed how Objective-C's `id` and untyped collections import into Swift to use the `Any` type. This makes it much more natural to pass Swift value types such as `String` and `Array` into ObjC. One unfortunate effect is that,