라이프타임은 수명을 늘리지 않고 참조 관계를 제한한다

'a는 시간값이 아니다. 반환 참조가 어느 입력에서 빌렸는지 서명에 연결해 borrow checker가 호출 지점의 실제 범위를 검증하게 한다.

01 · ORIGIN출처 식별

반환 참조가 x·y·self 중 무엇을 가리키는지 정한다.

02 · LINK관계 표기fn longest<'a>(x: &'a str, y: &'a str) -> &'a str
03 · SCOPE호출 범위 대입

'a는 두 입력이 함께 유효한 더 짧은 겹침 범위가 된다.

04 · CHECK사용 지점 검증

반환 참조의 모든 사용이 그 겹침 안에 있으면 컴파일된다.

입력 참조 1개

생략된 출력 라이프타임은 유일한 입력에 연결된다.

메서드 receiver

&self·&mut self가 있으면 출력은 self에 연결된다.

참조 필드

Struct<'a> 인스턴스는 보관한 참조보다 오래 살 수 없다.

E0106출력 출처 모호

실제 반환 출처와 입력·출력의 관계를 명시한다.

E0597값이 먼저 종료

소유자의 범위를 늘리거나 참조 사용 범위를 줄인다.

E0515지역값 참조 반환

표기로 고칠 수 없다. String 같은 소유값을 반환한다.

검증 기준: 라이프타임 오류에서 'static을 먼저 붙이지 않는다. 출처 → 소유자 종료 → 마지막 사용 순서로 범위를 그리면 ‘관계 모호’와 ‘실제 값이 짧음’을 분리할 수 있다.