]> git.lizzy.rs Git - rust.git/blob - src/lib.rs
deps: bump toml from 0.4 to 0.5
[rust.git] / src / lib.rs
1 // error-pattern:cargo-clippy
2 #![feature(plugin_registrar)]
3 #![feature(rustc_private)]
4 #![warn(rust_2018_idioms)]
5
6 // FIXME: switch to something more ergonomic here, once available.
7 // (Currently there is no way to opt into sysroot crates without `extern crate`.)
8 #[allow(unused_extern_crates)]
9 extern crate rustc_driver;
10 #[allow(unused_extern_crates)]
11 extern crate rustc_plugin;
12 use self::rustc_plugin::Registry;
13
14 #[plugin_registrar]
15 pub fn plugin_registrar(reg: &mut Registry<'_>) {
16     reg.sess.lint_store.with_read_lock(|lint_store| {
17         for (lint, _, _) in lint_store.get_lint_groups() {
18             reg.sess
19                 .struct_warn(
20                     "the clippy plugin is being deprecated, please use cargo clippy or rls with the clippy feature",
21                 )
22                 .emit();
23             if lint == "clippy" {
24                 // cargo clippy run on a crate that also uses the plugin
25                 return;
26             }
27         }
28     });
29
30     let conf = clippy_lints::read_conf(reg);
31     clippy_lints::register_plugins(reg, &conf);
32 }
33
34 // only exists to let the dogfood integration test works.
35 // Don't run clippy as an executable directly
36 #[allow(dead_code)]
37 fn main() {
38     panic!("Please use the cargo-clippy executable");
39 }