#![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;
+use rustc::lint::{LintArray, LintPass};
 
 #[macro_use]
 extern crate clippy_lints;
@@ -21,8 +21,8 @@
 }
 
 pub struct Pass;
-impl lint::LintPass for Pass {
-    fn get_lints(&self) -> lint::LintArray {
+impl LintPass for Pass {
+    fn get_lints(&self) -> LintArray {
         lint_array!(TEST_LINT_REGISTERED)
     }
 
@@ -31,4 +31,9 @@
     }
 }
 
+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
