diff options
| author | Owen Sanchez <pengowen816@gmail.com> | 2017-08-11 21:52:16 -0700 |
|---|---|---|
| committer | Owen Sanchez <pengowen816@gmail.com> | 2017-08-11 22:07:28 -0700 |
| commit | eeb748aa12a3bb7f6bbd1205385fa0a0adbef90c (patch) | |
| tree | bcae0ad2ab2dcb56f6c803c5d8f3696486699c47 /src | |
| parent | 0b2c9f03efc248680a8e7eeedb6e5f8da5947774 (diff) | |
| download | rust-eeb748aa12a3bb7f6bbd1205385fa0a0adbef90c.tar.gz rust-eeb748aa12a3bb7f6bbd1205385fa0a0adbef90c.zip | |
Don't trigger unused_result on functions returning empty enums
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_lint/unused.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/issue-43806.rs | 7 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/librustc_lint/unused.rs b/src/librustc_lint/unused.rs index e5b818cd5fb..7773891b5d0 100644 --- a/src/librustc_lint/unused.rs +++ b/src/librustc_lint/unused.rs @@ -148,7 +148,13 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnusedResults { let ty_warned = match t.sty { ty::TyTuple(ref tys, _) if tys.is_empty() => return, ty::TyNever => return, - ty::TyAdt(def, _) => check_must_use(cx, def.did, s.span, ""), + ty::TyAdt(def, _) => { + if def.variants.is_empty() { + return; + } else { + check_must_use(cx, def.did, s.span, "") + } + }, _ => false, }; diff --git a/src/test/ui/issue-43806.rs b/src/test/ui/issue-43806.rs index df7f756127c..7757a503c7e 100644 --- a/src/test/ui/issue-43806.rs +++ b/src/test/ui/issue-43806.rs @@ -12,15 +12,22 @@ #![deny(unused_results)] +enum Void {} + fn foo() {} fn bar() -> ! { loop {} } +fn baz() -> Void { + loop {} +} + fn qux() { foo(); bar(); + baz(); } fn main() {} |
