summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2022-12-12 18:29:33 +0000
committerJosh Stone <jistone@redhat.com>2023-02-06 14:40:16 -0800
commit3fe64ebbce21e79adb64099984e96dfb79bdd0f9 (patch)
treef07ff501eab57e1611893aa86dd609d59e05ffc6
parent3416a0fc5419caf411d8eaca89d923b7d5b4c0ff (diff)
downloadrust-3fe64ebbce21e79adb64099984e96dfb79bdd0f9.tar.gz
🚨 fix unsoundness in bootstrap cache code
-rw-r--r--src/bootstrap/cache.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/bootstrap/cache.rs b/src/bootstrap/cache.rs
index be5c9bb0788..05f25af68ea 100644
--- a/src/bootstrap/cache.rs
+++ b/src/bootstrap/cache.rs
@@ -89,16 +89,16 @@ impl<T: Internable + Hash> Hash for Interned<T> {
impl<T: Internable + Deref> Deref for Interned<T> {
type Target = T::Target;
- fn deref(&self) -> &'static Self::Target {
+ fn deref(&self) -> &Self::Target {
let l = T::intern_cache().lock().unwrap();
- unsafe { mem::transmute::<&Self::Target, &'static Self::Target>(l.get(*self)) }
+ unsafe { mem::transmute::<&Self::Target, &Self::Target>(l.get(*self)) }
}
}
impl<T: Internable + AsRef<U>, U: ?Sized> AsRef<U> for Interned<T> {
- fn as_ref(&self) -> &'static U {
+ fn as_ref(&self) -> &U {
let l = T::intern_cache().lock().unwrap();
- unsafe { mem::transmute::<&U, &'static U>(l.get(*self).as_ref()) }
+ unsafe { mem::transmute::<&U, &U>(l.get(*self).as_ref()) }
}
}