swift-evolution-2026-05-29
Swift · · 5 min read
Swift Evolution — May 29, 2026
Ingested at: 2026-05-29T08:03:00Z
533 active proposals in the repository.
Recent Commits (last 10)
f311762Update 0527-rigidarray-uniquearray.md (#3311) — Stephen Canon (2026-05-27)3524699Merge pull request #3308 from NotTheNHK/patch-4 — John McCall (2026-05-26)6ea34cfMerge pull request #3310 from swiftlang/se-0532-review-link — John McCall (2026-05-26)75dff8eLink SE-0532 to its review — John McCall (2026-05-26)8ad397fMerge pull request #3295 from Azoy/optional-noncopyables — John McCall (2026-05-26)d3bbb1eAssign SE-0532 to the optional improvements proposal and put it in review — John McCall (2026-05-26)d91c037Merge pull request #3268 from tshortli/default-implementations-satisfy-proto-requirements-se0444 — Becca Royal-Gordon (2026-05-26)a27ea51Accept SE-0444 amendment — Becca Royal-Gordon (2026-05-26)6daabb8More cleanup — Barreloofy (2026-05-26)aa4caa8Apply suggestions — NotTheNHK (2026-05-26)
All Proposals
- 0001-keywords-as-argument-labels
- 0002-remove-currying
- 0003-remove-var-parameters
- 0004-remove-pre-post-inc-decrement
- 0005-objective-c-name-translation
- 0006-apply-api-guidelines-to-the-standard-library
- 0007-remove-c-style-for-loops
- 0008-lazy-flatmap-for-optionals
- 0009-require-self-for-accessing-instance-members
- 0010-add-staticstring-unicodescalarview
- 0011-replace-typealias-associated
- 0012-add-noescape-to-public-library-api
- 0013-remove-partial-application-super
- 0014-constrained-AnySequence
- 0015-tuple-comparison-operators
- 0016-initializers-for-converting-unsafe-pointers-to-ints
- 0017-convert-unmanaged-to-use-unsafepointer
- 0018-flexible-memberwise-initialization
- 0019-package-manager-testing
- 0020-if-swift-version
- 0021-generalized-naming
- 0022-objc-selectors
- 0023-api-guidelines
- 0024-optional-value-setter
- 0025-scoped-access-level
- 0026-abstract-classes-and-methods
- 0027-string-from-code-units
- 0028-modernizing-debug-identifiers
- 0029-remove-implicit-tuple-splat
- 0030-property-behavior-decls
- 0031-adjusting-inout-declarations
- 0032-sequencetype-find
- 0033-import-objc-constants
- 0034-disambiguating-line
- 0035-limit-inout-capture
- 0036-enum-dot
- 0037-clarify-comments-and-operators
- 0038-swiftpm-c-language-targets
- 0039-playgroundliterals
- 0040-attributecolons
- 0041-conversion-protocol-conventions
- 0042-flatten-method-types
- 0043-declare-variables-in-case-labels-with-multiple-patterns
- 0044-import-as-member
- 0045-scan-takewhile-dropwhile
- 0046-first-label
- 0047-nonvoid-warn
- 0048-generic-typealias
- 0049-noescape-autoclosure-type-attrs
- 0050-floating-point-stride
- 0051-stride-semantics
- 0052-iterator-post-nil-guarantee
- 0053-remove-let-from-function-parameters
- 0054-abolish-iuo
- 0055-optional-unsafe-pointers
- 0056-trailing-closures-in-guard
- 0057-importing-objc-generics
- 0058-objectivecbridgeable
- 0059-updated-set-apis
- 0060-defaulted-parameter-order
- 0061-autoreleasepool-signature
- 0062-objc-keypaths
- 0063-swiftpm-system-module-search-paths
- 0064-property-selectors
- 0065-collections-move-indices
- 0066-standardize-function-type-syntax
- 0067-floating-point-protocols
- 0068-universal-self
- 0069-swift-mutability-for-foundation
- 0070-optional-requirements
- 0071-member-keywords
- 0072-eliminate-implicit-bridging-conversions
- 0073-noescape-once
- 0074-binary-search
- 0075-import-test
- 0076-copying-to-unsafe-mutable-pointer-with-unsafe-pointer-source
- 0077-operator-precedence
- 0078-rotate-algorithm
- 0079-upgrade-self-from-weak-to-strong
- 0080-failable-numeric-initializers
- 0081-move-where-expression
- 0082-swiftpm-package-edit
- 0083-remove-bridging-from-dynamic-casts
- 0084-trailing-commas
- 0085-package-manager-command-name
- 0086-drop-foundation-ns
- 0087-lazy-attribute
- 0088-libdispatch-for-swift3
- 0089-rename-string-reflection-init
- 0090-remove-dot-self
- 0091-improving-operators-in-protocols
- 0092-typealiases-in-protocols
- 0093-slice-base
- 0094-sequence-function
- 0095-any-as-existential
- 0096-dynamictype
- 0097-negative-attributes
- 0098-didset-capitalization
- 0099-conditionclauses
- 0100-add-sequence-based-init-and-merge-to-dictionary
- 0101-standardizing-sizeof-naming
- 0102-noreturn-bottom-type
- 0103-make-noescape-default
- 0104-improved-integers
- 0105-remove-where-from-forin-loops
- 0106-rename-osx-to-macos
- 0107-unsaferawpointer
- 0108-remove-assoctype-inference
- 0109-remove-boolean
- 0110-distinguish-single-tuple-arg
- 0111-remove-arg-label-type-significance
- 0112-nserror-bridging
- 0113-rounding-functions-on-floatingpoint
- 0114-buffer-naming
- 0115-literal-syntax-protocols
- 0116-id-as-any
- 0117-non-public-subclassable-by-default
- 0118-closure-parameter-names-and-labels
- 0119-extensions-access-modifiers
- 0120-revise-partition-method
- 0121-remove-optional-comparison-operators
- 0122-use-colons-for-subscript-type-declarations
- 0123-disallow-value-to-optional-coercion-in-operator-arguments
- 0124-bitpattern-label-for-int-initializer-objectidentfier
- 0125-remove-nonobjectivecbase
- 0126-refactor-metatypes-repurpose-t-dot-self-and-mirror
- 0127-cleaning-up-stdlib-ptr-buffer
- 0128-unicodescalar-failable-initializer
- 0129-package-manager-test-naming-conventions
- 0130-string-initializers-cleanup
- 0131-anyhashable
- 0132-sequence-end-ops
- 0133-rename-flatten-to-joined
- 0134-rename-string-properties
- 0135-package-manager-support-for-differentiating-packages-by-swift-version
- 0136-memory-layout-of-values
- 0137-avoiding-lock-in
- 0138-unsaferawbufferpointer
- 0139-bridge-nsnumber-and-nsvalue
- 0140-bridge-optional-to-nsnull
- 0141-available-by-swift-version
- 0142-associated-types-constraints
- 0143-conditional-conformances
- 0144-allow-single-dollar-sign-as-valid-identifier
- 0145-package-manager-version-pinning
- 0146-package-manager-product-definitions
- 0147-move-unsafe-initialize-from
- 0148-generic-subscripts
- 0149-package-manager-top-of-tree
- 0150-package-manager-branch-support
- 0151-package-manager-swift-language-compatibility-version
- 0152-package-manager-tools-version
- 0153-compensate-for-the-inconsistency-of-nscopyings-behaviour
- 0154-dictionary-key-and-value-collections
- 0155-normalize-enum-case-representation
- 0156-subclass-existentials
- 0157-recursive-protocol-constraints
- 0158-package-manager-manifest-api-redesign
- 0159-fix-private-access-levels
- 0160-objc-inference
- 0161-key-paths
- 0162-package-manager-custom-target-layouts
- 0163-string-revision-1
- 0164-remove-final-support-in-protocol-extensions
- 0165-dict
- 0166-swift-archival-serialization
- 0167-swift-encoders
- 0168-multi-line-string-literals
- 0169-improve-interaction-between-private-declarations-and-extensions
- 0170-nsnumber_bridge
- 0171-reduce-with-inout
- 0172-one-sided-ranges
- 0173-swap-indices
- 0174-filter-range-replaceable
- 0175-package-manager-revised-dependency-resolution
- 0176-enforce-exclusive-access-to-memory
- 0177-add-clamped-to-method
- 0178-character-unicode-view
- 0179-swift-run-command
- 0180-string-index-overhaul
- 0181-package-manager-cpp-language-version
- 0182-newline-escape-in-strings
- 0183-substring-affordances
- 0184-unsafe-pointers-add-missing
- 0185-synthesize-equatable-hashable
- 0186-remove-ownership-keyword-support-in-protocols
- 0187-introduce-filtermap
- 0188-stdlib-index-types-hashable
- 0189-restrict-cross-module-struct-initializers
- 0190-target-environment-platform-condition
- 0191-eliminate-indexdistance
- 0192-non-exhaustive-enums
- 0193-cross-module-inlining-and-specialization
- 0194-derived-collection-of-enum-cases
- 0195-dynamic-member-lookup
- 0196-diagnostic-directives
- 0197-remove-where
- 0198-playground-quicklook-api-revamp
- 0199-bool-toggle
- 0200-raw-string-escaping
- 0201-package-manager-local-dependencies
- 0202-random-unification
- 0203-rename-sequence-elements-equal
- 0204-add-last-methods
- 0205-withUnsafePointer-for-lets
- 0206-hashable-enhancements
- 0207-containsOnly
- 0208-package-manager-system-library-targets
- 0209-package-manager-swift-lang-version-update
- 0210-key-path-offset
- 0211-unicode-scalar-properties
- 0212-compiler-version-directive
- 0213-literal-init-via-coercion
- 0214-DictionaryLiteral
- 0215-conform-never-to-hashable-and-equatable
- 0216-dynamic-callable
- 0217-bangbang
- 0218-introduce-compact-map-values
- 0219-package-manager-dependency-mirroring
- 0220-count-where
- 0221-character-properties
- 0222-lazy-compactmap-sequence
- 0223-array-uninitialized-initializer
- 0224-ifswift-lessthan-operator
- 0225-binaryinteger-iseven-isodd-ismultiple
- 0226-package-manager-target-based-dep-resolution
- 0227-identity-keypath
- 0228-fix-expressiblebystringinterpolation
- 0229-simd
- 0230-flatten-optional-try
- 0231-optional-iteration
- 0232-remove-customization-points
- 0233-additive-arithmetic-protocol
- 0234-remove-sequence-subsequence
- 0235-add-result
- 0236-package-manager-platform-deployment-settings
- 0237-contiguous-collection
- 0238-package-manager-build-settings
- 0239-codable-range
- 0240-ordered-collection-diffing
- 0241-string-index-explicit-encoding-offset
- 0242-default-values-memberwise
- 0243-codepoint-and-character-literals
- 0244-opaque-result-types
- 0245-array-uninitialized-initializer
- 0246-mathable
- 0247-contiguous-strings
- 0248-string-gaps-missing-apis
- 0249-key-path-literal-function-expressions
- 0250-swift-style-guide-and-formatter
- 0251-simd-additions
- 0252-keypath-dynamic-member-lookup
- 0253-callable
- 0254-static-subscripts
- 0255-omit-return
- 0256-contiguous-collection
- 0257-elide-comma
- 0258-property-wrappers
- 0259-approximately-equal
- 0260-library-evolution
- 0261-identifiable
- 0262-demangle
- 0263-string-uninitialized-initializer
- 0264-stdlib-preview-package
- 0265-offset-indexing-and-slicing
- 0266-synthesized-comparable-for-enumerations
- 0267-where-on-contextually-generic
- 0268-didset-semantics
- 0269-implicit-self-explicit-capture
- 0270-rangeset-and-collection-operations
- 0271-package-manager-resources
- 0272-swiftpm-binary-dependencies
- 0273-swiftpm-conditional-target-dependencies
- 0274-magic-file
- 0275-allow-more-characters-like-whitespaces-and-punctuations-for-escaped-identifiers
- 0276-multi-pattern-catch-clauses
- 0277-float16
- 0278-package-manager-localized-resources
- 0279-multiple-trailing-closures
- 0280-enum-cases-as-protocol-witnesses
- 0281-main-attribute
- 0282-atomics
- 0283-tuples-are-equatable-comparable-hashable
- 0284-multiple-variadic-parameters
- 0285-ease-pound-file-transition
- 0286-forward-scan-trailing-closures
- 0287-implicit-member-chains
- 0288-binaryinteger-ispower
- 0289-result-builders
- 0290-negative-availability
- 0291-package-collections
- 0292-package-registry-service
- 0293-extend-property-wrappers-to-function-and-closure-parameters
- 0294-package-executable-targets
- 0295-codable-synthesis-for-enums-with-associated-values
- 0296-async-await
- 0297-concurrency-objc
- 0298-asyncsequence
- 0299-extend-generic-static-member-lookup
- 0300-continuation
- 0301-package-editing-commands
- 0302-concurrent-value-and-concurrent-closures
- 0303-swiftpm-extensible-build-tools
- 0304-structured-concurrency
- 0305-swiftpm-binary-target-improvements
- 0306-actors
- 0307-allow-interchangeable-use-of-double-cgfloat-types
- 0308-postfix-if-config-expressions
- 0309-unlock-existential-types-for-all-protocols
- 0310-effectful-readonly-properties
- 0311-task-locals
- 0312-indexed-and-enumerated-zip-collections
- 0313-actor-isolation-control
- 0314-async-stream
- 0315-placeholder-types
- 0316-global-actors
- 0317-async-let
- 0318-package-creation
- 0319-never-identifiable
- 0320-codingkeyrepresentable
- 0321-package-registry-publish
- 0322-temporary-buffers
- 0323-async-main-semantics
- 0324-c-lang-pointer-arg-conversion
- 0325-swiftpm-additional-plugin-apis
- 0326-extending-multi-statement-closure-inference
- 0327-actor-initializers
- 0328-structural-opaque-result-types
- 0329-clock-instant-duration
- 0330-collection-conditionals
- 0331-remove-sendable-from-unsafepointer
- 0332-swiftpm-command-plugins
- 0333-with-memory-rebound
- 0334-pointer-usability-improvements
- 0335-existential-any
- 0336-distributed-actor-isolation
- 0337-support-incremental-migration-to-concurrency-checking
- 0338-clarify-execution-non-actor-async
- 0339-module-aliasing-for-disambiguation
- 0340-swift-noasync
- 0341-opaque-parameters
- 0342-static-link-runtime-libraries-by-default-on-supported-platforms
- 0343-top-level-concurrency
- 0344-distributed-actor-runtime
- 0345-if-let-shorthand
- 0346-light-weight-same-type-syntax
- 0347-type-inference-from-default-exprs
- 0348-buildpartialblock
- 0349-unaligned-loads-and-stores
- 0350-regex-type-overview
- 0351-regex-builder
- 0352-implicit-open-existentials
- 0353-constrained-existential-types
- 0354-regex-literals
- 0355-regex-syntax-run-time-construction
- 0356-swift-snippets
- 0357-regex-string-processing-algorithms
- 0358-primary-associated-types-in-stdlib
- 0359-build-time-constant-values
- 0360-opaque-result-types-with-availability
- 0361-bound-generic-extensions
- 0362-piecemeal-future-features
- 0363-unicode-for-string-processing
- 0364-retroactive-conformance-warning
- 0365-implicit-self-weak-capture
- 0366-move-function
- 0367-conditional-attributes
- 0368-staticbigint
- 0369-add-customdebugdescription-conformance-to-anykeypath
- 0370-pointer-family-initialization-improvements
- 0371-isolated-synchronous-deinit
- 0372-document-sorting-as-stable
- 0373-vars-without-limits-in-result-builders
- 0374-clock-sleep-for
- 0375-opening-existential-optional
- 0376-function-back-deployment
- 0377-parameter-ownership-modifiers
- 0378-package-registry-auth
- 0379-opt-in-reflection-metadata
- 0380-if-switch-expressions
- 0381-task-group-discard-results
- 0382-expression-macros
- 0383-deprecate-uiapplicationmain-and-nsapplicationmain
- 0384-importing-forward-declared-objc-interfaces-and-protocols
- 0385-custom-reflection-metadata
- 0386-package-access-modifier
- 0387-cross-compilation-destinations
- 0388-async-stream-factory
- 0389-attached-macros
- 0390-noncopyable-structs-and-enums
- 0391-package-registry-publish
- 0392-custom-actor-executors
- 0393-parameter-packs
- 0394-swiftpm-expression-macros
- 0395-observability
- 0396-never-codable
- 0397-freestanding-declaration-macros
- 0398-variadic-types
- 0399-tuple-of-value-pack-expansion
- 0400-init-accessors
- 0401-remove-property-wrapper-isolation
- 0402-extension-macros
- 0403-swiftpm-mixed-language-targets
- 0404-nested-protocols
- 0405-string-validating-initializers
- 0406-async-stream-backpressure
- 0407-member-macro-conformances
- 0408-pack-iteration
- 0409-access-level-on-imports
- 0410-atomics
- 0411-isolated-default-values
- 0412-strict-concurrency-for-global-variables
- 0413-typed-throws
- 0414-region-based-isolation
- 0415-function-body-macros
- 0416-keypath-function-subtyping
- 0417-task-executor-preference
- 0418-inferring-sendable-for-methods
- 0419-backtrace-api
- 0420-inheritance-of-actor-isolation
- 0421-generalize-async-sequence
- 0422-caller-side-default-argument-macro-expression
- 0423-dynamic-actor-isolation
- 0424-custom-isolation-checking-for-serialexecutor
- 0425-int128
- 0426-bitwise-copyable
- 0427-noncopyable-generics
- 0428-resolve-distributed-actor-protocols
- 0429-partial-consumption
- 0430-transferring-parameters-and-results
- 0431-isolated-any-functions
- 0432-noncopyable-switch
- 0433-mutex
- 0434-global-actor-isolated-types-usability
- 0435-swiftpm-per-target-swift-language-version-setting
- 0436-objc-implementation
- 0437-noncopyable-stdlib-primitives
- 0438-metatype-keypath
- 0439-trailing-comma-lists
- 0440-debug-description-macro
- 0441-formalize-language-mode-terminology
- 0442-allow-taskgroup-childtaskresult-type-to-be-inferred
- 0443-warning-control-flags
- 0444-member-import-visibility
- 0445-string-index-printing
- 0446-non-escapable
- 0447-span-access-shared-contiguous-storage
- 0448-regex-lookbehind-assertions
- 0449-nonisolated-for-global-actor-cutoff
- 0450-swiftpm-package-traits
- 0451-escaped-identifiers
- 0452-integer-generic-parameters
- 0453-vector
- 0454-memory-allocator
- 0455-swiftpm-testable-build-setting
- 0456-stdlib-span-properties
- 0457-duration-attosecond-represenation
- 0458-strict-memory-safety
- 0459-enumerated-collection
- 0460-specialized
- 0461-async-function-isolation
- 0462-task-priority-escalation-apis
- 0463-sendable-completion-handlers
- 0464-utf8span-safe-utf8-processing
- 0465-nonescapable-stdlib-primitives
- 0466-control-default-actor-isolation
- 0467-MutableSpan
- 0468-async-stream-continuation-hashable-conformance
- 0469-task-names
- 0470-isolated-conformances
- 0471-SerialExecutor-isIsolated
- 0472-task-start-synchronously-on-caller-context
- 0473-clock-epochs
- 0474-yielding-accessors
- 0475-observed
- 0476-abi-attr
- 0477-default-interpolation-values
- 0478-default-isolation-typealias
- 0479-method-and-initializer-keypaths
- 0480-swiftpm-warning-control
- 0481-weak-let
- 0482-swiftpm-static-library-binary-target-non-apple-platforms
- 0483-inline-array-sugar
- 0484-allow-additional-args-to-dynamicmemberlookup-subscripts
- 0485-outputspan
- 0486-adoption-tooling-for-swift-features
- 0487-extensible-enums
- 0488-extracting
- 0489-codable-error-printing
- 0490-environment-constrained-shared-libraries
- 0491-module-selectors
- 0492-section-control
- 0493-defer-async
- 0494-add-is-identical-methods
- 0495-cdecl
- 0496-inline-always
- 0497-definition-visibility
- 0498-runtime-demangle
- 0499-support-non-copyable-simple-protocols
- 0500-package-manager-templates
- 0501-swiftpm-html-coverage-report
- 0502-exclude-private-from-memberwise-init
- 0503-suppressed-associated-types
- 0504-task-cancellation-shields
- 0505-delayed-enqueuing
- 0506-advanced-observation-tracking
- 0507-borrow-accessors
- 0508-array-expression-trailing-closures
- 0509-swift-sboms-via-swiftpm
- 0510-dictionary-mapvalues-with-keys
- 0511-swiftpm-add-target-plugin
- 0512-withlockifavailable-cannot-spuriously-fail
- 0513-commandline-executablepath
- 0514-hashable-conformance-for-dictionarykeys-collectionofone-emptycollection
- 0515-noncopyable-reduce
- 0516-borrowing-sequence
- 0517-uniquebox
- 0518-tilde-sendable
- 0519-borrow-inout-types
- 0519-ref-mutableref-types
- 0520-discardableresult-task-initializers
- 0521-improved-optional-opaque-and-any
- 0522-source-warning-control
- 0523-hashable-unownedtask-executor
- 0524-span-temporary-allocation
- 0525-rawspan-safe-loading-api
- 0526-deadline
- 0527-rigidarray-uniquearray
- 0528-noncopyable-continuation
- 0529-filepath-in-stdlib
- 0530-async-result-support
- 0531-literal-expressions
- 0532-optional-noncopyable-improvements