]> git.lizzy.rs Git - rust.git/blob - src/lib.rs
Merge remote-tracking branch 'upstream/master' into luckily_literals_love_lints
[rust.git] / src / lib.rs
1 // error-pattern:cargo-clippy
2 #![feature(plugin_registrar)]
3 #![feature(rustc_private)]
4 #![allow(unknown_lints)]
5 #![allow(missing_docs_in_private_items)]
6
7 extern crate rustc_plugin;
8 use rustc_plugin::Registry;
9
10 extern crate clippy_lints;
11
12 #[plugin_registrar]
13 pub fn plugin_registrar(reg: &mut Registry) {
14     if let Ok(lint_store) = reg.sess.lint_store.try_borrow() {
15         if lint_store
16                .get_lint_groups()
17                .iter()
18                .any(|&(s, _, _)| s == "clippy") {
19             reg.sess
20                 .struct_warn("running cargo clippy on a crate that also imports the clippy plugin")
21                 .emit();
22             return;
23         }
24     }
25
26     clippy_lints::register_plugins(reg);
27 }
28
29 // only exists to let the dogfood integration test works.
30 // Don't run clippy as an executable directly
31 #[allow(dead_code)]
32 fn main() {
33     panic!("Please use the cargo-clippy executable");
34 }