Skip to content

Commit 88d305c

Browse files
authored
Merge pull request #17296 from lorentey/usableFromInline-typealiases
[stdlib] Add @usableFromInline to internal typealiases that need it
2 parents 05d0a2d + 23c630a commit 88d305c

25 files changed

+143
-15
lines changed

stdlib/public/core/Array.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,9 +299,11 @@
299299
@_fixed_layout
300300
public struct Array<Element>: _DestructorSafeContainer {
301301
#if _runtime(_ObjC)
302-
internal typealias _Buffer = _ArrayBuffer<Element>
302+
@usableFromInline
303+
internal typealias _Buffer = _ArrayBuffer<Element>
303304
#else
304-
internal typealias _Buffer = _ContiguousArrayBuffer<Element>
305+
@usableFromInline
306+
internal typealias _Buffer = _ContiguousArrayBuffer<Element>
305307
#endif
306308

307309
@usableFromInline

stdlib/public/core/ArrayBuffer.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#if _runtime(_ObjC)
1919
import SwiftShims
2020

21+
@usableFromInline
2122
internal typealias _ArrayBridgeStorage
2223
= _BridgeStorage<_ContiguousArrayStorageBase, _NSArrayCore>
2324

@@ -520,6 +521,7 @@ extension _ArrayBuffer {
520521

521522
//===--- private --------------------------------------------------------===//
522523
internal typealias Storage = _ContiguousArrayStorage<Element>
524+
@usableFromInline
523525
internal typealias NativeBuffer = _ContiguousArrayBuffer<Element>
524526

525527
@inlinable

stdlib/public/core/ArraySlice.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@
116116

117117
@_fixed_layout
118118
public struct ArraySlice<Element>: _DestructorSafeContainer {
119-
internal typealias _Buffer = _SliceBuffer<Element>
119+
@usableFromInline
120+
internal typealias _Buffer = _SliceBuffer<Element>
120121

121122
@usableFromInline
122123
internal var _buffer: _Buffer

stdlib/public/core/Character.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,7 @@ extension Character : CustomDebugStringConvertible {
373373
}
374374

375375
extension Character {
376+
@usableFromInline
376377
internal typealias _SmallUTF16 = _UIntBuffer<UInt64, Unicode.UTF16.CodeUnit>
377378

378379
@inlinable // FIXME(sil-serialize-all)

stdlib/public/core/Codable.swift.gyb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,6 +1490,7 @@ internal class _KeyedEncodingContainerBase<Key : CodingKey> {
14901490
internal final class _KeyedEncodingContainerBox<
14911491
Concrete : KeyedEncodingContainerProtocol
14921492
> : _KeyedEncodingContainerBase<Concrete.Key> {
1493+
@usableFromInline
14931494
typealias Key = Concrete.Key
14941495

14951496
@usableFromInline
@@ -1663,6 +1664,7 @@ internal class _KeyedDecodingContainerBase<Key : CodingKey> {
16631664
internal final class _KeyedDecodingContainerBox<
16641665
Concrete : KeyedDecodingContainerProtocol
16651666
> : _KeyedDecodingContainerBase<Concrete.Key> {
1667+
@usableFromInline
16661668
typealias Key = Concrete.Key
16671669

16681670
@usableFromInline

stdlib/public/core/ContiguousArray.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
/// which `ContiguousArray` shares most properties and methods.
3636
@_fixed_layout
3737
public struct ContiguousArray<Element>: _DestructorSafeContainer {
38-
internal typealias _Buffer = _ContiguousArrayBuffer<Element>
38+
@usableFromInline
39+
internal typealias _Buffer = _ContiguousArrayBuffer<Element>
3940

4041
@usableFromInline
4142
internal var _buffer: _Buffer

stdlib/public/core/Dictionary.swift

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -382,8 +382,11 @@ import SwiftShims
382382
@_fixed_layout
383383
public struct Dictionary<Key: Hashable, Value> {
384384

385+
@usableFromInline
385386
internal typealias _Self = Dictionary<Key, Value>
387+
@usableFromInline
386388
internal typealias _VariantBuffer = _VariantDictionaryBuffer<Key, Value>
389+
@usableFromInline
387390
internal typealias _NativeBuffer = _NativeDictionaryBuffer<Key, Value>
388391

389392
/// The element type of a dictionary: a tuple containing an individual
@@ -1835,6 +1838,7 @@ public func _dictionaryBridgeFromObjectiveCConditional<
18351838
internal class _RawNativeDictionaryStorage
18361839
: _SwiftNativeNSDictionary, _NSDictionaryCore
18371840
{
1841+
@usableFromInline
18381842
internal typealias RawStorage = _RawNativeDictionaryStorage
18391843

18401844
@usableFromInline // FIXME(sil-serialize-all)
@@ -2008,7 +2012,9 @@ internal class _TypedNativeDictionaryStorage<Key, Value>
20082012
final internal class _HashableTypedNativeDictionaryStorage<Key: Hashable, Value>
20092013
: _TypedNativeDictionaryStorage<Key, Value> {
20102014

2015+
@usableFromInline
20112016
internal typealias FullContainer = Dictionary<Key, Value>
2017+
@usableFromInline
20122018
internal typealias Buffer = _NativeDictionaryBuffer<Key, Value>
20132019

20142020
// This type is made with allocWithTailElems, so no init is ever called.
@@ -2157,11 +2163,16 @@ final internal class _HashableTypedNativeDictionaryStorage<Key: Hashable, Value>
21572163
@_fixed_layout
21582164
internal struct _NativeDictionaryBuffer<Key, Value> {
21592165

2166+
@usableFromInline // FIXME(sil-serialize-all)
21602167
internal typealias RawStorage = _RawNativeDictionaryStorage
2168+
@usableFromInline // FIXME(sil-serialize-all)
21612169
internal typealias TypedStorage = _TypedNativeDictionaryStorage<Key, Value>
2170+
@usableFromInline // FIXME(sil-serialize-all)
21622171
internal typealias Buffer = _NativeDictionaryBuffer<Key, Value>
2172+
@usableFromInline // FIXME(sil-serialize-all)
21632173
internal typealias Index = _NativeDictionaryIndex<Key, Value>
21642174

2175+
@usableFromInline
21652176
internal typealias SequenceElementWithoutLabels = (Key, Value)
21662177

21672178
/// See this comments on _RawNativeDictionaryStorage and its subclasses to
@@ -2406,8 +2417,10 @@ internal struct _NativeDictionaryBuffer<Key, Value> {
24062417

24072418
extension _NativeDictionaryBuffer where Key: Hashable
24082419
{
2420+
@usableFromInline
24092421
internal typealias HashTypedStorage =
24102422
_HashableTypedNativeDictionaryStorage<Key, Value>
2423+
@usableFromInline
24112424
internal typealias SequenceElement = (key: Key, value: Value)
24122425

24132426
@inlinable // FIXME(sil-serialize-all)
@@ -2657,7 +2670,9 @@ extension _NativeDictionaryBuffer where Key: Hashable
26572670
final internal class _NativeDictionaryNSEnumerator<Key, Value>
26582671
: _SwiftNativeNSEnumerator, _NSEnumerator {
26592672

2673+
@usableFromInline
26602674
internal typealias Buffer = _NativeDictionaryBuffer<Key, Value>
2675+
@usableFromInline
26612676
internal typealias Index = _NativeDictionaryIndex<Key, Value>
26622677

26632678
@inlinable // FIXME(sil-serialize-all)
@@ -2739,9 +2754,13 @@ final internal class _NativeDictionaryNSEnumerator<Key, Value>
27392754
final internal class _SwiftDeferredNSDictionary<Key: Hashable, Value>
27402755
: _SwiftNativeNSDictionary, _NSDictionaryCore {
27412756

2757+
@usableFromInline
27422758
internal typealias NativeBuffer = _NativeDictionaryBuffer<Key, Value>
2759+
@usableFromInline
27432760
internal typealias BridgedBuffer = _NativeDictionaryBuffer<AnyObject, AnyObject>
2761+
@usableFromInline
27442762
internal typealias NativeIndex = _NativeDictionaryIndex<Key, Value>
2763+
@usableFromInline
27452764
internal typealias BridgedIndex = _NativeDictionaryIndex<AnyObject, AnyObject>
27462765

27472766
@inlinable // FIXME(sil-serialize-all)
@@ -3038,11 +3057,16 @@ internal struct _CocoaDictionaryBuffer: _HashBuffer {
30383057
self.cocoaDictionary = cocoaDictionary
30393058
}
30403059

3060+
@usableFromInline
30413061
internal typealias Index = _CocoaDictionaryIndex
3062+
@usableFromInline
30423063
internal typealias SequenceElement = (AnyObject, AnyObject)
3064+
@usableFromInline
30433065
internal typealias SequenceElementWithoutLabels = (AnyObject, AnyObject)
30443066

3067+
@usableFromInline
30453068
internal typealias Key = AnyObject
3069+
@usableFromInline
30463070
internal typealias Value = AnyObject
30473071

30483072
@inlinable // FIXME(sil-serialize-all)
@@ -3161,13 +3185,19 @@ internal struct _CocoaDictionaryBuffer: _HashBuffer {
31613185
@_frozen
31623186
internal enum _VariantDictionaryBuffer<Key: Hashable, Value>: _HashBuffer {
31633187

3188+
@usableFromInline
31643189
internal typealias NativeBuffer = _NativeDictionaryBuffer<Key, Value>
3190+
@usableFromInline
31653191
internal typealias NativeIndex = _NativeDictionaryIndex<Key, Value>
31663192
#if _runtime(_ObjC)
3193+
@usableFromInline
31673194
internal typealias CocoaBuffer = _CocoaDictionaryBuffer
31683195
#endif
3196+
@usableFromInline
31693197
internal typealias SequenceElement = (key: Key, value: Value)
3198+
@usableFromInline
31703199
internal typealias SequenceElementWithoutLabels = (key: Key, value: Value)
3200+
@usableFromInline
31713201
internal typealias SelfType = _VariantDictionaryBuffer
31723202

31733203
case native(NativeBuffer)
@@ -3389,6 +3419,7 @@ internal enum _VariantDictionaryBuffer<Key: Hashable, Value>: _HashBuffer {
33893419
// _HashBuffer conformance
33903420
//
33913421

3422+
@usableFromInline
33923423
internal typealias Index = DictionaryIndex<Key, Value>
33933424

33943425
@inlinable // FIXME(sil-serialize-all)
@@ -4259,9 +4290,12 @@ extension _CocoaDictionaryIndex {
42594290
@_frozen // FIXME(sil-serialize-all)
42604291
@usableFromInline // FIXME(sil-serialize-all)
42614292
internal enum DictionaryIndexRepresentation<Key: Hashable, Value> {
4293+
@usableFromInline
42624294
typealias _Index = DictionaryIndex<Key, Value>
4295+
@usableFromInline
42634296
typealias _NativeIndex = _Index._NativeIndex
42644297
#if _runtime(_ObjC)
4298+
@usableFromInline
42654299
typealias _CocoaIndex = _Index._CocoaIndex
42664300
#endif
42674301

@@ -4292,8 +4326,10 @@ extension Dictionary {
42924326
// safe to copy the state. So, we cannot implement Index that is a value
42934327
// type for bridged NSDictionary in terms of Cocoa enumeration facilities.
42944328

4329+
@usableFromInline
42954330
internal typealias _NativeIndex = _NativeDictionaryIndex<Key, Value>
42964331
#if _runtime(_ObjC)
4332+
@usableFromInline
42974333
internal typealias _CocoaIndex = _CocoaDictionaryIndex
42984334
#endif
42994335

@@ -4423,6 +4459,7 @@ extension Dictionary.Index {
44234459
@_fixed_layout // FIXME(sil-serialize-all)
44244460
@usableFromInline
44254461
final internal class _CocoaDictionaryIterator: IteratorProtocol {
4462+
@usableFromInline
44264463
internal typealias Element = (AnyObject, AnyObject)
44274464

44284465
// Cocoa Dictionary iterator has to be a class, otherwise we cannot
@@ -4509,9 +4546,11 @@ final internal class _CocoaDictionaryIterator: IteratorProtocol {
45094546
@usableFromInline
45104547
@_frozen // FIXME(sil-serialize-all)
45114548
internal enum DictionaryIteratorRepresentation<Key: Hashable, Value> {
4549+
@usableFromInline
45124550
internal typealias _Iterator = DictionaryIterator<Key, Value>
4513-
internal typealias _NativeBuffer =
4514-
_NativeDictionaryBuffer<Key, Value>
4551+
@usableFromInline
4552+
internal typealias _NativeBuffer = _NativeDictionaryBuffer<Key, Value>
4553+
@usableFromInline
45154554
internal typealias _NativeIndex = _Iterator._NativeIndex
45164555

45174556
// For native buffer, we keep two indices to keep track of the iteration
@@ -4540,8 +4579,9 @@ public struct DictionaryIterator<Key: Hashable, Value>: IteratorProtocol {
45404579
// Index, which is multi-pass, it is suitable for implementing a
45414580
// IteratorProtocol, which is being consumed as iteration proceeds.
45424581

4543-
internal typealias _NativeBuffer =
4544-
_NativeDictionaryBuffer<Key, Value>
4582+
@usableFromInline
4583+
internal typealias _NativeBuffer = _NativeDictionaryBuffer<Key, Value>
4584+
@usableFromInline
45454585
internal typealias _NativeIndex = _NativeDictionaryIndex<Key, Value>
45464586

45474587
@usableFromInline

stdlib/public/core/ExistentialCollection.swift.gyb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@ internal class _AnyRandomAccessCollectionBox<Element>
411411
@usableFromInline
412412
internal final class _${Kind}Box<S : ${Kind}> : _Any${Kind}Box<S.Iterator.Element>
413413
{
414+
@usableFromInline
414415
internal typealias Element = S.Element
415416

416417
@inline(__always)

stdlib/public/core/FixedArray.swift.gyb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ extension _FixedArray${N} {
6060
}
6161

6262
extension _FixedArray${N} : RandomAccessCollection, MutableCollection {
63+
@usableFromInline
6364
internal typealias Index = Int
6465

6566
@inlinable // FIXME(sil-serialize-all)

stdlib/public/core/HeapBuffer.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
import SwiftShims
14-
typealias _HeapObject = SwiftShims.HeapObject
14+
15+
@usableFromInline // FIXME(sil-serialize-all)
16+
internal typealias _HeapObject = SwiftShims.HeapObject
1517

1618
@usableFromInline
1719
internal protocol _HeapBufferHeader_ {
@@ -30,13 +32,16 @@ internal struct _HeapBufferHeader<T> : _HeapBufferHeader_ {
3032
internal var value: T
3133
}
3234

35+
@usableFromInline
3336
internal typealias _HeapBuffer<Value,Element>
3437
= ManagedBufferPointer<_HeapBufferHeader<Value>, Element>
3538

39+
@usableFromInline
3640
internal typealias _HeapBufferStorage<Value,Element>
3741
= ManagedBuffer<_HeapBufferHeader<Value>, Element>
3842

3943
extension ManagedBufferPointer where Header : _HeapBufferHeader_ {
44+
@usableFromInline // FIXME(sil-serialize-all)
4045
internal typealias Value = Header.Value
4146

4247
@inlinable // FIXME(sil-serialize-all)

stdlib/public/core/KeyPath.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ public class KeyPath<Root, Value>: PartialKeyPath<Root> {
209209
}
210210

211211
// MARK: Implementation
212+
@usableFromInline // FIXME(sil-serialize-all)
212213
internal typealias Kind = KeyPathKind
213214
@inlinable // FIXME(sil-serialize-all)
214215
internal class var kind: Kind { return .readOnly }
@@ -650,6 +651,7 @@ internal final class ClassHolder<ProjectionType> {
650651

651652
/// The type of the scratch record passed to the runtime to record
652653
/// accesses to guarantee exlcusive access.
654+
@usableFromInline // FIXME(sil-serialize-all)
653655
internal typealias AccessRecord = Builtin.UnsafeValueBuffer
654656

655657
@usableFromInline // FIXME(sil-serialize-all)
@@ -1036,8 +1038,10 @@ internal struct RawKeyPathComponent {
10361038
as: UnsafeRawPointer.self)
10371039
}
10381040

1041+
@usableFromInline // FIXME(sil-serialize-all)
10391042
internal typealias ComputedArgumentLayoutFn = @convention(thin)
10401043
(_ patternArguments: UnsafeRawPointer) -> (size: Int, alignmentMask: Int)
1044+
@usableFromInline // FIXME(sil-serialize-all)
10411045
internal typealias ComputedArgumentInitializerFn = @convention(thin)
10421046
(_ patternArguments: UnsafeRawPointer,
10431047
_ instanceArguments: UnsafeMutableRawPointer) -> ()
@@ -2181,6 +2185,7 @@ internal func _getKeyPath_instantiateInline(
21812185
unsafeBitCast(keyPathClass, to: OpaquePointer.self))
21822186
}
21832187

2188+
@usableFromInline // FIXME(sil-serialize-all)
21842189
internal typealias MetadataAccessor =
21852190
@convention(c) (UnsafeRawPointer) -> UnsafeRawPointer
21862191

stdlib/public/core/ManagedBuffer.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ public struct ManagedBufferPointer<Header, Element> : Equatable {
369369
_nativeBuffer = Builtin.unsafeCastToNativeObject(buffer)
370370
}
371371

372+
@usableFromInline // FIXME(sil-serialize-all)
372373
internal typealias _My = ManagedBufferPointer
373374

374375
@inlinable // FIXME(sil-serialize-all)

stdlib/public/core/ReflectionMirror.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ internal func _getNormalizedType<T>(_: T, type: Any.Type) -> Any.Type
1818
@_silgen_name("swift_reflectionMirror_count")
1919
internal func _getChildCount<T>(_: T, type: Any.Type) -> Int
2020

21+
@usableFromInline // FIXME(sil-serialize-all)
2122
internal typealias NameFreeFunc = @convention(c) (UnsafePointer<CChar>?) -> Void
2223

2324
@usableFromInline // FIXME(sil-serialize-all)

stdlib/public/core/Sequence.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,8 @@ internal struct _PrefixSequence<Base : IteratorProtocol>
745745
internal struct _DropWhileSequence<Base : IteratorProtocol>
746746
: Sequence, IteratorProtocol {
747747

748-
typealias Element = Base.Element
748+
@usableFromInline
749+
typealias Element = Base.Element
749750

750751
@usableFromInline
751752
internal var _iterator: Base

0 commit comments

Comments
 (0)