Skip to content

Commit 96e2a4c

Browse files
authored
Merge pull request #4218 from rintaro/swift3-withunsafepointer-diag
[swift-3.0-branch] stdlib: Add unavailable declaration for 'withUnsafePointers' and 'readLine'
2 parents 82ee98c + 70a6f45 commit 96e2a4c

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

stdlib/public/core/InputStream.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,8 @@ public func readLine(strippingNewline: Bool = true) -> String? {
7171
_swift_stdlib_free(linePtr)
7272
return result
7373
}
74+
75+
@available(*, unavailable, renamed: "readLine(strippingNewline:)")
76+
public func readLine(stripNewline: Bool = true) -> String? {
77+
Builtin.unreachable()
78+
}

stdlib/public/core/LifetimeManager.swift

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,50 @@ public func withUnsafePointer<T, Result>(
9595
{
9696
Builtin.unreachable()
9797
}
98+
99+
@available(*, unavailable, message:"use nested withUnsafeMutablePointer(to:_:) instead")
100+
public func withUnsafeMutablePointers<A0, A1, Result>(
101+
_ arg0: inout A0,
102+
_ arg1: inout A1,
103+
_ body: @noescape (
104+
UnsafeMutablePointer<A0>, UnsafeMutablePointer<A1>) throws -> Result
105+
) rethrows -> Result {
106+
Builtin.unreachable()
107+
}
108+
109+
@available(*, unavailable, message:"use nested withUnsafeMutablePointer(to:_:) instead")
110+
public func withUnsafeMutablePointers<A0, A1, A2, Result>(
111+
_ arg0: inout A0,
112+
_ arg1: inout A1,
113+
_ arg2: inout A2,
114+
_ body: @noescape (
115+
UnsafeMutablePointer<A0>,
116+
UnsafeMutablePointer<A1>,
117+
UnsafeMutablePointer<A2>
118+
) throws -> Result
119+
) rethrows -> Result {
120+
Builtin.unreachable()
121+
}
122+
123+
@available(*, unavailable, message:"use nested withUnsafePointer(to:_:) instead")
124+
public func withUnsafePointers<A0, A1, Result>(
125+
_ arg0: inout A0,
126+
_ arg1: inout A1,
127+
_ body: (UnsafePointer<A0>, UnsafePointer<A1>) throws -> Result
128+
) rethrows -> Result {
129+
Builtin.unreachable()
130+
}
131+
132+
@available(*, unavailable, message:"use nested withUnsafePointer(to:_:) instead")
133+
public func withUnsafePointers<A0, A1, A2, Result>(
134+
_ arg0: inout A0,
135+
_ arg1: inout A1,
136+
_ arg2: inout A2,
137+
_ body: (
138+
UnsafePointer<A0>,
139+
UnsafePointer<A1>,
140+
UnsafePointer<A2>
141+
) throws -> Result
142+
) rethrows -> Result {
143+
Builtin.unreachable()
144+
}

test/1_stdlib/Renames.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,11 @@ func _Index() {
240240
func fn3<T : RandomAccessIndexType>(_: T) {} // expected-error {{'RandomAccessIndexType' has been renamed to 'Strideable'}} {{16-37=Strideable}} {{none}}
241241
}
242242

243+
func _InputStream() {
244+
_ = readLine(stripNewline: true) // expected-error {{'readLine(stripNewline:)' has been renamed to 'readLine(strippingNewline:)'}} {{7-15=readLine}} {{16-28=strippingNewline}} {{none}}
245+
_ = readLine() // ok
246+
}
247+
243248
func _IntegerArithmetic() {
244249
func fn1<T : IntegerArithmeticType>(_: T) {} // expected-error {{'IntegerArithmeticType' has been renamed to 'IntegerArithmetic'}} {{16-37=IntegerArithmetic}} {{none}}
245250
func fn2<T : SignedNumberType>(_: T) {} // expected-error {{'SignedNumberType' has been renamed to 'SignedNumber'}} {{16-32=SignedNumber}} {{none}}
@@ -266,6 +271,16 @@ func _LazySequence<S : LazySequenceProtocol>(s: S) {
266271
_ = s.array // expected-error {{'array' is unavailable: Please use Array initializer instead.}} {{none}}
267272
}
268273

274+
func _LifetimeManager<T>(x: T) {
275+
var x = x
276+
_ = withUnsafeMutablePointer(&x) { _ in } // expected-error {{'withUnsafeMutablePointer' has been renamed to 'withUnsafeMutablePointer(to:_:)'}} {{7-31=withUnsafeMutablePointer}} {{32-32=to: }} {{none}}
277+
_ = withUnsafeMutablePointers(&x, &x) { _, _ in } // expected-error {{'withUnsafeMutablePointers' is unavailable: use nested withUnsafeMutablePointer(to:_:) instead}} {{none}}
278+
_ = withUnsafeMutablePointers(&x, &x, &x) { _, _, _ in } // expected-error {{'withUnsafeMutablePointers' is unavailable: use nested withUnsafeMutablePointer(to:_:) instead}} {{none}}
279+
_ = withUnsafePointer(&x) { _ in } // expected-error {{'withUnsafePointer' has been renamed to 'withUnsafePointer(to:_:)'}} {7-24=withUnsafePointer}} {{25-25=to: }} {{none}}
280+
_ = withUnsafePointers(&x, &x) { _, _ in } // expected-error {{'withUnsafePointers' is unavailable: use nested withUnsafePointer(to:_:) instead}} {{none}}
281+
_ = withUnsafePointers(&x, &x, &x) { _, _, _ in } // expected-error {{'withUnsafePointers' is unavailable: use nested withUnsafePointer(to:_:) instead}} {{none}}
282+
}
283+
269284
func _ManagedBuffer<V, E>(x: ManagedBufferPointer<V, E>) {
270285
_ = x.allocatedElementCount // expected-error {{'allocatedElementCount' has been renamed to 'capacity'}} {{9-30=capacity}} {{none}}
271286
}

0 commit comments

Comments
 (0)