]> git.lizzy.rs Git - rust.git/commitdiff
Don't trigger missing_const_for_fn in external macros
authorPhilipp Hansch <dev@phansch.net>
Mon, 4 Mar 2019 21:56:33 +0000 (22:56 +0100)
committerPhilipp Hansch <dev@phansch.net>
Mon, 4 Mar 2019 21:56:33 +0000 (22:56 +0100)
As reported in #3841. Only fixes the part where it triggers on the
`derive`.

clippy_lints/src/missing_const_for_fn.rs
tests/ui/missing_const_for_fn/cant_be_const.rs

index 00a3de0632f8dd5da059ef181bd700c4e61f6764..bd9e8ce8b8df1612f2e2e5e121552dc913c91c3c 100644 (file)
@@ -2,7 +2,7 @@
 use rustc::hir;
 use rustc::hir::intravisit::FnKind;
 use rustc::hir::{Body, Constness, FnDecl, HirId};
-use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
+use rustc::lint::{in_external_macro, LateContext, LateLintPass, LintArray, LintPass};
 use rustc::{declare_tool_lint, lint_array};
 use rustc_mir::transform::qualify_min_const_fn::is_min_const_fn;
 use syntax_pos::Span;
@@ -82,7 +82,7 @@ fn check_fn(
     ) {
         let def_id = cx.tcx.hir().local_def_id_from_hir_id(hir_id);
 
-        if is_entrypoint_fn(cx, def_id) {
+        if in_external_macro(cx.tcx.sess, span) || is_entrypoint_fn(cx, def_id) {
             return;
         }
 
index 36efe16b84f0f855535743f7f7fe054f14fb85d2..4a2e6adb8f069e1b87b45cfc24b69430b6d3c385 100644 (file)
@@ -55,3 +55,7 @@ fn g() -> u32 {
         33
     }
 }
+
+// Don't lint in external macros (derive)
+#[derive(PartialEq, Eq)]
+struct Point(isize, isize);