你好!你知道 语言团队 现在有定期设计会议吗?我们利用这些会议深入探讨活跃项目组的产出。会议结束后,我们通常会将会议记录发布到 YouTube 以及一些 会议记录到语言团队仓库 中。我想快速写一篇更新,列出我们最近举行的一些会议以及我们即将举行的一些会议。
这篇博文是关于我们于 2020 年 7 月 29 日举行的一次会议。我们讨论了尝试对类型别名强制执行“良好结构性”规则的想法,多年来这一想法时常被提及。
背景是编译器目前的规则将类型别名展开,就像它们是一种宏一样,这意味着我们最终不会对它们强制执行许多类型的规则。
例如,下面的类型别名定义是合法的,尽管使用它会出错
// This alias, perhaps, should err, as `Vec<u32>: Display`
// does not hold:
type MyAlias = ;
更多信息,请查看 会议记录 或 观看录像。我们涵盖了许多出错的例子,以及我们可能想要达到的各种可能的“最终状态”(例如,有一种观点认为上面的例子最终应该被接受,也许附带警告)。
会议期间的结论是,我们目前不会在类型别名上投入大量精力,特别是不会针对任何与 Edition 相关的迁移和硬性错误,但我们会接受那些为使用时总是出错的类型别名定义引入警告的 PR。(与会议中产生的任何结论一样,如果我们遇到改变想法的新证据,它可能会被修改。)