From eb71976137ba1528c0cfca2fdbdb13dcc712809c Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Mon, 1 Dec 2014 16:34:57 -0500 Subject: [PATCH] librustc: convert `TypeContents` binops to by value --- src/librustc/middle/ty.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 8e99045cffb..2f694b382cc 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -2859,24 +2859,51 @@ impl TypeContents { } } +// NOTE(stage0): Remove impl after a snapshot +#[cfg(stage0)] impl ops::BitOr for TypeContents { fn bitor(&self, other: &TypeContents) -> TypeContents { TypeContents {bits: self.bits | other.bits} } } +#[cfg(not(stage0))] // NOTE(stage0): Remove cfg after a snapshot +impl ops::BitOr for TypeContents { + fn bitor(self, other: TypeContents) -> TypeContents { + TypeContents {bits: self.bits | other.bits} + } +} + +// NOTE(stage0): Remove impl after a snapshot +#[cfg(stage0)] impl ops::BitAnd for TypeContents { fn bitand(&self, other: &TypeContents) -> TypeContents { TypeContents {bits: self.bits & other.bits} } } +#[cfg(not(stage0))] // NOTE(stage0): Remove cfg after a snapshot +impl ops::BitAnd for TypeContents { + fn bitand(self, other: TypeContents) -> TypeContents { + TypeContents {bits: self.bits & other.bits} + } +} + +// NOTE(stage0): Remove impl after a snapshot +#[cfg(stage0)] impl ops::Sub for TypeContents { fn sub(&self, other: &TypeContents) -> TypeContents { TypeContents {bits: self.bits & !other.bits} } } +#[cfg(not(stage0))] // NOTE(stage0): Remove cfg after a snapshot +impl ops::Sub for TypeContents { + fn sub(self, other: TypeContents) -> TypeContents { + TypeContents {bits: self.bits & !other.bits} + } +} + impl fmt::Show for TypeContents { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "TypeContents({:b})", self.bits)