本周,lang 团队举行了十月计划会议(会议纪要)。我们每月第一个星期三举行这些会议。
计划会议用于
- 检查我们的活跃倡议的状态
- 规划本月剩余时间的方案会议
每次会议结束后,我们会发布更新(如这篇!),其中包含注释和会议公告。
活跃倡议的更新
以下是本月提交的更新。请注意,许多较新的倡议都有专门的存储库,其中包含设计过程的其他副产品(例如,评估文档、开放的设计问题等)。请查看!
- 异步基础更新:
- Impl trait 倡议更新
- 它是什么?模块和 impl 级别的
type Foo = impl Trait
。 - oli-obk 已经完成了推理引擎的重写,以更好地匹配 RFC 中提出的设计,并且正在缓慢地合并中
- 我们正在编写解释器和稳定文档以说明“类型别名 impl trait”。
- 我们希望添加语法来为函数类型命名,这将解锁“trait 中的 impl trait”
- 它是什么?模块和 impl 级别的
- Dyn 上转型倡议更新
- 它是什么?如果
trait Foo: Bar
,则能够将dyn Foo
转换为dyn Bar
- 取得了良好进展,需要解决一个健全性问题,然后就可以合并了。
- 它是什么?如果
- 泛型关联类型倡议更新
- 它是什么?能够在 trait 中使用泛型参数的关联类型,例如
type Foo<'me>
。 - 通过决定一条保守的(即使不是最大人体工程学的)路径,解决了 where 子句默认值的问题。
- 在朝着我们可以稳定的方向不断取得进展。目的是从一些已知的人体工程学缺陷开始,并在此基础上构建。
- 它是什么?能够在 trait 中使用泛型参数的关联类型,例如
- Let else 更新
- 它是什么?将
let
通用化,允许你匹配某些东西,并在匹配失败时 panic、返回等let Ok(x) = something else panic!()
- 在 nightly 版本上可用,可能已完成功能
- 它是什么?将
- Deref 模式更新
- 它是什么?在匹配的上下文中应用 Deref impls,例如
match rc { Some(x) => ..., None => ... }
- 决定构建一个没有用于 deref 的显式语法并且针对“已知安全” std 类型的原型。
- 它是什么?在匹配的上下文中应用 Deref impls,例如
- Never 类型稳定更新
- 它是什么?never 类型
!
1 - 我们已经实现了一个改进的(如果很复杂)分析,使我们能够在当前行为(回退到
()
)和新行为(回退到!
)之间进行选择,而不会破坏重要的现有代码。希望继续稳定化,并使用警告、版本或其他工具缓慢改进和简化规则。
- 它是什么?never 类型
除了以上报告,你还可以在 会议纪要中找到更详细的讨论。
即将举行的方案会议
我们计划了以下方案会议
- 10 月 13 日:GAT 和类型别名中 where 子句的语法 (lang-team#120)
- 10 月 20 日:dyn 上转型的安全性考虑 (lang-team#119)
- 10 月 27 日:禁止从 drop impls 中展开 (lang-team#97)
方案会议的预期
- 会议文档必须在周二的分类会议之前准备好,并发布到跟踪问题中。
- 如果届时没有发出,会议将被取消。这会给人们 24 小时的通知。
- 没有要求人们在会议之前阅读文档。会议将从对文档的总结开始。
- 但是,没有规则反对提前阅读文档并提供有关如何改进它的反馈或建议。
-
never 类型之所以被称为 never,是因为它永远不会稳定。哈!我笑死我了。 --nikomatsakis ↩