File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments