]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc/lint/builtin.rs
rollup merge of #21800: brson/unused_features
[rust.git] / src / librustc / lint / builtin.rs
index 904c9c3adb567fac1362f3ce88790e50c3882daf..1722261f4f2e8d5f4ced8405794b537bc0a7b55a 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,
@@ -2006,7 +2014,7 @@ fn id_refers_to_this_method<'tcx>(tcx: &ty::ctxt<'tcx>,
 
 declare_lint! {
     pub UNUSED_FEATURES,
-    Deny,
+    Warn,
     "unused or unknown features found in crate-level #[feature] directives"
 }