Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rustup #4388

Merged
merged 3 commits into from
Aug 15, 2019
Merged

Rustup #4388

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions clippy_lints/src/enum_clike.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,9 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnportableVariant {
if cx.tcx.data_layout.pointer_size.bits() != 64 {
return;
}
if let ItemKind::Enum(ref def, _) = item.node {
if let ItemKind::Enum(def, _) = &item.node {
for var in &def.variants {
let variant = &var.node;
if let Some(ref anon_const) = variant.disr_expr {
if let Some(anon_const) = &var.disr_expr {
let param_env = ty::ParamEnv::empty();
let def_id = cx.tcx.hir().body_owner_def_id(anon_const.body);
let substs = InternalSubsts::identity_for_item(cx.tcx.global_tcx(), def_id);
Expand Down
2 changes: 1 addition & 1 deletion clippy_lints/src/enum_variants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ impl_lint_pass!(EnumVariantNames => [
]);

fn var2str(var: &Variant) -> LocalInternedString {
var.node.ident.as_str()
var.ident.as_str()
}

/// Returns the number of chars that match from the start
Expand Down
2 changes: 1 addition & 1 deletion clippy_lints/src/large_enum_variant.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for LargeEnumVariant {
"large size difference between variants",
|db| {
if variant.fields.len() == 1 {
let span = match def.variants[i].node.data {
let span = match def.variants[i].data {
VariantData::Struct(ref fields, ..) | VariantData::Tuple(ref fields, ..) => {
fields[0].ty.span
},
Expand Down
2 changes: 1 addition & 1 deletion clippy_lints/src/missing_doc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,6 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for MissingDoc {
}

fn check_variant(&mut self, cx: &LateContext<'a, 'tcx>, v: &'tcx hir::Variant, _: &hir::Generics) {
self.check_missing_docs_attrs(cx, &v.node.attrs, v.span, "a variant");
self.check_missing_docs_attrs(cx, &v.attrs, v.span, "a variant");
}
}
2 changes: 1 addition & 1 deletion clippy_lints/src/utils/author.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Author {
}

fn check_variant(&mut self, cx: &LateContext<'a, 'tcx>, var: &'tcx hir::Variant, generics: &hir::Generics) {
if !has_attr(cx.sess(), &var.node.attrs) {
if !has_attr(cx.sess(), &var.attrs) {
return;
}
prelude();
Expand Down
1 change: 1 addition & 0 deletions tests/ui/author/blocks.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#![feature(stmt_expr_attributes)]
#![allow(redundant_semicolon)]

#[rustfmt::skip]
fn main() {
Expand Down
14 changes: 10 additions & 4 deletions tests/ui/author/blocks.stderr
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
error: statement with no effect
--> $DIR/blocks.rs:14:5
--> $DIR/blocks.rs:8:9
|
LL | -x;
| ^^^
LL | ;;;;
| ^^^^
|
= note: `-D clippy::no-effect` implied by `-D warnings`

error: aborting due to previous error
error: statement with no effect
--> $DIR/blocks.rs:15:5
|
LL | -x;
| ^^^

error: aborting due to 2 previous errors

5 changes: 4 additions & 1 deletion tests/ui/author/blocks.stdout
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
if_chain! {
if let ExprKind::Block(ref block) = expr.node;
if let Some(trailing_expr) = &block.expr;
if block.stmts.len() == 0;
if block.stmts.len() == 1;
if let StmtKind::Semi(ref e, _) = block.stmts[0].node
if let ExprKind::Tup(ref elements) = e.node;
if elements.len() == 0;
then {
// report your lint here
}
Expand Down
16 changes: 8 additions & 8 deletions tests/ui/cognitive_complexity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -322,14 +322,14 @@ fn try_() -> Result<i32, &'static str> {

#[clippy::cognitive_complexity = "0"]
fn try_again() -> Result<i32, &'static str> {
let _ = r#try!(Ok(42));
let _ = r#try!(Ok(43));
let _ = r#try!(Ok(44));
let _ = r#try!(Ok(45));
let _ = r#try!(Ok(46));
let _ = r#try!(Ok(47));
let _ = r#try!(Ok(48));
let _ = r#try!(Ok(49));
let _ = Ok(42)?;
let _ = Ok(43)?;
let _ = Ok(44)?;
let _ = Ok(45)?;
let _ = Ok(46)?;
let _ = Ok(47)?;
let _ = Ok(48)?;
let _ = Ok(49)?;
match 5 {
5 => Ok(5),
_ => return Err("bla"),
Expand Down
6 changes: 3 additions & 3 deletions tests/ui/cognitive_complexity.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,9 @@ error: the function has a cognitive complexity of 1
--> $DIR/cognitive_complexity.rs:324:1
|
LL | / fn try_again() -> Result<i32, &'static str> {
LL | | let _ = r#try!(Ok(42));
LL | | let _ = r#try!(Ok(43));
LL | | let _ = r#try!(Ok(44));
LL | | let _ = Ok(42)?;
LL | | let _ = Ok(43)?;
LL | | let _ = Ok(44)?;
... |
LL | | }
LL | | }
Expand Down
4 changes: 2 additions & 2 deletions tests/ui/if_same_then_else.rs
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,10 @@ fn if_same_then_else() -> Result<&'static str, ()> {
};

if true {
r#try!(Ok("foo"));
Ok("foo")?;
} else {
//~ ERROR same body as `if` block
r#try!(Ok("foo"));
Ok("foo")?;
}

if true {
Expand Down
4 changes: 2 additions & 2 deletions tests/ui/if_same_then_else.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ error: this `if` has identical blocks
LL | } else {
| ____________^
LL | | //~ ERROR same body as `if` block
LL | | r#try!(Ok("foo"));
LL | | Ok("foo")?;
LL | | }
| |_____^
|
Expand All @@ -206,7 +206,7 @@ note: same as this
|
LL | if true {
| _____________^
LL | | r#try!(Ok("foo"));
LL | | Ok("foo")?;
LL | | } else {
| |_____^

Expand Down
2 changes: 1 addition & 1 deletion tests/ui/redundant_closure_call.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ fn main() {
#[allow(clippy::needless_return)]
(|| return 2)();
(|| -> Option<i32> { None? })();
(|| -> Result<i32, i32> { r#try!(Err(2)) })();
(|| -> Result<i32, i32> { Err(2)? })();
}
2 changes: 1 addition & 1 deletion tests/ui/swap.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![warn(clippy::all)]
#![allow(clippy::blacklisted_name, unused_assignments)]
#![allow(clippy::blacklisted_name, clippy::no_effect, redundant_semicolon, unused_assignments)]

struct Foo(u32);

Expand Down
7 changes: 0 additions & 7 deletions tests/ui/unused_io_amount.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@

use std::io;

fn try_macro<T: io::Read + io::Write>(s: &mut T) -> io::Result<()> {
r#try!(s.write(b"test"));
let mut buf = [0u8; 4];
r#try!(s.read(&mut buf));
Ok(())
}

fn question_mark<T: io::Read + io::Write>(s: &mut T) -> io::Result<()> {
s.write(b"test")?;
let mut buf = [0u8; 4];
Expand Down
25 changes: 5 additions & 20 deletions tests/ui/unused_io_amount.stderr
Original file line number Diff line number Diff line change
@@ -1,43 +1,28 @@
error: handle written amount returned or use `Write::write_all` instead
--> $DIR/unused_io_amount.rs:7:5
|
LL | r#try!(s.write(b"test"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^
LL | s.write(b"test")?;
| ^^^^^^^^^^^^^^^^^
|
= note: `-D clippy::unused-io-amount` implied by `-D warnings`
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)

error: handle read amount returned or use `Read::read_exact` instead
--> $DIR/unused_io_amount.rs:9:5
|
LL | r#try!(s.read(&mut buf));
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)

error: handle written amount returned or use `Write::write_all` instead
--> $DIR/unused_io_amount.rs:14:5
|
LL | s.write(b"test")?;
| ^^^^^^^^^^^^^^^^^

error: handle read amount returned or use `Read::read_exact` instead
--> $DIR/unused_io_amount.rs:16:5
|
LL | s.read(&mut buf)?;
| ^^^^^^^^^^^^^^^^^

error: handle written amount returned or use `Write::write_all` instead
--> $DIR/unused_io_amount.rs:21:5
--> $DIR/unused_io_amount.rs:14:5
|
LL | s.write(b"test").unwrap();
| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: handle read amount returned or use `Read::read_exact` instead
--> $DIR/unused_io_amount.rs:23:5
--> $DIR/unused_io_amount.rs:16:5
|
LL | s.read(&mut buf).unwrap();
| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 6 previous errors
error: aborting due to 4 previous errors