]> git.lizzy.rs Git - rust.git/commitdiff
librustc_llvm: use `#[deriving(Copy)]`
authorJorge Aparicio <japaricious@gmail.com>
Mon, 15 Dec 2014 04:09:35 +0000 (23:09 -0500)
committerJorge Aparicio <japaricious@gmail.com>
Fri, 19 Dec 2014 15:51:00 +0000 (10:51 -0500)
src/librustc_llvm/diagnostic.rs
src/librustc_llvm/lib.rs

index 04196feafd22b525be2fec61daa6c89508cfa2f8..3bf9c2d44f72184a78eef8c528c643768561ae3d 100644 (file)
@@ -17,6 +17,7 @@
 
 use {ValueRef, TwineRef, DebugLocRef, DiagnosticInfoRef};
 
+#[deriving(Copy)]
 pub enum OptimizationDiagnosticKind {
     OptimizationRemark,
     OptimizationMissed,
@@ -24,8 +25,6 @@ pub enum OptimizationDiagnosticKind {
     OptimizationFailure,
 }
 
-impl Copy for OptimizationDiagnosticKind {}
-
 impl OptimizationDiagnosticKind {
     pub fn describe(self) -> &'static str {
         match self {
@@ -69,6 +68,7 @@ unsafe fn unpack(kind: OptimizationDiagnosticKind, di: DiagnosticInfoRef)
     }
 }
 
+#[deriving(Copy)]
 pub enum Diagnostic {
     Optimization(OptimizationDiagnostic),
 
@@ -76,8 +76,6 @@ pub enum Diagnostic {
     UnknownDiagnostic(DiagnosticInfoRef),
 }
 
-impl Copy for Diagnostic {}
-
 impl Diagnostic {
     pub unsafe fn unpack(di: DiagnosticInfoRef) -> Diagnostic {
         let kind = super::LLVMGetDiagInfoKind(di);
index 8b036b2501578052ca0cf74fc54a22bf37f07fa3..3528b510ea1bbf6ae4b8c89bc8958baae2fe9b66 100644 (file)
@@ -68,7 +68,7 @@
 
 // Consts for the LLVM CallConv type, pre-cast to uint.
 
-#[deriving(PartialEq)]
+#[deriving(Copy, PartialEq)]
 pub enum CallConv {
     CCallConv = 0,
     FastCallConv = 8,
@@ -78,20 +78,18 @@ pub enum CallConv {
     X86_64_Win64 = 79,
 }
 
-impl Copy for CallConv {}
-
+#[deriving(Copy)]
 pub enum Visibility {
     LLVMDefaultVisibility = 0,
     HiddenVisibility = 1,
     ProtectedVisibility = 2,
 }
 
-impl Copy for Visibility {}
-
 // This enum omits the obsolete (and no-op) linkage types DLLImportLinkage,
 // DLLExportLinkage, GhostLinkage and LinkOnceODRAutoHideLinkage.
 // LinkerPrivateLinkage and LinkerPrivateWeakLinkage are not included either;
 // they've been removed in upstream LLVM commit r203866.
+#[deriving(Copy)]
 pub enum Linkage {
     ExternalLinkage = 0,
     AvailableExternallyLinkage = 1,
@@ -106,10 +104,8 @@ pub enum Linkage {
     CommonLinkage = 14,
 }
 
-impl Copy for Linkage {}
-
 #[repr(C)]
-#[deriving(Show)]
+#[deriving(Copy, Show)]
 pub enum DiagnosticSeverity {
     Error,
     Warning,
@@ -117,8 +113,6 @@ pub enum DiagnosticSeverity {
     Note,
 }
 
-impl Copy for DiagnosticSeverity {}
-
 bitflags! {
     flags Attribute : u32 {
         const ZExtAttribute = 1 << 0,
@@ -152,6 +146,7 @@ impl Copy for DiagnosticSeverity {}
 
 
 #[repr(u64)]
+#[deriving(Copy)]
 pub enum OtherAttribute {
     // The following are not really exposed in
     // the LLVM c api so instead to add these
@@ -172,22 +167,18 @@ pub enum OtherAttribute {
     NonNullAttribute = 1 << 44,
 }
 
-impl Copy for OtherAttribute {}
-
+#[deriving(Copy)]
 pub enum SpecialAttribute {
     DereferenceableAttribute(u64)
 }
 
-impl Copy for SpecialAttribute {}
-
 #[repr(C)]
+#[deriving(Copy)]
 pub enum AttributeSet {
     ReturnIndex = 0,
     FunctionIndex = !0
 }
 
-impl Copy for AttributeSet {}
-
 pub trait AttrHelper {
     fn apply_llfn(&self, idx: c_uint, llfn: ValueRef);
     fn apply_callsite(&self, idx: c_uint, callsite: ValueRef);
@@ -274,6 +265,7 @@ pub fn apply_callsite(&self, callsite: ValueRef) {
 }
 
 // enum for the LLVM IntPredicate type
+#[deriving(Copy)]
 pub enum IntPredicate {
     IntEQ = 32,
     IntNE = 33,
@@ -287,9 +279,8 @@ pub enum IntPredicate {
     IntSLE = 41,
 }
 
-impl Copy for IntPredicate {}
-
 // enum for the LLVM RealPredicate type
+#[deriving(Copy)]
 pub enum RealPredicate {
     RealPredicateFalse = 0,
     RealOEQ = 1,
@@ -309,11 +300,9 @@ pub enum RealPredicate {
     RealPredicateTrue = 15,
 }
 
-impl Copy for RealPredicate {}
-
 // The LLVM TypeKind type - must stay in sync with the def of
 // LLVMTypeKind in llvm/include/llvm-c/Core.h
-#[deriving(PartialEq)]
+#[deriving(Copy, PartialEq)]
 #[repr(C)]
 pub enum TypeKind {
     Void      = 0,
@@ -334,9 +323,8 @@ pub enum TypeKind {
     X86_MMX   = 15,
 }
 
-impl Copy for TypeKind {}
-
 #[repr(C)]
+#[deriving(Copy)]
 pub enum AtomicBinOp {
     AtomicXchg = 0,
     AtomicAdd  = 1,
@@ -351,9 +339,8 @@ pub enum AtomicBinOp {
     AtomicUMin = 10,
 }
 
-impl Copy for AtomicBinOp {}
-
 #[repr(C)]
+#[deriving(Copy)]
 pub enum AtomicOrdering {
     NotAtomic = 0,
     Unordered = 1,
@@ -365,17 +352,15 @@ pub enum AtomicOrdering {
     SequentiallyConsistent = 7
 }
 
-impl Copy for AtomicOrdering {}
-
 // Consts for the LLVMCodeGenFileType type (in include/llvm/c/TargetMachine.h)
 #[repr(C)]
+#[deriving(Copy)]
 pub enum FileType {
     AssemblyFileType = 0,
     ObjectFileType = 1
 }
 
-impl Copy for FileType {}
-
+#[deriving(Copy)]
 pub enum MetadataType {
     MD_dbg = 0,
     MD_tbaa = 1,
@@ -385,17 +370,14 @@ pub enum MetadataType {
     MD_tbaa_struct = 5
 }
 
-impl Copy for MetadataType {}
-
 // Inline Asm Dialect
+#[deriving(Copy)]
 pub enum AsmDialect {
     AD_ATT   = 0,
     AD_Intel = 1
 }
 
-impl Copy for AsmDialect {}
-
-#[deriving(PartialEq, Clone)]
+#[deriving(Copy, PartialEq, Clone)]
 #[repr(C)]
 pub enum CodeGenOptLevel {
     CodeGenLevelNone = 0,
@@ -404,9 +386,7 @@ pub enum CodeGenOptLevel {
     CodeGenLevelAggressive = 3,
 }
 
-impl Copy for CodeGenOptLevel {}
-
-#[deriving(PartialEq)]
+#[deriving(Copy, PartialEq)]
 #[repr(C)]
 pub enum RelocMode {
     RelocDefault = 0,
@@ -415,9 +395,8 @@ pub enum RelocMode {
     RelocDynamicNoPic = 3,
 }
 
-impl Copy for RelocMode {}
-
 #[repr(C)]
+#[deriving(Copy)]
 pub enum CodeGenModel {
     CodeModelDefault = 0,
     CodeModelJITDefault = 1,
@@ -427,9 +406,8 @@ pub enum CodeGenModel {
     CodeModelLarge = 5,
 }
 
-impl Copy for CodeGenModel {}
-
 #[repr(C)]
+#[deriving(Copy)]
 pub enum DiagnosticKind {
     DK_InlineAsm = 0,
     DK_StackSize,
@@ -441,8 +419,6 @@ pub enum DiagnosticKind {
     DK_OptimizationFailure,
 }
 
-impl Copy for DiagnosticKind {}
-
 // Opaque pointer types
 #[allow(missing_copy_implementations)]
 pub enum Module_opaque {}
@@ -537,6 +513,7 @@ pub enum DIBuilder_opaque {}
     pub type DIArray = DIDescriptor;
     pub type DISubrange = DIDescriptor;
 
+    #[deriving(Copy)]
     pub enum DIDescriptorFlags {
       FlagPrivate            = 1 << 0,
       FlagProtected          = 1 << 1,
@@ -555,8 +532,6 @@ pub enum DIDescriptorFlags {
       FlagLValueReference    = 1 << 14,
       FlagRValueReference    = 1 << 15
     }
-
-    impl Copy for DIDescriptorFlags {}
 }