Skip to content

Commit 12c5ca8

Browse files
committed
Update LifetimeDependenceInfo on methods with self
1 parent 50821f6 commit 12c5ca8

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

lib/Sema/TypeCheckDecl.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2915,6 +2915,9 @@ InterfaceTypeRequest::evaluate(Evaluator &eval, ValueDecl *D) const {
29152915
auto selfParam = computeSelfParam(AFD);
29162916
AnyFunctionType::ExtInfoBuilder selfInfoBuilder;
29172917
maybeAddParameterIsolation(selfInfoBuilder, {selfParam});
2918+
if (lifetimeDependenceInfo.has_value())
2919+
selfInfoBuilder =
2920+
selfInfoBuilder.withLifetimeDependenceInfo(*lifetimeDependenceInfo);
29182921
// FIXME: Verify ExtInfo state is correct, not working by accident.
29192922
auto selfInfo = selfInfoBuilder.build();
29202923
if (sig) {

test/SIL/explicit_lifetime_dependence_specifiers.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,12 @@ func use(_ x: borrowing BufferView) {}
5858

5959
struct Wrapper : ~Escapable {
6060
let view: BufferView
61+
// CHECK-LABEL: sil hidden @$s39explicit_lifetime_dependence_specifiers7WrapperV8getView1AA10BufferViewVyF : $@convention(method) (@guaranteed Wrapper) -> _borrow(0) @owned BufferView {
6162
borrowing func getView1() -> _borrow(self) BufferView {
6263
return view
6364
}
6465

66+
// CHECK-LABEL: sil hidden @$s39explicit_lifetime_dependence_specifiers7WrapperV8getView2AA10BufferViewVyF : $@convention(method) (@owned Wrapper) -> _inherit(0) @owned BufferView {
6567
consuming func getView2() -> _consume(self) BufferView {
6668
return view
6769
}

0 commit comments

Comments
 (0)