From 0cf60b6bb8fed2cad4407fdf86a49a7eebbd62e6 Mon Sep 17 00:00:00 2001 From: Jonathan Reem Date: Mon, 8 Sep 2014 21:05:32 -0700 Subject: [PATCH] Bound Any with 'static This bound is already implicit through the AnyPrivate trait, but since it is not explicit, you still have to write Box, even though Any can only be 'static. Introducing the 'static bound here makes this bound explicit, making Box legal. --- src/libcore/any.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libcore/any.rs b/src/libcore/any.rs index fb70cb5b752..fd5007ff415 100644 --- a/src/libcore/any.rs +++ b/src/libcore/any.rs @@ -91,7 +91,7 @@ pub enum Void { } /// Every type with no non-`'static` references implements `Any`, so `Any` can /// be used as a trait object to emulate the effects dynamic typing. #[stable] -pub trait Any: AnyPrivate {} +pub trait Any: AnyPrivate + 'static {} /// An inner trait to ensure that only this module can call `get_type_id()`. pub trait AnyPrivate { @@ -132,7 +132,7 @@ pub trait AnyRefExt<'a> { } #[stable] -impl<'a> AnyRefExt<'a> for &'a Any+'a { +impl<'a> AnyRefExt<'a> for &'a Any { #[inline] #[stable] fn is(self) -> bool { @@ -181,7 +181,7 @@ pub trait AnyMutRefExt<'a> { } #[stable] -impl<'a> AnyMutRefExt<'a> for &'a mut Any+'a { +impl<'a> AnyMutRefExt<'a> for &'a mut Any { #[inline] #[unstable = "naming conventions around acquiring references may change"] fn downcast_mut(self) -> Option<&'a mut T> {