@@ -741,7 +741,7 @@ impl Primitive {
741741///
742742/// This is intended specifically to mirror LLVM’s `!range` metadata,
743743/// semantics.
744- #[ derive( Clone , PartialEq , Eq , Hash ) ]
744+ #[ derive( Clone , Copy , PartialEq , Eq , Hash ) ]
745745#[ derive( HashStable_Generic ) ]
746746pub struct WrappingRange {
747747 pub start : u128 ,
@@ -797,7 +797,7 @@ impl fmt::Debug for WrappingRange {
797797}
798798
799799/// Information about one scalar component of a Rust type.
800- #[ derive( Clone , PartialEq , Eq , Hash , Debug ) ]
800+ #[ derive( Clone , Copy , PartialEq , Eq , Hash , Debug ) ]
801801#[ derive( HashStable_Generic ) ]
802802pub struct Scalar {
803803 pub value : Primitive ,
@@ -1070,7 +1070,7 @@ impl Niche {
10701070 }
10711071
10721072 pub fn available < C : HasDataLayout > ( & self , cx : & C ) -> u128 {
1073- let Scalar { value, valid_range : ref v } = self . scalar ;
1073+ let Scalar { value, valid_range : v } = self . scalar ;
10741074 let bits = value. size ( cx) . bits ( ) ;
10751075 assert ! ( bits <= 128 ) ;
10761076 let max_value = !0u128 >> ( 128 - bits) ;
@@ -1083,7 +1083,7 @@ impl Niche {
10831083 pub fn reserve < C : HasDataLayout > ( & self , cx : & C , count : u128 ) -> Option < ( u128 , Scalar ) > {
10841084 assert ! ( count > 0 ) ;
10851085
1086- let Scalar { value, valid_range : v } = self . scalar . clone ( ) ;
1086+ let Scalar { value, valid_range : v } = self . scalar ;
10871087 let bits = value. size ( cx) . bits ( ) ;
10881088 assert ! ( bits <= 128 ) ;
10891089 let max_value = !0u128 >> ( 128 - bits) ;
@@ -1137,7 +1137,7 @@ pub struct Layout {
11371137
11381138impl Layout {
11391139 pub fn scalar < C : HasDataLayout > ( cx : & C , scalar : Scalar ) -> Self {
1140- let largest_niche = Niche :: from_scalar ( cx, Size :: ZERO , scalar. clone ( ) ) ;
1140+ let largest_niche = Niche :: from_scalar ( cx, Size :: ZERO , scalar) ;
11411141 let size = scalar. value . size ( cx) ;
11421142 let align = scalar. value . align ( cx) ;
11431143 Layout {
0 commit comments