]> git.lizzy.rs Git - rust.git/commitdiff
Do not warn when deriving `Copy` for raw pointers
authorAdolfo Ochagavía <aochagavia92@gmail.com>
Sun, 18 Jan 2015 14:44:41 +0000 (15:44 +0100)
committerAdolfo Ochagavía <aochagavia92@gmail.com>
Mon, 2 Feb 2015 15:28:07 +0000 (16:28 +0100)
Fixes #21272 and #21296

src/librustc/lint/builtin.rs

index e8e8d35fe072a33c160e2dd8dea309815c70deae..d69f1f8c23124f80d4d16950c3b5eb742e67e879 100644 (file)
@@ -592,7 +592,15 @@ fn check_item(&mut self, cx: &Context, item: &ast::Item) {
             return
         }
         let did = match item.node {
-            ast::ItemImpl(..) => {
+            ast::ItemImpl(_, _, _, ref t_ref_opt, _, _) => {
+                // Deriving the Copy trait does not cause a warning
+                if let &Some(ref trait_ref) = t_ref_opt {
+                    let def_id = ty::trait_ref_to_def_id(cx.tcx, trait_ref);
+                    if Some(def_id) == cx.tcx.lang_items.copy_trait() {
+                        return
+                    }
+                }
+
                 match ty::node_id_to_type(cx.tcx, item.id).sty {
                     ty::ty_enum(did, _) => did,
                     ty::ty_struct(did, _) => did,