반환 참조가 x·y·self 중 무엇을 가리키는지 정한다.
라이프타임은 수명을 늘리지 않고 참조 관계를 제한한다
'a는 시간값이 아니다. 반환 참조가 어느 입력에서 빌렸는지 서명에 연결해 borrow checker가 호출 지점의 실제 범위를 검증하게 한다.
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str'a는 두 입력이 함께 유효한 더 짧은 겹침 범위가 된다.
반환 참조의 모든 사용이 그 겹침 안에 있으면 컴파일된다.
생략된 출력 라이프타임은 유일한 입력에 연결된다.
&self·&mut self가 있으면 출력은 self에 연결된다.
Struct<'a> 인스턴스는 보관한 참조보다 오래 살 수 없다.
E0106출력 출처 모호실제 반환 출처와 입력·출력의 관계를 명시한다.
E0597값이 먼저 종료소유자의 범위를 늘리거나 참조 사용 범위를 줄인다.
E0515지역값 참조 반환표기로 고칠 수 없다. String 같은 소유값을 반환한다.
검증 기준: 라이프타임 오류에서 'static을 먼저 붙이지 않는다. 출처 → 소유자 종료 → 마지막 사용 순서로 범위를 그리면 ‘관계 모호’와 ‘실제 값이 짧음’을 분리할 수 있다.