Skip to content

Commit 52ea0d0

Browse files
authored
[cxx-interop] Make some CxxSequence methods inlinable
1 parent e51f1ff commit 52ea0d0

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

stdlib/public/Cxx/CxxSequence.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,21 @@ public class CxxIterator<T>: IteratorProtocol where T: CxxSequence {
8585
// which would result in dangling pointers for some C++ sequence types.
8686

8787
public typealias Element = T.RawIterator.Pointee
88-
private var sequence: T
89-
private var rawIterator: T.RawIterator
90-
private let endIterator: T.RawIterator
88+
89+
@usableFromInline
90+
internal var sequence: T
91+
@usableFromInline
92+
internal var rawIterator: T.RawIterator
93+
@usableFromInline
94+
internal let endIterator: T.RawIterator
9195

9296
public init(sequence: T) {
9397
self.sequence = sequence
9498
self.rawIterator = self.sequence.__beginUnsafe()
9599
self.endIterator = self.sequence.__endUnsafe()
96100
}
97101

102+
@inlinable
98103
public func next() -> Element? {
99104
if self.rawIterator == self.endIterator {
100105
return nil
@@ -106,6 +111,7 @@ public class CxxIterator<T>: IteratorProtocol where T: CxxSequence {
106111
}
107112

108113
extension CxxSequence {
114+
@inlinable
109115
public func makeIterator() -> CxxIterator<Self> {
110116
return CxxIterator(sequence: self)
111117
}

0 commit comments

Comments
 (0)