diff --git a/src/librustc/middle/trans/cabi_x86_64.rs b/src/librustc/middle/trans/cabi_x86_64.rs index d9819ee729456..84116e71f0da9 100644 --- a/src/librustc/middle/trans/cabi_x86_64.rs +++ b/src/librustc/middle/trans/cabi_x86_64.rs @@ -61,12 +61,12 @@ impl RegClass { } } -trait ClassList { +trait ClassList for Sized? { fn is_pass_byval(&self) -> bool; fn is_ret_bysret(&self) -> bool; } -impl<'a> ClassList for &'a [RegClass] { +impl ClassList for [RegClass] { fn is_pass_byval(&self) -> bool { if self.len() == 0 { return false; } diff --git a/src/librustc/middle/trans/llrepr.rs b/src/librustc/middle/trans/llrepr.rs index 5aec1cfbf268a..28e97e0f658b1 100644 --- a/src/librustc/middle/trans/llrepr.rs +++ b/src/librustc/middle/trans/llrepr.rs @@ -12,11 +12,11 @@ use middle::trans::context::CrateContext; use middle::trans::type_::Type; use llvm::ValueRef; -pub trait LlvmRepr { +pub trait LlvmRepr for Sized? { fn llrepr(&self, ccx: &CrateContext) -> String; } -impl<'a, T:LlvmRepr> LlvmRepr for &'a [T] { +impl LlvmRepr for [T] { fn llrepr(&self, ccx: &CrateContext) -> String { let reprs: Vec = self.iter().map(|t| t.llrepr(ccx)).collect(); format!("[{}]", reprs.connect(",")) diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index bcd70510edd36..e6015bfc074ec 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -37,7 +37,7 @@ use syntax::{ast, ast_util}; use syntax::owned_slice::OwnedSlice; /// Produces a string suitable for debugging output. -pub trait Repr { +pub trait Repr for Sized? { fn repr(&self, tcx: &ctxt) -> String; } @@ -578,9 +578,9 @@ impl Repr for () { } } -impl<'a,T:Repr> Repr for &'a T { +impl<'a, Sized? T:Repr> Repr for &'a T { fn repr(&self, tcx: &ctxt) -> String { - (&**self).repr(tcx) + Repr::repr(*self, tcx) } } @@ -600,9 +600,9 @@ fn repr_vec(tcx: &ctxt, v: &[T]) -> String { vec_map_to_string(v, |t| t.repr(tcx)) } -impl<'a, T:Repr> Repr for &'a [T] { +impl Repr for [T] { fn repr(&self, tcx: &ctxt) -> String { - repr_vec(tcx, *self) + repr_vec(tcx, self) } }