Rust의 '절대 반환 안 함' 타입, 드디어 안정화
원제 Stabilizing Rust's Never Type
122 포인트댓글 25
Key Point
기존에 불안정한 기능이던 never 타입이 공식 지정되면서 Rust 제너릭 코드의 최적화와 타입 추론이 근본적으로 달라지기 때문이다.
핵심 요약
- Rust의 느낌표(!) 기호로 표기되는 'never 타입'이 2년 이상의 작업 끝에 8월 24일 안정화되었다.
- Never 타입은 함수가 절대 반환되지 않거나 값이 발생할 수 없는 경우를 나타내며, 컴파일러가 불필요한 코드를 최적화할 수 있게 한다.
- FromStr 트레이트처럼 실패 가능성이 없는 변환에서 Err를 never 타입으로 설정하면, 컴파일러가 오류 처리 코드를 제거할 수 있다.
- 2024 에디션부터 타입 추론의 폴백 값이 단위 타입()에서 never 타입(!)으로 변경되었는데, 이는 기술적으로 호환성을 깨뜨리는 변화다.
- 이 변경으로 타입 추론이 때로 실패해 컴파일 오류가 발생할 수 있지만, Rust의 에디션 시스템이 이전 코드와 새 코드를 동시에 지원한다.