Language Features
Coverage of the Swift 6.3 language surface across Tiers 0–9.
Legend: ✅ Done · 🟡 Partial · ⬜ Todo
Tier 0 — Lexical & Literals
100% complete — everything downstream depends on these.
| Status |
Feature |
Notes |
| ✅ |
Integer literals (dec/hex/oct/bin, _ separators) |
|
| ✅ |
Floating-point literals (dec/hex, exponents) |
|
| ✅ |
Boolean literals true/false |
|
| ✅ |
nil literal |
|
| ✅ |
String literals (escapes, \u{}) |
|
| ✅ |
Multiline string literals """ |
|
| ✅ |
Raw string literals #"..."# |
|
| ✅ |
String interpolation \(expr) |
|
| ✅ |
Extended string delimiters #"\n"# |
|
| ✅ |
Regex literals /…/ and #/…/# |
|
| ✅ |
Unicode identifiers |
|
| ✅ |
Comments (line, block, nested, doc) |
|
| ✅ |
Operators: arithmetic / comparison / logical / bitwise / range |
|
| ✅ |
Wrapping operators &+ &- &* &<< &>> |
|
| ✅ |
Overflow-trapping integer semantics |
|
| ✅ |
Nil-coalescing ?? |
|
| ✅ |
Range operators ..< ... (+ one-sided) |
|
| ✅ |
Identity operators === !== |
|
Tier 1 — Core Imperative
Bindings & Expressions
| Status |
Feature |
| ✅ |
let / var declarations + type annotations |
| ✅ |
Type inference for initializers |
| ✅ |
Arithmetic / comparison / logical / bitwise eval |
| ✅ |
Compound assignment += -= *= … |
| ✅ |
Ternary a ? b : c |
| ✅ |
Tuples + tuple decomposition let (a,b) = … |
| ✅ |
Parenthesized / wildcard _ expressions |
| ✅ |
Integer width conversions & Int(x) casts |
Functions
| Status |
Feature |
| ✅ |
Function declarations, params, return |
| ✅ |
Argument labels & parameter names |
| ✅ |
Default parameter values |
| ✅ |
Variadic parameters T... |
| ✅ |
inout parameters (true lvalue aliasing) |
| ✅ |
Nested functions + capture |
| ✅ |
Function types as values / params / returns |
| ✅ |
Multiple return values via tuples |
| ✅ |
@discardableResult |
| ✅ |
Functions that never return (-> Never) |
Control Flow
| Status |
Feature |
| ✅ |
if / else / else if |
| ✅ |
if as expression (Swift 5.9) |
| ✅ |
guard / guard let |
| ✅ |
while / repeat-while |
| ✅ |
for-in over ranges / arrays / sequences |
| ✅ |
for case / for … where |
| ✅ |
switch + cases + default |
| ✅ |
switch value / range / tuple patterns |
| ✅ |
where clauses in cases |
| ✅ |
fallthrough |
| ✅ |
break / continue + labeled statements |
| ✅ |
switch exhaustiveness / @unknown default |
Tier 2 — Value & Nominal Types
Structs & Enums
| Status |
Feature |
| ✅ |
struct declaration + stored properties |
| ✅ |
Value semantics (copy on assign/pass) |
| ✅ |
Memberwise initializers (synthesized) |
| ✅ |
Methods on structs |
| ✅ |
mutating methods |
| ✅ |
enum with simple cases |
| ✅ |
Enum associated values |
| ✅ |
Enum raw values + RawRepresentable |
| ✅ |
indirect enums (recursive) |
| ✅ |
Enum methods / computed props |
| ✅ |
CaseIterable synthesis |
| ✅ |
Nested types |
Properties
| Status |
Feature |
| ✅ |
Stored properties (let/var) |
| ✅ |
Computed properties (get/set) |
| ✅ |
Read-only computed properties |
| ✅ |
Property observers willSet/didSet |
| ✅ |
lazy stored properties |
| ✅ |
Type properties static/class |
| ✅ |
Property wrappers @propertyWrapper |
| 🟡 |
Projected values $wrapper |
| ⬜ |
Global & local lazy variables |
Optionals
| Status |
Feature |
| ✅ |
Optional type T? |
| ✅ |
if let / guard let binding |
| ✅ |
Shorthand if let x (Swift 5.7) |
| ✅ |
Forced unwrap ! (trap on nil) |
| ✅ |
Optional chaining ?. |
| ✅ |
Nil-coalescing ?? |
| ✅ |
Implicitly unwrapped optionals T! |
| ✅ |
Optional pattern case let x? |
Subscripts
| Status |
Feature |
| ✅ |
Instance subscripts |
| ✅ |
Type subscripts (static subscript) |
| ✅ |
Subscript overloads / multi-param |
Tier 3 — Reference Types & Memory (ARC)
| Status |
Feature |
| ✅ |
class declaration + reference semantics |
| ✅ |
ARC retain/release (refcount, no cycle GC) |
| ✅ |
Deterministic deinit at refcount 0 |
| ✅ |
Inheritance + method/property override |
| ✅ |
final / override semantics |
| ✅ |
Dynamic dispatch (vtables) |
| ✅ |
super. calls |
| 🟡 |
Designated / convenience initializers |
| 🟡 |
Initializer delegation + 2-phase init |
| ✅ |
required initializers |
| ✅ |
Failable initializers init? / init! |
| ✅ |
weak references (zeroing) |
| ✅ |
unowned references |
| ✅ |
unowned(unsafe) |
| ✅ |
Identity === !== |
| ✅ |
Type casting is / as? / as! / as |
| ✅ |
Downcasting in class hierarchies |
Closures
| Status |
Feature |
| ✅ |
Closure expressions |
| ✅ |
Trailing closures (+ multiple) |
| ✅ |
Shorthand args $0 $1 |
| ✅ |
Capture by reference (upvalues) |
| 🟡 |
Capture lists [weak self] [unowned] |
| 🟡 |
@escaping closures |
| ✅ |
@autoclosure |
| ✅ |
Closures capturing inout |
Tier 4 — Abstraction: Protocols, Generics, Extensions
Protocols
| Status |
Feature |
| ✅ |
Protocol declaration (methods/props/init) |
| ✅ |
Conformance + witness tables |
| 🟡 |
Protocol inheritance |
| ✅ |
Protocol composition P & Q |
| ✅ |
Default implementations (in extensions) |
| ✅ |
Associated types |
| ✅ |
Protocol as type / existential any P |
| ✅ |
Self requirements |
| ✅ |
Protocol witness for operators |
| ⬜ |
Optional protocol requirements (@objc optional) |
| ✅ |
Class-only protocols (AnyObject) |
| ✅ |
Conditional conformance |
| 🟡 |
Synthesized Equatable/Hashable/Comparable |
| 🟡 |
Synthesized Codable |
Generics
| Status |
Feature |
| ✅ |
Generic functions <T> |
| ✅ |
Generic types (struct/class/enum) |
| ✅ |
Type constraints <T: Protocol> |
| 🟡 |
where clauses |
| ✅ |
Associated-type constraints |
| ✅ |
Generic subscripts |
| ⬜ |
Monomorphization vs witness dispatch |
| ✅ |
Contextual where on extensions |
| ⬜ |
Primary associated types (some Collection<Int>) |
| ⬜ |
Parameter packs / variadic generics each |
| ⬜ |
Integer generic parameters (let N: Int) |
| ⬜ |
~Copyable / ~Escapable |
Extensions
| Status |
Feature |
| ✅ |
Extend struct/class/enum/protocol |
| ✅ |
Add methods/computed props/inits/subscripts |
| ✅ |
Add protocol conformance via extension |
| ✅ |
Conditional extensions (where) |
| ✅ |
Extensions on generic types |
Tier 5 — Error Handling & Resource Management
| Status |
Feature |
| ✅ |
Error protocol + custom errors |
| ✅ |
throws functions |
| ✅ |
throw statement |
| ✅ |
do / catch (+ pattern catches) |
| ✅ |
try / try? / try! |
| 🟡 |
rethrows |
| 🟡 |
Typed throws throws(E) (Swift 6) |
| ✅ |
defer statements (LIFO on scope exit) |
| ✅ |
Error propagation through call stack |
| ✅ |
Result<Success, Failure> |
Tier 6 — Advanced Types & Expressions
| Status |
Feature |
| ✅ |
Opaque types some P (return) |
| ✅ |
Boxed/existential any P |
| ✅ |
Metatypes T.self / .Type / .Protocol |
| ✅ |
type(of:) dynamic type |
| ✅ |
Key paths \Root.path |
| ✅ |
Key-path expressions as functions |
| ⬜ |
@dynamicMemberLookup |
| ⬜ |
@dynamicCallable |
| ⬜ |
#selector / #keyPath |
| ⬜ |
Self type in return position |
| ✅ |
Implicit member expr .foo |
| ⬜ |
consume / borrow operators |
| ⬜ |
discard self |
Tier 7 — Concurrency
Runs on a single-threaded cooperative executor. Results and structure are
faithful; preemptive scheduling order may differ from native Swift.
| Status |
Feature |
| ✅ |
async functions |
| ✅ |
await expressions |
| ✅ |
async let |
| ✅ |
Task / Task.detached |
| ✅ |
Task groups (withTaskGroup) |
| 🟡 |
Task cancellation |
| ✅ |
actor declarations + isolation |
| 🟡 |
Actor reentrancy / serial executor |
| ✅ |
@MainActor / global actors |
| 🟡 |
nonisolated / isolated params |
| 🟡 |
Sendable checking |
| ✅ |
AsyncSequence / for await |
| ⬜ |
Continuations (withCheckedContinuation) |
| ⬜ |
Strict concurrency (Swift 6 mode) |
| Status |
Feature |
| ⬜ |
Freestanding macros #macro |
| ⬜ |
Attached macros @Macro |
| ⬜ |
Macro declarations |
| ✅ |
Built-in #file/#line/#function/#column |
| 🟡 |
#warning / #error |
| ⬜ |
@freestanding / @attached roles |
| ✅ |
@resultBuilder (DSL transform) |
| ✅ |
Result-builder method synthesis |
Tier 9 — Attributes, Access Control, Operators
Access Control
| Status |
Feature |
| ⬜ |
open public internal fileprivate private |
| ⬜ |
package access level |
| ⬜ |
Access on setters private(set) |
| 🟡 |
Module boundaries / import |
Custom Operators
| Status |
Feature |
| ✅ |
prefix/infix/postfix operator decls |
| ✅ |
precedencegroup |
| ✅ |
Operator method implementations |
| ✅ |
Operator overloading |
Compiler Directives
| Status |
Feature |
| ✅ |
Conditional compilation #if/#elseif/#else/#endif |
| ✅ |
#if platform/arch/compiler/canImport/swift() |
| ⬜ |
#sourceLocation line control |
| ⬜ |
#available / #unavailable conditions |