diff options
| author | bors <bors@rust-lang.org> | 2018-10-07 19:30:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-10-07 19:30:24 +0000 |
| commit | b2d6ea98b0db53889c5427e5a23cddb3bcb63040 (patch) | |
| tree | bd63322b8fb1b86ea70912c2d81a79d7633f4afb | |
| parent | 0ee045ea09127e5318e9cb1fff85ec34b9e3e6eb (diff) | |
| parent | e24f4d57b01be3eb3b36c49385cbe89e096586bc (diff) | |
| download | rust-b2d6ea98b0db53889c5427e5a23cddb3bcb63040.tar.gz rust-b2d6ea98b0db53889c5427e5a23cddb3bcb63040.zip | |
Auto merge of #54810 - 1aim:unused-impl-trait, r=oli-obk
Fix dead code lint for functions using impl Trait Fixes https://github.com/rust-lang/rust/issues/54754 This is a minimal fix that doesn't add any new queries or touches unnecessary code. Please nominate for beta backport if wanted.
| -rw-r--r-- | src/librustc/middle/dead.rs | 8 | ||||
| -rw-r--r-- | src/test/run-pass/async-await.rs | 1 | ||||
| -rw-r--r-- | src/test/ui/impl-trait/existential-minimal.rs (renamed from src/test/run-pass/impl-trait/existential-minimal.rs) | 2 | ||||
| -rw-r--r-- | src/test/ui/impl-trait/issue-42479.rs (renamed from src/test/run-pass/impl-trait/issue-42479.rs) | 2 | ||||
| -rw-r--r-- | src/test/ui/impl-trait/issue-49376.rs (renamed from src/test/run-pass/impl-trait/issue-49376.rs) | 2 | ||||
| -rw-r--r-- | src/test/ui/issue-49556.rs (renamed from src/test/run-pass/issues/issue-49556.rs) | 2 | ||||
| -rw-r--r-- | src/test/ui/lint/lint-dead-code-1.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/lint/lint-dead-code-1.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/traits/conservative_impl_trait.rs (renamed from src/test/run-pass/traits/conservative_impl_trait.rs) | 2 |
9 files changed, 24 insertions, 7 deletions
diff --git a/src/librustc/middle/dead.rs b/src/librustc/middle/dead.rs index 2ac185b681e..ea90922b110 100644 --- a/src/librustc/middle/dead.rs +++ b/src/librustc/middle/dead.rs @@ -398,7 +398,13 @@ fn create_and_seed_worklist<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, krate: &hir::Crate) -> Vec<ast::NodeId> { - let worklist = access_levels.map.iter().map(|(&id, _)| id).chain( + let worklist = access_levels.map.iter().filter_map(|(&id, level)| { + if level >= &privacy::AccessLevel::Reachable { + Some(id) + } else { + None + } + }).chain( // Seed entry point tcx.sess.entry_fn.borrow().map(|(id, _, _)| id) ).collect::<Vec<_>>(); diff --git a/src/test/run-pass/async-await.rs b/src/test/run-pass/async-await.rs index 0cd9bad03af..59da7580354 100644 --- a/src/test/run-pass/async-await.rs +++ b/src/test/run-pass/async-await.rs @@ -170,6 +170,7 @@ fn main() { async_closure, async_fn, async_fn_with_internal_borrow, + Foo::async_method, |x| { async move { unsafe { await!(unsafe_async_fn(x)) } diff --git a/src/test/run-pass/impl-trait/existential-minimal.rs b/src/test/ui/impl-trait/existential-minimal.rs index bae4c685e7c..ff9209251aa 100644 --- a/src/test/run-pass/impl-trait/existential-minimal.rs +++ b/src/test/ui/impl-trait/existential-minimal.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// run-pass +// compile-pass fn main() {} diff --git a/src/test/run-pass/impl-trait/issue-42479.rs b/src/test/ui/impl-trait/issue-42479.rs index 1da5cd36ca9..fbf2c3f8a4e 100644 --- a/src/test/run-pass/impl-trait/issue-42479.rs +++ b/src/test/ui/impl-trait/issue-42479.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// run-pass +// compile-pass use std::iter::once; diff --git a/src/test/run-pass/impl-trait/issue-49376.rs b/src/test/ui/impl-trait/issue-49376.rs index 10379dad37d..1dfea0b9573 100644 --- a/src/test/run-pass/impl-trait/issue-49376.rs +++ b/src/test/ui/impl-trait/issue-49376.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// run-pass +// compile-pass // Tests for nested self-reference which caused a stack overflow. diff --git a/src/test/run-pass/issues/issue-49556.rs b/src/test/ui/issue-49556.rs index aeeb55d6c60..7f7b349c3a0 100644 --- a/src/test/run-pass/issues/issue-49556.rs +++ b/src/test/ui/issue-49556.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// run-pass +// compile-pass fn iter<'a>(data: &'a [usize]) -> impl Iterator<Item = usize> + 'a { data.iter() .map( diff --git a/src/test/ui/lint/lint-dead-code-1.rs b/src/test/ui/lint/lint-dead-code-1.rs index 2fe72365bab..944d57b5ba8 100644 --- a/src/test/ui/lint/lint-dead-code-1.rs +++ b/src/test/ui/lint/lint-dead-code-1.rs @@ -109,6 +109,10 @@ fn bar() { //~ ERROR: function is never used foo(); } +fn baz() -> impl Copy { //~ ERROR: function is never used + "I'm unused, too" +} + // Code with #[allow(dead_code)] should be marked live (and thus anything it // calls is marked live) #[allow(dead_code)] diff --git a/src/test/ui/lint/lint-dead-code-1.stderr b/src/test/ui/lint/lint-dead-code-1.stderr index 9802b7e8f38..9d8e44c25d8 100644 --- a/src/test/ui/lint/lint-dead-code-1.stderr +++ b/src/test/ui/lint/lint-dead-code-1.stderr @@ -58,5 +58,11 @@ error: function is never used: `bar` LL | fn bar() { //~ ERROR: function is never used | ^^^^^^^^ -error: aborting due to 9 previous errors +error: function is never used: `baz` + --> $DIR/lint-dead-code-1.rs:112:1 + | +LL | fn baz() -> impl Copy { //~ ERROR: function is never used + | ^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 10 previous errors diff --git a/src/test/run-pass/traits/conservative_impl_trait.rs b/src/test/ui/traits/conservative_impl_trait.rs index b6abeb916a9..3f119affd8c 100644 --- a/src/test/run-pass/traits/conservative_impl_trait.rs +++ b/src/test/ui/traits/conservative_impl_trait.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// run-pass +// compile-pass // #39665 fn batches(n: &u32) -> impl Iterator<Item=&u32> { |
