#![deny(clippy::internal)]
#![feature(rustc_private)]

#[macro_use]
extern crate rustc;
use rustc::lint::{LintArray, LintPass};

#[macro_use]
extern crate clippy_lints;

declare_clippy_lint! {
    pub TEST_LINT,
    correctness,
    ""
}

declare_clippy_lint! {
    pub TEST_LINT_REGISTERED,
    correctness,
    ""
}

pub struct Pass;
impl LintPass for Pass {
    fn get_lints(&self) -> LintArray {
        lint_array!(TEST_LINT_REGISTERED)
    }

    fn name(&self) -> &'static str {
        "TEST_LINT"
    }
}

declare_lint_pass!(Pass2 => [TEST_LINT_REGISTERED]);

pub struct Pass3;
impl_lint_pass!(Pass3 => [TEST_LINT_REGISTERED]);

fn main() {}

#![deny(clippy::internal)]
#![feature(rustc_private)]

#[macro_use]
extern crate rustc;
use rustc::lint;

#[macro_use]
extern crate clippy_lints;

declare_clippy_lint! {
    pub TEST_LINT,
    correctness,
    ""
}

declare_clippy_lint! {
    pub TEST_LINT_REGISTERED,
    correctness,
    ""
}

pub struct Pass;
impl lint::LintPass for Pass {
    fn get_lints(&self) -> lint::LintArray {
        lint_array!(TEST_LINT_REGISTERED)
    }

    fn name(&self) -> &'static str {
        "TEST_LINT"
    }
}

fn main() {}

--- 
+++ 
@@ -3,7 +3,7 @@
 
 #[macro_use]
 extern crate rustc;
-use rustc::lint::{LintArray, LintPass};
+use rustc::lint;
 
 #[macro_use]
 extern crate clippy_lints;
@@ -21,8 +21,8 @@
 }
 
 pub struct Pass;
-impl LintPass for Pass {
-    fn get_lints(&self) -> LintArray {
+impl lint::LintPass for Pass {
+    fn get_lints(&self) -> lint::LintArray {
         lint_array!(TEST_LINT_REGISTERED)
     }
 
@@ -31,9 +31,4 @@
     }
 }
 
-declare_lint_pass!(Pass2 => [TEST_LINT_REGISTERED]);
-
-pub struct Pass3;
-impl_lint_pass!(Pass3 => [TEST_LINT_REGISTERED]);
-
 fn main() {}
Add tests for declare_lint_pass and impl_lint_pass
