开发者生态
morning
Rust 借用检查器中发现 11 年前的不健全错误
摘要
【HN用户评论摘要】 I don't understand how something like this could take so long to be discovered. Pretty crazy stuff. Worked on a variance-related lint once and the scary part is how rarely anyone writes dow...
the
for
String
how
something
like
this
crazy
variance
and
2026-10-13
1 阅读
约1分钟阅读
formerly_proven
字号:
【HN用户评论摘要】
我不明白这样的事情怎么需要这么长时间才被发现。 相当疯狂的东西。
曾经研究过与方差相关的 lint,可怕的是很少有人手工写下方差,所以那里的 bug 十年来都没有经过测试。
问题的核心:struct Q(Option);
impl 删除 Q {
fn drop(&mut self) {
// 这里的代码可以访问非'static &String
// 但假设它是一个 &'static 字符串
}
}
fn 主() {
让 l = String::new();
让 mut q = Q(无);
q.0 = 一些(&l);
}
我想知道用于安全关键用途的认证编译器是否也存在同样的问题。
我勒个去。这不是我期望通过这样的标题找到的深奥、疯狂、不切实际的星座。这个最小的示例非常简单,并且绝对是您在正常代码中很容易遇到的东西。
某处有这些的集合。 Rust 更好,但它永远不会完美,10 点新闻
原始链接:https://github.com/rust-lang/rust/issues/164250
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱