Swift Evolution (By ID)

  • SE-0318 Package Creation
  • SE-0317 async let bindings
  • SE-0316 Global actors
  • SE-0315 Placeholder types
  • SE-0314 AsyncStream and AsyncThrowingStream
  • SE-0313 Improved control over actor isolation — (#85904)
  • SE-0312 Add indexed() and Collection conformances for enumerated() and `zip(_…
  • SE-0311 Task Local Values
  • SE-0310 Effectful Read-only Properties
  • SE-0309 Unlock existentials for all protocols
  • SE-0308 #if for postfix member expressions(done, .2631)
  • SE-0307 Allow interchangeable use of CGFloat and Double types
  • SE-0306 Actors — (#85904)
  • SE-0305 Package Manager Binary Target Improvements — (Not applicable)
  • SE-0304 Structured concurrency — (#85916)
  • SE-0303 Package Manager Extensible Build Tools — (Not applicable)
  • SE-0302 Sendable and @Sendable closures
  • SE-0301 Package Editor Commands — (Not applicable)
  • SE-0300 Continuations for interfacing async tasks with synchronous code
  • SE-0299 Extending Static Member Lookup in Generic Contexts
  • SE-0298 Async/Await: Sequences — (#85914)
  • SE-0297 Concurrency Interoperability with Objective-C
  • SE-0296 Async/await(done, .2629)
  • SE-0295 Codable synthesis for enums with associated values
  • SE-0294 Declaring executable targets in Package Manifests — (Not applicable)
  • SE-0293 Extend Property Wrappers to Function and Closure Parameters — (#85915)
  • SE-0292 Package Registry Service — (Not applicable)
  • SE-0291 Package Collections — (Not applicable)
  • SE-0290 Unavailability Condition
  • SE-0289 Result builders — (#85014)
  • SE-0288 Adding isPower(of:) to BinaryInteger(SBL)
  • SE-0287 Extend implicit member syntax to cover chains of member references(done)
  • SE-0286 Forward-scan matching for trailing closures — (#85013)
  • SE-0285 Ease the transition to concise magic file strings(done)
  • SE-0284 Allow Multiple Variadic Parameters in Functions, Subscripts, and Initialize…(done)
  • SE-0283 Tuples Conform to Equatable, Comparable, and Hashable(SBL)
  • SE-0282 Clarify the Swift memory consistency model ⚛︎ — (#84618)
  • SE-0281 @main: Type-Based Program Entry Points — (#84619)
  • SE-0280 Enum cases as protocol witnesses — (Not applicable)
  • SE-0279 Multiple Trailing Closures(done, .2531)
  • SE-0278 Package Manager Localized Resources — (Not applicable)
  • SE-0277 Float16 — (SBL)
  • SE-0276 Multi-Pattern Catch Clauses — (#83855)
  • SE-0275 Allow more characters (like whitespaces and punctuations) for escaped ident…(done, .2531)
  • SE-0274 Concise magic file names(done)
  • SE-0273 Package Manager Conditional Target Dependencies — (Not applicable)
  • SE-0272 Package Manager Binary Dependencies — (Not applicable)
  • SE-0271 Package Manager Resources — (Not applicable)
  • SE-0270 Add Collection Operations on Noncontiguous Elements — (SBL)
  • SE-0269 Increase availability of implicit self in @escaping closures when refer…(done, .2473)
  • SE-0268 Refine didSet Semantics — (Not applicable)
  • SE-0267 where clauses on contextually generic declarations — (#83755)
  • SE-0266 Synthesized Comparable conformance for enum types — (#79250)
  • SE-0265 Offset-Based Access to Indices, Elements, and Slices — (SBL)
  • SE-0264 Standard Library Preview Package — (Not applicable)
  • SE-0263 Add a String Initializer with Access to Uninitialized Storage — (SBL)
  • SE-0262 Demangle Function — (SBL)
  • SE-0261 Identifiable Protocol(done, .2433)
  • SE-0260 Library Evolution for Stable ABIs(done)
  • SE-0259 Approximate Equality for Floating Point
  • SE-0258 Property Wrappers(done, .2629)
  • SE-0257 Eliding commas from multiline expression lists — (#82859)
  • SE-0256 Introduce {Mutable}ContiguousCollection protocol — (SBL)
  • SE-0255 Implicit returns from single-expression functions(done)
  • SE-0254 Static and class subscripts(done)
  • SE-0253 Callable values of user-defined nominal types — (#82278)
  • SE-0252 Key Path Member Lookup — (#82279)
  • SE-0251 SIMD additions
  • SE-0250 Swift Code Style Guidelines and Formatter
  • SE-0249 Key Path Expressions as Functions — (#82280)
  • SE-0248 String Gaps and Missing APIs — (SBL)
  • SE-0247 Contiguous Strings — (SBL)
  • SE-0246 Generic Math(s) Functions — (SBL)
  • SE-0245 Add an Array Initializer with Access to Uninitialized Storage — (SBL)
  • SE-0244 Opaque Result Types(done)
  • SE-0243 Integer-convertible character literals — (SBL)
  • SE-0242 Synthesize default values for the memberwise initializer(done)
  • SE-0241 Deprecate String Index Encoded Offsets — (SBL)
  • SE-0240 Ordered Collection Diffing — (SBL)
  • SE-0239 Add Codable conformance to Range types — (SBL)
  • SE-0238 Package Manager Target Specific Build Settings — (Not applicable)
  • SE-0237 Introduce withContiguous{Mutable}StorageIfAvailable methods — (SBL)
  • SE-0236 Package Manager Platform Deployment Settings — (Not applicable)
  • SE-0235 Add Result to the Standard Library(done, .2353)
  • SE-0234 Remove Sequence.SubSequence — (Not applicable)
  • SE-0233 Make Numeric Refine a new AdditiveArithmetic Protocol — (SBL)
  • SE-0232 Remove Some Customization Points from the Standard Library's Collection H… — (Not applicable)
  • SE-0231 Optional Iteration
  • SE-0230 Flatten nested optionals resulting from 'try?'(done, .2371)
  • SE-0229 SIMD Vectors — (#81921)
  • SE-0228 Fix ExpressibleByStringInterpolation — (Not applicable)
  • SE-0227 Identity key path — (#81920)
  • SE-0226 Package Manager Target Based Dependency Resolution — (Not applicable)
  • SE-0225 Adding isMultiple to BinaryInteger(SBL)
  • SE-0224 Support 'less than' operator in compilation conditions(done, .2371)
  • SE-0223 Accessing an Array's Uninitialized Buffer — (SBL)
  • SE-0222 Lazy CompactMap Sequence — (SBL)
  • SE-0221 Character Properties — (SBL)
  • SE-0220 count(where:)(done, .2633)
  • SE-0219 Package Manager Dependency Mirroring — (Not applicable)
  • SE-0218 Introduce compactMapValues to Dictionary — (SBL)
  • SE-0217 Introducing the !! "Unwrap or Die" operator to the Swift Standard Library(done, .2353)
  • SE-0216 Introduce user-defined dynamically "callable" types — (#81924)
  • SE-0215 Conform Never to Equatable and Hashable — (won't implement)
  • SE-0214 Renaming the DictionaryLiteral type to KeyValuePairs — (Not applicable)
  • SE-0213 Literal initialization via coercion — (won't implement)
  • SE-0212 Compiler Version Directive — (Not applicable)
  • SE-0211 Add Unicode Properties to Unicode.Scalar(SBL)
  • SE-0210 Add an offset(of:) method to MemoryLayout(SBL)
  • SE-0209 Package Manager Swift Language Version API Update — (Not applicable)
  • SE-0208 Package Manager System Library Targets — (Not applicable)
  • SE-0207 Add an allSatisfy algorithm to Sequence(SBL)
  • SE-0206 Hashable Enhancements — (SBL)
  • SE-0205 withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable value… — (SBL)
  • SE-0204 Add last(where:) and lastIndex(where:) Methods — (SBL)
  • SE-0203 Rename Sequence.elementsEqual — (SBL)
  • SE-0202 Random Unification — (SBL)
  • SE-0201 Package Manager Local Dependencies — (Not applicable)
  • SE-0200 Enhancing String Literals Delimiters to Support Raw Text(done, .2393)
  • SE-0199 Adding toggle to Bool(done, .2283)
  • SE-0198 Playground QuickLook API Revamp # — (Not applicable)
  • SE-0197 Adding in-place removeAll(where:) to the Standard Library — (SBL)
  • SE-0196 Compiler Diagnostic Directives(done, .2283)
  • SE-0195 Introduce User-defined "Dynamic Member Lookup" Types — (#79673)
  • SE-0194 Derived Collection of Enum Cases(done, .2333)
  • SE-0193 Cross-module inlining and specialization(done)
  • SE-0192 Handling Future Enum Cases(done, .2393)
  • SE-0191 Eliminate IndexDistance from Collection(SBL)
  • SE-0190 Target environment platform condition(done, .2233)
  • SE-0189 Restrict Cross-module Struct Initializers(done)
  • SE-0188 Make Standard Library Index Types Hashable — (SBL)
  • SE-0187 Introduce Sequence.compactMap(_:) — (SBL)
  • SE-0186 Remove ownership keyword support in protocols(done, .2305)
  • SE-0185 Synthesizing Equatable and Hashable conformance — (#79250)
  • SE-0184 Unsafe[Mutable][Raw][Buffer]Pointer: add missing methods, adjust existing l… — (SBL)
  • SE-0183 Substring performance affordances — (SBL)
  • SE-0182 String Newline Escaping(done, 9.2)
  • SE-0181 Package Manager C/C++ Language Standard Support — (Not applicable)
  • SE-0180 String Index Overhaul — (SBL)
  • SE-0179 Swift run Command — (Not applicable)
  • SE-0178 Add unicodeScalars property to Character(SBL)
  • SE-0177 Add clamp(to:) to the stdlib — (SBL)
  • SE-0176 Enforce Exclusive Access to Memory — (#79251)
  • SE-0175 Package Manager Revised Dependency Resolution — (Not applicable)
  • SE-0174 Change RangeReplaceableCollection.filter to return Self(SBL)
  • SE-0173 Add MutableCollection.swapAt(_:_:)(SBL)
  • SE-0172 One-sided Ranges(done)
  • SE-0171 Reduce with inout(SBL)
  • SE-0170 NSNumber bridging and Numeric types
  • SE-0169 Improve Interaction Between private Declarations and Extensions(done, .2305)
  • SE-0168 Multi-Line String Literals(done, 9.2)
  • SE-0167 Swift Encoders — (#78130)
  • SE-0166 Swift Archival & Serialization — (#78130)
  • SE-0165 Dictionary & Set Enhancements — (SBL)
  • SE-0164 Remove final support in protocol extensions(done)
  • SE-0163 String Revision: Collection Conformance, C Interop, Transcoding — (SBL)
  • SE-0162 Package Manager Custom Target Layouts — (Not applicable)
  • SE-0161 Smart KeyPaths: Better Key-Value Coding for Swift — (#79252)
  • SE-0160 Limiting @objc inference — (Not applicable)
  • SE-0159 Fix Private Access Levels
  • SE-0158 Package Manager Manifest API Redesign — (Not applicable)
  • SE-0157 Support recursive constraints on associated types — (#80045)
  • SE-0156 Class and Subtype existentials
  • SE-0155 Normalize Enum Case Representation — (#81923)
  • SE-0154 Provide Custom Collections for Dictionary Keys and Values
  • SE-0153 Compensate for the inconsistency of @NSCopying's behaviour — (Not applicable)
  • SE-0152 Package Manager Tools Version — (Not applicable)
  • SE-0151 Package Manager Swift Language Compatibility Version — (Not applicable)
  • SE-0150 Package Manager Support for branches — (Not applicable)
  • SE-0149 Package Manager Support for Top of Tree development — (Not applicable)
  • SE-0148 Generic Subscripts — (won't implement)
  • SE-0147 Move UnsafeMutablePointer.initialize(from:) to UnsafeMutableBufferPointer
  • SE-0146 Package Manager Product Definitions — (Not applicable)
  • SE-0145 Package Manager Version Pinning — (Not applicable)
  • SE-0144 Allow Single Dollar Sign as a Valid Identifier
  • SE-0143 Conditional conformances(done)
  • SE-0142 Permit where clauses to constrain associated types — (#80051)
  • SE-0141 Availability by Swift version
  • SE-0140 Warn when Optional converts to Any, and bridge Optional As Its Payloa…
  • SE-0139 Bridge Numeric Types to NSNumber and Cocoa Structs to NSValue
  • SE-0138 UnsafeRawBufferPointer
  • SE-0137 Avoiding Lock-In to Legacy Protocol Designs
  • SE-0136 Memory layout of values
  • SE-0135 Package Manager Support for Differentiating Packages by Swift version — (Not applicable)
  • SE-0134 Rename two UTF8-related properties on String — (SBL)
  • SE-0133 Rename flatten() to joined()(SBL)
  • SE-0132 Rationalizing Sequence end-operation names
  • SE-0131 Add AnyHashable to the standard library — (SBL)
  • SE-0130 Replace repeating Character and UnicodeScalar forms of String.init — (SBL)
  • SE-0129 Package Manager Test Naming Conventions — (Not applicable)
  • SE-0128 Change failable UnicodeScalar initializers to failable — (SBL)
  • SE-0127 Cleaning up stdlib Pointer and Buffer Routines — (Not applicable)
  • SE-0126 Refactor Metatypes, repurpose T.self and Mirror
  • SE-0125 Remove NonObjectiveCBase and isUniquelyReferenced — (Not applicable)
  • SE-0124 Int.init(ObjectIdentifier) and UInt.init(ObjectIdentifier) should have … — (SBL)
  • SE-0123 Disallow coercion to optionals in operator arguments
  • SE-0122 Use colons for subscript declarations
  • SE-0121 Remove Optional Comparison Operators — (SBL)
  • SE-0120 Revise partition Method Signature — (SBL)
  • SE-0119 Remove access modifiers from extensions
  • SE-0118 Closure Parameter Names and Labels — (#75885)
  • SE-0117 Allow distinguishing between public access and public overridability(done, 9.0)
  • SE-0116 Import Objective-C id as Swift Any type — (Not applicable)
  • SE-0115 Rename Literal Syntax Protocols
  • SE-0114 Updating Buffer "Value" Names to "Header" Names — (SBL)
  • SE-0113 Add integral rounding functions to FloatingPoint — (SBL)
  • SE-0112 Improved NSError Bridging — (#75888)
  • SE-0111 Remove type system significance of function argument labels(done, 9.0)
  • SE-0110 Distinguish between single-tuple and multiple-argument function types(done)
  • SE-0109 Remove the Boolean protocol
  • SE-0108 Remove associated type inference
  • SE-0107 UnsafeRawPointer API — (SBL)
  • SE-0106 Add a macOS Alias for the OSX Platform Configuration Test(done, 9.0)
  • SE-0105 Removing Where Clauses from For-In Loops
  • SE-0104 Protocol-oriented integers — (SBL)
  • SE-0103 Make non-escaping closures the default(done, 9.0)
  • SE-0102 Remove @noreturn attribute and introduce an empty Never type(done, 9.0)
  • SE-0101 Reconfiguring sizeof and related functions into a unified MemoryLayout … — (SBL)
  • SE-0100 Add sequence-based initializers and merge methods to Dictionary — (SBL)
  • SE-0099 Restructuring Condition Clauses(done, 9.0)
  • SE-0098 Lowercase didSet and willSet for more consistent keyword casing
  • SE-0097 Normalizing naming for "negative" attributes
  • SE-0096 Converting dynamicType from a property to an operator(done)
  • SE-0095 Replace protocol<P1,P2> syntax with P1 & P2 syntax
  • SE-0094 Add sequence(first:next:) and sequence(state:next:) to the stdlib(done, 8.3.95)
  • SE-0093 Adding a public base property to slices — (SBL)
  • SE-0092 Typealiases in protocols and protocol extensions
  • SE-0091 Improving operator requirements in protocols(done, .2307)
  • SE-0090 Remove .self and freely allow type references in expressions
  • SE-0089 Renaming String.init<T>(_: T)(SBL)
  • SE-0088 Modernize libdispatch for Swift 3 naming conventions
  • SE-0087 Rename lazy to @lazy
  • SE-0086 Drop NS Prefix in Swift Foundation(done, 9.0)
  • SE-0085 Package Manager Command Names — (Not applicable)
  • SE-0084 Allow trailing commas in parameter lists and tuples
  • SE-0083 Remove bridging conversion behavior from dynamic casts
  • SE-0082 Package Manager Editable Packages — (Not applicable)
  • SE-0081 Move where clause to end of declaration(done, 9.0)
  • SE-0080 Failable Numeric Conversion Initializers — (SBL)
  • SE-0079 Allow using optional binding to upgrade self from a weak to strong refere…
  • SE-0078 Implement a rotate algorithm, equivalent to std::rotate() in C++
  • SE-0077 Improved operator declarations — (#75872)
  • SE-0076 Add overrides taking an UnsafePointer source to non-destructive copying met… — (SBL)
  • SE-0075 Adding a Build Configuration Import Test(done, .2307)
  • SE-0074 Implementation of Binary Search functions
  • SE-0073 Marking closures as executing exactly once
  • SE-0072 Fully eliminate implicit bridging conversions from Swift — (Not applicable)
  • SE-0071 Allow (most) keywords in member references(done, 8.3.95)
  • SE-0070 Make Optional Requirements Objective-C-only — (Not applicable)
  • SE-0069 Mutability and Foundation Value Types — (SBL)
  • SE-0068 Expanding Swift Self to class members and value types(done)
  • SE-0067 Enhanced Floating Point Protocols — (SBL)
  • SE-0066 Standardize function type argument syntax to require parentheses(done, 9.0)
  • SE-0065 A New Model for Collections and Indices — (Not applicable)
  • SE-0064 Referencing the Objective-C selector of property getters and setters(done, v10)
  • SE-0063 SwiftPM System Module Search Paths — (Not applicable)
  • SE-0062 Referencing Objective-C key-paths — (#75182)
  • SE-0061 Add Generic Result and Error Handling to autoreleasepool()(done, v10)
  • SE-0060 Enforcing order of defaulted parameters
  • SE-0059 Update API Naming Guidelines and Rewrite Set APIs Accordingly — (Not applicable)
  • SE-0058 Allow Swift types to provide custom Objective-C representations
  • SE-0057 Importing Objective-C Lightweight Generics(done)
  • SE-0056 Allow trailing closures in guard conditions
  • SE-0055 Make unsafe pointer nullability explicit using Optional — (Not applicable)
  • SE-0054 Abolish ImplicitlyUnwrappedOptional type — (Not applicable)
  • SE-0053 Remove explicit use of let from Function Parameters — (Not applicable)
  • SE-0052 Change IteratorType post-nil guarantee — (SBL)
  • SE-0051 Conventionalizing stride semantics
  • SE-0050 Decoupling Floating Point Strides from Generic Implementations
  • SE-0049 Move @noescape and @autoclosure to be type attributes(done, 9.0)
  • SE-0048 Generic Type Aliases(done, 9.0)
  • SE-0047 Defaulting non-Void functions so they warn on unused results(done, 9.0)
  • SE-0046 Establish consistent label behavior across all parameters including first l…(done, 9.0)
  • SE-0045 Add prefix(while:) and drop(while:) to the stdlib — (SBL)
  • SE-0044 Import as member — (#74959)
  • SE-0043 Declare variables in 'case' labels with multiple patterns(done)
  • SE-0042 Flattening the function type of unapplied method references — (Not applicable)
  • SE-0041 Updating Protocol Naming Conventions for Conversions
  • SE-0040 Replacing Equal Signs with Colons For Attribute Arguments(done, 8.3.95)
  • SE-0039 Modernizing Playground Literals — (Not applicable)
  • SE-0038 Package Manager C Language Target Support — (Not applicable)
  • SE-0037 Clarify interaction between comments & operators(done, 9.0)
  • SE-0036 Requiring Leading Dot Prefixes for Enum Instance Member Implementations(done, 9.0)
  • SE-0035 Limiting inout capture to @noescape contexts — (won't implement)
  • SE-0034 Disambiguating Line Control Statements from Debugging Identifiers(done, 9.0)
  • SE-0033 Import Objective-C Constants as Swift Types — (#74782)
  • SE-0032 Add first(where:) method to Sequence(SBL)
  • SE-0031 Adjusting inout Declarations for Type Decoration(done, 9.0)
  • SE-0030 Property Behaviors
  • SE-0029 Remove implicit tuple splat behavior from function applications — (Not applicable)
  • SE-0028 Modernizing Swift's Debugging Identifiers(done, 8.3.95)
  • SE-0027 Expose code unit initializers on String — (SBL)
  • SE-0026 Abstract classes and methods
  • SE-0025 Scoped Access Level(done, 9.0)
  • SE-0024 Optional Value Setter ??=(done, 8.3)
  • SE-0023 API Design Guidelines — (Not applicable)
  • SE-0022 Referencing the Objective-C selector of a method
  • SE-0021 Naming Functions with Argument Labels(done, v10)
  • SE-0020 Swift Language Version Build Configuration(done, 8.3)
  • SE-0019 Swift Testing — (Not applicable)
  • SE-0018 Flexible Memberwise Initialization
  • SE-0017 Change Unmanaged to use UnsafePointer — (Not applicable)
  • SE-0016 Add initializers to Int and UInt to convert from UnsafePointer and UnsafeMu… — (SBL)
  • SE-0015 Tuple comparison operators(done, .2305)
  • SE-0014 Constraining AnySequence.init(SBL)
  • SE-0013 Remove Partial Application of Non-Final Super Methods (Swift 2.2)
  • SE-0012 Add @noescape to public library API
  • SE-0011 Replace typealias keyword with associatedtype for associated type decla…(done, 8.3)
  • SE-0010 Add StaticString.UnicodeScalarView — (SBL)
  • SE-0009 Require self for accessing instance members
  • SE-0008 Add a Lazy flatMap for Sequences of Optionals # — (SBL)
  • SE-0007 Remove C-style for-loops with conditions and incrementers(done, 8.3.95)
  • SE-0006 Apply API Guidelines to the Standard Library — (Not applicable)
  • SE-0005 Better Translation of Objective-C APIs Into Swift(done, 9.0)
  • SE-0004 Remove the ++ and -- operators(done, 8.3.95)
  • SE-0003 Removing var from Function Parameters(done, 9.0)
  • SE-0002 Removing currying func declaration syntax
  • SE-0001 Allow (most) keywords as argument labels(done, 8.3)