Remove all `union` stuffs

The rustc's PR wasn't merged. Hopefully this commit can simply be reverted when it's time.
This commit is contained in:
mcarton 2016-08-30 17:26:57 +02:00
parent 01424f5622
commit 888c34ad70
No known key found for this signature in database
GPG Key ID: 5E427C794CBA45E8
5 changed files with 11 additions and 7 deletions

View File

@ -141,7 +141,7 @@ fn check_copy_clone<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, item: &Item, trait_ref
} }
match ty.sty { match ty.sty {
TypeVariants::TyUnion(..) => return, //FIXME:unions: TypeVariants::TyUnion(..) => return,
// Some types are not Clone by default but could be cloned “by hand” if necessary // Some types are not Clone by default but could be cloned “by hand” if necessary
TypeVariants::TyEnum(def, substs) | TypeVariants::TyEnum(def, substs) |

View File

@ -209,8 +209,8 @@ fn has_is_empty(cx: &LateContext, expr: &Expr) -> bool {
} }
ty::TyProjection(_) => ty.ty_to_def_id().map_or(false, |id| has_is_empty_impl(cx, &id)), ty::TyProjection(_) => ty.ty_to_def_id().map_or(false, |id| has_is_empty_impl(cx, &id)),
ty::TyEnum(id, _) | ty::TyEnum(id, _) |
ty::TyStruct(id, _) | ty::TyStruct(id, _) /*FIXME:unions: |
ty::TyUnion(id, _) => has_is_empty_impl(cx, &id.did), ty::TyUnion(id, _)*/ => has_is_empty_impl(cx, &id.did),
ty::TyArray(..) | ty::TyStr => true, ty::TyArray(..) | ty::TyStr => true,
_ => false, _ => false,
} }

View File

@ -123,7 +123,7 @@ impl LateLintPass for MissingDoc {
hir::ItemStruct(..) => "a struct", hir::ItemStruct(..) => "a struct",
hir::ItemTrait(..) => "a trait", hir::ItemTrait(..) => "a trait",
hir::ItemTy(..) => "a type alias", hir::ItemTy(..) => "a type alias",
hir::ItemUnion(..) => "a union", //FIXME:unions: hir::ItemUnion(..) => "a union",
hir::ItemDefaultImpl(..) | hir::ItemDefaultImpl(..) |
hir::ItemExternCrate(..) | hir::ItemExternCrate(..) |
hir::ItemForeignMod(..) | hir::ItemForeignMod(..) |

View File

@ -1,7 +1,7 @@
#![feature(plugin)] #![feature(plugin)]
#![plugin(clippy)] #![plugin(clippy)]
#![feature(untagged_unions)] //FIXME:unions: #![feature(untagged_unions)]
#![deny(warnings)] #![deny(warnings)]
#![allow(dead_code)] #![allow(dead_code)]
@ -47,6 +47,7 @@ impl Clone for Qux {
fn clone(&self) -> Self { Qux } fn clone(&self) -> Self { Qux }
} }
/* FIXME:unions
// looks like unions don't support deriving Clone for now // looks like unions don't support deriving Clone for now
#[derive(Copy)] #[derive(Copy)]
union Union { union Union {
@ -60,6 +61,7 @@ impl Clone for Union {
} }
} }
} }
*/
// See #666 // See #666
#[derive(Copy)] #[derive(Copy)]

View File

@ -4,7 +4,7 @@
#![deny(no_effect, unnecessary_operation)] #![deny(no_effect, unnecessary_operation)]
#![allow(dead_code)] #![allow(dead_code)]
#![allow(path_statements)] #![allow(path_statements)]
#![feature(untagged_unions)] //FIXME:unions #![feature(untagged_unions)]
struct Unit; struct Unit;
struct Tuple(i32); struct Tuple(i32);
@ -16,10 +16,12 @@ enum Enum {
Struct { field: i32 }, Struct { field: i32 },
} }
/*FIXME:unions:
union Union { union Union {
a: u8, a: u8,
b: f64, b: f64,
} }
*/
fn get_number() -> i32 { 0 } fn get_number() -> i32 { 0 }
fn get_struct() -> Struct { Struct { field: 0 } } fn get_struct() -> Struct { Struct { field: 0 } }
@ -36,7 +38,7 @@ fn main() {
Tuple(0); //~ERROR statement with no effect Tuple(0); //~ERROR statement with no effect
Struct { field: 0 }; //~ERROR statement with no effect Struct { field: 0 }; //~ERROR statement with no effect
Struct { ..s }; //~ERROR statement with no effect Struct { ..s }; //~ERROR statement with no effect
Union { a: 0 }; //~ERROR statement with no effect //FIXME:unions: Union { a: 0 }; // /**FIXME*~***/ ERROR statement with no effect
Enum::Tuple(0); //~ERROR statement with no effect Enum::Tuple(0); //~ERROR statement with no effect
Enum::Struct { field: 0 }; //~ERROR statement with no effect Enum::Struct { field: 0 }; //~ERROR statement with no effect
5 + 6; //~ERROR statement with no effect 5 + 6; //~ERROR statement with no effect