Stabilizing Rust's Never Type
21 days ago
- Rust 的 never 类型 (!) 标记从不返回的函数,用于无误转换和类型推断。
- 经过 waffle 两年的工作后稳定下来,涉及对回退类型的破坏性变更(在 2024 版中从 () 变为 !)。
- never 类型以前是不稳定的,标准库中使用 Infallible 类型作为变通方法。
- 破坏性变更需要同时更新:将 Infallible 设为 ! 的类型别名,并更改回退类型。
- Crater 分析发现 3300 个 crate 受到影响,但只有 7 个完全损坏;大多数问题通过反向移植补丁得以修复。
- 通过警告、版本系统和社区协作,保持了向后兼容性。
- 用户可以停留在较旧的 Rust 版本、更新依赖项或添加显式类型注释来修复损坏的代码。