@frozen public struct SomeData { public init() {} } public final class SomeClass: Sendable { public init() {} } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where T == Double) @_specialize(exported: true, where @_noMetadata T : _Class) @_specialize(exported: true, where @_noMetadata T : _BridgeObject) @_specialize(exported: true, where @_noMetadata T : _Trivial(64)) @_specialize(exported: true, where @_noMetadata T : _TrivialStride(96)) @_specialize(exported: true, availability: macOS 50, *; where T == SomeData) public func publicPrespecialized(_ t: T) { } @_specialize(exported: true, where @_noMetadata T : _Class) public func publicPrespecializedWithMarkerProtocol(_ t: T) -> T { return t } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) @_specialize(exported: true, availability: macOS 50, *; where T == SomeData) @inlinable @inline(never) public func publicPrespecialized2(_ t: T) { } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) @_specialize(exported: true, availability: macOS 50, *; where T == SomeData) @inlinable @inline(never) public func publicPrespecializedThrows(_ t: T) throws -> T { return t } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where T == Double) @_specialize(exported: true, where @_noMetadata T : _Class) @_alwaysEmitIntoClient @inline(never) internal func internalEmitIntoClientPrespecialized(_ t: T) { } @inlinable public func useInternalEmitIntoClientPrespecialized(_ t: T) { internalEmitIntoClientPrespecialized(t) } @inlinable public func publicInlineable(_ t: T) { } public struct ResilientThing { public init() {} } @usableFromInline @frozen internal struct InternalThing2 { @usableFromInline var x : T @usableFromInline init(_ t: T) { x = t } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) @inlinable func compute() -> T { return x } @inlinable var computedX : T { @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) get { return x } } @inlinable var computedY : T { @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) get { return x } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) set { x = newValue } } @inlinable var computedZ : T { @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) _modify { yield &x } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) _read { yield x } } @inlinable subscript(_ i: Int) -> T { @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) get { return x } @_specialize(exported: true, where T == Int) @_specialize(exported: true, where @_noMetadata T : _Class) set { } } } @inlinable public func useInternalThing(_ t: T) { var x = InternalThing2(t) print(x.compute()) print(x.computedX) x.computedY = t print(x.computedY) x.computedZ = t print(x.computedZ) x[1] = t print(x[1]) } @_specialize(exported: true, where @_noMetadata T : _Class, @_noMetadata V : _Class) @_specialize(exported: true, where @_noMetadata T : _BridgeObject, @_noMetadata V : _BridgeObject) public func publicPresepcializedMultipleIndirectResults(_ t: T, _ v: V, _ x: Int64) -> (V, Int64, T) { return (v, x, t) } @_specialize(exported: true, where @_noMetadata T : _Class, @_noMetadata V : _Class) public func publicPresepcializedMultipleIndirectResultsWithMarkerProtocol(_ t: T, _ v: V, _ x: Int64) -> (V, Int64, T) { return (v, x, t) }