summaryrefslogtreecommitdiffstats
path: root/src/test/ui/lint/unused/lint-unused-extern-crate.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/lint/unused/lint-unused-extern-crate.rs')
-rw-r--r--src/test/ui/lint/unused/lint-unused-extern-crate.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/lint/unused/lint-unused-extern-crate.rs b/src/test/ui/lint/unused/lint-unused-extern-crate.rs
new file mode 100644
index 000000000..d5e4da526
--- /dev/null
+++ b/src/test/ui/lint/unused/lint-unused-extern-crate.rs
@@ -0,0 +1,35 @@
+// aux-build:lint_unused_extern_crate.rs
+// aux-build:lint_unused_extern_crate2.rs
+// aux-build:lint_unused_extern_crate3.rs
+// aux-build:lint_unused_extern_crate4.rs
+// aux-build:lint_unused_extern_crate5.rs
+
+#![deny(unused_extern_crates)]
+#![allow(unused_variables)]
+#![allow(deprecated)]
+
+extern crate lint_unused_extern_crate5; //~ ERROR: unused extern crate
+
+pub extern crate lint_unused_extern_crate4; // no error, it is re-exported
+
+extern crate lint_unused_extern_crate3; // no error, it is used
+
+extern crate lint_unused_extern_crate2; // no error, the use marks it as used
+ // even if imported objects aren't used
+
+extern crate lint_unused_extern_crate as other; // no error, the use * marks it as used
+
+#[allow(unused_imports)]
+use lint_unused_extern_crate2::foo as bar;
+
+use other::*;
+
+mod foo {
+ // Test that this is unused even though an earlier `extern crate` is used.
+ extern crate lint_unused_extern_crate2; //~ ERROR unused extern crate
+}
+
+fn main() {
+ lint_unused_extern_crate3::foo();
+ let y = foo();
+}