Skip to content

Commit d03d6d8

Browse files
committed
manualownership: add coverage for rebinding lets
1 parent c2dfbf3 commit d03d6d8

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

test/SIL/manual_ownership.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,24 @@ public func basic_return3() -> Triangle {
5656
return Triangle()
5757
}
5858

59+
// FIXME: we need copy propagation in -Onone to eliminate all these copies
60+
@_manualOwnership
61+
func reassign_with_lets() -> Triangle {
62+
let x = Triangle()
63+
let y = x // expected-error {{explicit 'copy' required here}}
64+
let z = y // expected-error {{explicit 'copy' required here}}
65+
return z // expected-error {{explicit 'copy' required here}}
66+
}
67+
68+
// FIXME: we need copy propagation in -Onone to eliminate all but the copies for returning
69+
@_manualOwnership
70+
func renamed_return(_ cond: Bool, _ a: Triangle) -> Triangle {
71+
let b = a // expected-error {{explicit 'copy' required here}}
72+
let c = b // expected-error {{explicit 'copy' required here}}
73+
if cond { return b } // expected-error {{explicit 'copy' required here}}
74+
return c // expected-error {{explicit 'copy' required here}}
75+
}
76+
5977
/// MARK: method calls
6078

6179
@_manualOwnership

0 commit comments

Comments
 (0)