Update for Xcode 26.1.1 Swift 6.2.1
Now Swift has added in the @frozen keyword for some definitions in the standard library. To get the same updated information, type "Swift" in Xcode's Editor and right click on the Swift, select "Jump to Definition" as before. Select all and copy.
Open a Terminal and run the command
pbpaste | grep -E '(^@frozen public|^public)' | grep -E '(struct|protocol|class|enum)' > swiftTypes.txt
you get:
public protocol AdditiveArithmetic : Equatable {
@frozen public struct AnyBidirectionalCollection<Element> {
@frozen public struct AnyCollection<Element> {
@frozen public struct AnyHashable {
@frozen public struct AnyIndex {
@frozen public struct AnyIterator<Element> {
public class AnyKeyPath : _AppendKeyPath {
@frozen public struct AnyRandomAccessCollection<Element> {
@frozen public struct AnySequence<Element> {
@frozen public struct Array<Element> {
@frozen public struct ArraySlice<Element> {
@frozen public struct AutoreleasingUnsafeMutablePointer<Pointee> {
public protocol BidirectionalCollection<Element> : Collection where Self.Indices : BidirectionalCollection, Self.SubSequence : BidirectionalCollection {
public protocol BinaryFloatingPoint : ExpressibleByFloatLiteral, FloatingPoint {
public protocol BinaryInteger : CustomStringConvertible, Hashable, Numeric, Strideable where Self.Magnitude : BinaryInteger, Self.Magnitude == Self.Magnitude.Magnitude {
public protocol BitwiseCopyable : ~Escapable {
@frozen public struct Bool : Sendable {
@frozen public struct CVaListPointer {
public protocol CVarArg {
public protocol CaseIterable {
@frozen public struct Character : Sendable {
@frozen public struct ClosedRange<Bound> where Bound : Comparable {
public protocol CodingKey : CustomDebugStringConvertible, CustomStringConvertible, Sendable {
public protocol CodingKeyRepresentable {
public struct CodingUserInfoKey : RawRepresentable, Equatable, Hashable, Sendable {
public protocol Collection<Element> : Sequence {
public struct CollectionDifference<ChangeElement> {
@frozen public struct CollectionOfOne<Element> {
@frozen public enum CommandLine : ~BitwiseCopyable {
public protocol Comparable : Equatable {
@frozen public struct ContiguousArray<Element> {
public protocol Copyable {
public protocol CustomDebugStringConvertible {
public protocol CustomLeafReflectable : CustomReflectable {
public protocol CustomPlaygroundDisplayConvertible {
public protocol CustomReflectable {
public protocol CustomStringConvertible {
public protocol Decodable {
public protocol Decoder {
public enum DecodingError : Error {
@frozen public struct DefaultIndices<Elements> where Elements : Collection {
@frozen public struct DefaultStringInterpolation : StringInterpolationProtocol, Sendable {
@frozen public struct Dictionary<Key, Value> where Key : Hashable {
public struct DiscontiguousSlice<Base> where Base : Collection {
@frozen public struct Double {
@frozen public struct DropFirstSequence<Base> where Base : Sequence {
@frozen public struct DropWhileSequence<Base> where Base : Sequence {
@frozen public struct Duration : Sendable {
public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
@frozen public struct EmptyCollection<Element> {
public protocol Encodable {
public protocol Encoder {
public enum EncodingError : Error {
@frozen public struct EnumeratedSequence<Base> where Base : Sequence {
public protocol Equatable {
public protocol Error : Sendable {
public protocol Escapable {
public protocol ExpressibleByArrayLiteral {
public protocol ExpressibleByBooleanLiteral {
public protocol ExpressibleByDictionaryLiteral {
public protocol ExpressibleByExtendedGraphemeClusterLiteral : ExpressibleByUnicodeScalarLiteral {
public protocol ExpressibleByFloatLiteral {
public protocol ExpressibleByIntegerLiteral {
public protocol ExpressibleByNilLiteral : ~Copyable, ~Escapable {
public protocol ExpressibleByStringInterpolation : ExpressibleByStringLiteral {
public protocol ExpressibleByStringLiteral : ExpressibleByExtendedGraphemeClusterLiteral {
public protocol ExpressibleByUnicodeScalarLiteral {
public protocol FixedWidthInteger : BinaryInteger, LosslessStringConvertible where Self.Magnitude : FixedWidthInteger, Self.Magnitude : UnsignedInteger, Self.Stride : FixedWidthInteger, Self.Stride : SignedInteger {
@frozen public struct FlattenSequence<Base> where Base : Sequence, Base.Element : Sequence {
@frozen public struct Float {
@frozen public struct Float16 {
public protocol FloatingPoint : Hashable, SignedNumeric, Strideable where Self == Self.Magnitude {
@frozen public enum FloatingPointClassification : Sendable {
public enum FloatingPointRoundingRule : Sendable {
@frozen public enum FloatingPointSign : Int, Sendable {
public protocol Hashable : Equatable {
@frozen public struct Hasher {
public protocol Identifiable<ID> {
@frozen public struct IndexingIterator<Elements> where Elements : Collection {
@frozen public struct InlineArray<let count : Int, Element> : ~Copyable where Element : ~Copyable {
public protocol InstantProtocol<Duration> : Comparable, Hashable, Sendable {
@frozen public struct Int : FixedWidthInteger, SignedInteger {
@frozen public struct Int128 : Sendable {
@frozen public struct Int16 : FixedWidthInteger, SignedInteger {
@frozen public struct Int32 : FixedWidthInteger, SignedInteger {
@frozen public struct Int64 : FixedWidthInteger, SignedInteger {
@frozen public struct Int8 : FixedWidthInteger, SignedInteger {
public protocol IteratorProtocol<Element> {
@frozen public struct IteratorSequence<Base> where Base : IteratorProtocol {
@frozen public struct JoinedSequence<Base> where Base : Sequence, Base.Element : Sequence {
public class KeyPath<Root, Value> : PartialKeyPath<Root> {
@frozen public struct KeyValuePairs<Key, Value> : ExpressibleByDictionaryLiteral {
public struct KeyedDecodingContainer<K> : KeyedDecodingContainerProtocol where K : CodingKey {
public protocol KeyedDecodingContainerProtocol {
public struct KeyedEncodingContainer<K> : KeyedEncodingContainerProtocol where K : CodingKey {
public protocol KeyedEncodingContainerProtocol {
public protocol LazyCollectionProtocol : Collection, LazySequenceProtocol where Self.Elements : Collection {
@frozen public struct LazyDropWhileSequence<Base> where Base : Sequence {
@frozen public struct LazyFilterSequence<Base> where Base : Sequence {
@frozen public struct LazyMapSequence<Base, Element> where Base : Sequence {
@frozen public struct LazyPrefixWhileSequence<Base> where Base : Sequence {
@frozen public struct LazySequence<Base> where Base : Sequence {
public protocol LazySequenceProtocol : Sequence {
public protocol LosslessStringConvertible : CustomStringConvertible {
@frozen public struct ManagedBufferPointer<Header, Element> : Copyable where Element : ~Copyable {
@frozen public enum MemoryLayout<T> : ~BitwiseCopyable, Copyable, Escapable where T : ~Copyable, T : ~Escapable {
public struct Mirror {
public protocol MirrorPath {
public protocol MutableCollection<Element> : Collection where Self.SubSequence : MutableCollection {
@frozen public struct MutableRawSpan : ~Copyable & ~Escapable {
@frozen public struct MutableSpan<Element> : ~Copyable, ~Escapable where Element : ~Copyable {
@frozen public enum Never {
public protocol Numeric : AdditiveArithmetic, ExpressibleByIntegerLiteral {
@frozen public struct ObjectIdentifier : Sendable {
@frozen public struct OpaquePointer {
public protocol OptionSet : RawRepresentable, SetAlgebra {
@frozen public enum Optional<Wrapped> : ~Copyable, ~Escapable where Wrapped : ~Copyable, Wrapped : ~Escapable {
@frozen public struct OutputRawSpan : ~Copyable, ~Escapable {
@frozen public struct OutputSpan<Element> : ~Copyable, ~Escapable where Element : ~Copyable {
public class PartialKeyPath<Root> : AnyKeyPath {
@frozen public struct PartialRangeFrom<Bound> where Bound : Comparable {
@frozen public struct PartialRangeThrough<Bound> where Bound : Comparable {
@frozen public struct PartialRangeUpTo<Bound> where Bound : Comparable {
@frozen public struct PrefixSequence<Base> where Base : Sequence {
public protocol RandomAccessCollection<Element> : BidirectionalCollection where Self.Indices : RandomAccessCollection, Self.SubSequence : RandomAccessCollection {
public protocol RandomNumberGenerator {
@frozen public struct Range<Bound> where Bound : Comparable {
public protocol RangeExpression<Bound> {
public protocol RangeReplaceableCollection<Element> : Collection where Self.SubSequence : RangeReplaceableCollection {
public struct RangeSet<Bound> where Bound : Comparable {
public protocol RawRepresentable<RawValue> {
@frozen public struct RawSpan : ~Escapable, Copyable, BitwiseCopyable {
public class ReferenceWritableKeyPath<Root, Value> : WritableKeyPath<Root, Value> {
@frozen public struct Repeated<Element> {
@frozen public enum Result<Success, Failure> where Failure : Error, Success : ~Copyable, Success : ~Escapable {
@frozen public struct ReversedCollection<Base> where Base : BidirectionalCollection {
public protocol SIMD<Scalar> : CustomStringConvertible, Decodable, Encodable, ExpressibleByArrayLiteral, Hashable, SIMDStorage {
@frozen public struct SIMD16<Scalar> : SIMD where Scalar : SIMDScalar {
@frozen public struct SIMD2<Scalar> : SIMD where Scalar : SIMDScalar {
@frozen public struct SIMD3<Scalar> : SIMD where Scalar : SIMDScalar {
@frozen public struct SIMD32<Scalar> : SIMD where Scalar : SIMDScalar {
@frozen public struct SIMD4<Scalar> : SIMD where Scalar : SIMDScalar {
@frozen public struct SIMD64<Scalar> : SIMD where Scalar : SIMDScalar {
@frozen public struct SIMD8<Scalar> : SIMD where Scalar : SIMDScalar {
@frozen public struct SIMDMask<Storage> : SIMD where Storage : SIMD, Storage.Scalar : FixedWidthInteger, Storage.Scalar : SignedInteger {
public protocol SIMDScalar : BitwiseCopyable {
public protocol SIMDStorage {
public protocol Sendable : SendableMetatype {
public protocol SendableMetatype : ~Copyable, ~Escapable {
public protocol Sequence<Element> {
@frozen public struct Set<Element> where Element : Hashable {
public protocol SetAlgebra<Element> : Equatable, ExpressibleByArrayLiteral {
public protocol SignedInteger : BinaryInteger, SignedNumeric {
public protocol SignedNumeric : Numeric {
public protocol SingleValueDecodingContainer {
public protocol SingleValueEncodingContainer {
@frozen public struct Slice<Base> where Base : Collection {
@frozen public struct Span<Element> : ~Escapable, Copyable, BitwiseCopyable where Element : ~Copyable {
@frozen public struct StaticBigInt : ExpressibleByIntegerLiteral, Sendable {
@frozen public struct StaticString : Sendable {
@frozen public struct StrideThrough<Element> where Element : Strideable {
@frozen public struct StrideThroughIterator<Element> where Element : Strideable {
@frozen public struct StrideTo<Element> where Element : Strideable {
@frozen public struct StrideToIterator<Element> where Element : Strideable {
public protocol Strideable<Stride> : Comparable {
@frozen public struct String {
public protocol StringInterpolationProtocol {
public protocol StringProtocol : BidirectionalCollection, Comparable, ExpressibleByStringInterpolation, Hashable, LosslessStringConvertible, TextOutputStream, TextOutputStreamable where Self.Element == Character, Self.Index == String.Index, Self.StringInterpolation == DefaultStringInterpolation, Self.SubSequence : StringProtocol {
@frozen public struct Substring : Sendable {
@frozen public struct SystemRandomNumberGenerator : RandomNumberGenerator, Sendable {
public protocol TextOutputStream {
public protocol TextOutputStreamable {
@frozen public struct UInt : FixedWidthInteger, UnsignedInteger {
@frozen public struct UInt128 : Sendable {
@frozen public struct UInt16 : FixedWidthInteger, UnsignedInteger {
@frozen public struct UInt32 : FixedWidthInteger, UnsignedInteger {
@frozen public struct UInt64 : FixedWidthInteger, UnsignedInteger {
@frozen public struct UInt8 : FixedWidthInteger, UnsignedInteger {
@frozen public struct UTF8Span : Copyable, ~Escapable, BitwiseCopyable {
@frozen public enum UnboundedRange_ {
@frozen public struct UnfoldSequence<Element, State> : Sequence, IteratorProtocol {
@frozen public enum Unicode : ~BitwiseCopyable {
public protocol UnicodeCodec : _UnicodeEncoding {
@frozen public enum UnicodeDecodingResult : Equatable, Sendable {
public protocol UnkeyedDecodingContainer {
public protocol UnkeyedEncodingContainer {
@frozen public struct Unmanaged<Instance> where Instance : AnyObject {
@frozen public struct UnsafeBufferPointer<Element> : Copyable where Element : ~Copyable {
@frozen public struct UnsafeMutableBufferPointer<Element> : Copyable where Element : ~Copyable {
@frozen public struct UnsafeMutablePointer<Pointee> : Copyable where Pointee : ~Copyable {
@frozen public struct UnsafeMutableRawBufferPointer {
@frozen public struct UnsafeMutableRawPointer {
@frozen public struct UnsafePointer<Pointee> : Copyable where Pointee : ~Copyable {
@frozen public struct UnsafeRawBufferPointer {
@frozen public struct UnsafeRawPointer {
public protocol UnsafeSendable : Sendable {
public protocol UnsignedInteger : BinaryInteger {
public class WritableKeyPath<Root, Value> : KeyPath<Root, Value> {
@frozen public struct Zip2Sequence<Sequence1, Sequence2> where Sequence1 : Sequence, Sequence2 : Sequence {
public protocol _AppendKeyPath {