Rust never 타입을 안정화함

1 month ago 21

Lobste.rs 의견들
  • Rust는 crates.io의 크레이트를 깨뜨리지 않는 데 매우 높은 가치를 두며, 보통은 서로 다른 Rust 에디션을 함께 쓸 수 있어 호환성 유지가 쉬워짐
    하지만 에디션으로 해결할 수 없는 근본적인 변경도 있고, Rust가 성숙하면서 이런 변경 중 상당수는 어렵거나 불가능해졌음
    never 지원에서 가장 인상적인 부분은 하위 호환성 목표를 지키며 호환성 문제를 절묘하게 해결하고, 그 해결책에 모두가 동의하도록 만든 작업임
    • 구체적으로 어떤 문제들을 해결했는지 예를 들어줄 수 있는지 궁금함
    • 연결된 버그에 모든 에디션의 never 타입 폴백을 !로 바꾸며 호환성을 깨는 변경이라고 적혀 있어 놀랐음
      즉, 에디션 체계가 있어도 기존 코드가 깨질 수 있다는 뜻으로 보임
      숨겨진 댓글까지 펼쳐 읽어보니 이 방식을 택한 이유가 더 논의돼 있었고, 변경으로 깨질 코드를 감지하는 경고도 앞서 도입한 듯함
  • 컴파일러의 검사를 받으며 아무것도 반환하지 않을 수 있게 되길 기대함
    • 원한다면 이미 빈 열거형을 반환하지 않는 방식도 쓸 수 있음

Read Entire Article