clippy 0.0.71

A bunch of helpful lints to avoid common pitfalls in Rust
// error-pattern:cargo-clippy
#![feature(type_macros)]
#![feature(plugin_registrar, box_syntax)]
#![feature(rustc_private, collections)]
#![feature(custom_attribute)]
#![feature(slice_patterns)]
#![feature(question_mark)]
#![feature(stmt_expr_attributes)]
#![allow(indexing_slicing, shadow_reuse, unknown_lints)]

#[macro_use]
extern crate syntax;
#[macro_use]
extern crate rustc;

extern crate toml;

// Only for the compile time checking of paths
extern crate core;
extern crate collections;

// for unicode nfc normalization
extern crate unicode_normalization;

// for semver check in attrs.rs
extern crate semver;

// for regex checking
extern crate regex_syntax;

// for finding minimal boolean expressions
extern crate quine_mc_cluskey;

extern crate rustc_plugin;
extern crate rustc_const_eval;
extern crate rustc_const_math;
use rustc_plugin::Registry;

extern crate clippy_lints;

pub use clippy_lints::*;

macro_rules! declare_restriction_lint {
    { pub $name:tt, $description:tt } => {
        declare_lint! { pub $name, Allow, $description }
    };
}

mod reexport {
    pub use syntax::ast::{Name, NodeId};
}

#[plugin_registrar]
pub fn plugin_registrar(reg: &mut Registry) {
    register_plugins(reg);
}

// only exists to let the dogfood integration test works.
// Don't run clippy as an executable directly
#[allow(dead_code, print_stdout)]
fn main() {
    panic!("Please use the cargo-clippy executable");
}