Merge commit '149392b0ba' into clippyup
This commit is contained in:
parent
e5df17aae5
commit
0413fb35ba
131 changed files with 3025 additions and 630 deletions
|
|
@ -391,11 +391,18 @@ impl FormatString {
|
|||
};
|
||||
|
||||
let mut unescaped = String::with_capacity(inner.len());
|
||||
// Sometimes the original string comes from a macro which accepts a malformed string, such as in a
|
||||
// #[display(""somestring)] attribute (accepted by the `displaythis` crate). Reconstructing the
|
||||
// string from the span will not be possible, so we will just return None here.
|
||||
let mut unparsable = false;
|
||||
unescape_literal(inner, mode, &mut |_, ch| match ch {
|
||||
Ok(ch) => unescaped.push(ch),
|
||||
Err(e) if !e.is_fatal() => (),
|
||||
Err(e) => panic!("{e:?}"),
|
||||
Err(_) => unparsable = true,
|
||||
});
|
||||
if unparsable {
|
||||
return None;
|
||||
}
|
||||
|
||||
let mut parts = Vec::new();
|
||||
let _: Option<!> = for_each_expr(pieces, |expr| {
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ impl<'a> NumericLiteral<'a> {
|
|||
// The exponent may have a sign, output it early, otherwise it will be
|
||||
// treated as a digit
|
||||
if digits.clone().next() == Some('-') {
|
||||
let _ = digits.next();
|
||||
let _: Option<char> = digits.next();
|
||||
output.push('-');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ pub const STD_FS_CREATE_DIR: [&str; 3] = ["std", "fs", "create_dir"];
|
|||
pub const STD_IO_SEEK: [&str; 3] = ["std", "io", "Seek"];
|
||||
pub const STD_IO_SEEK_FROM_CURRENT: [&str; 4] = ["std", "io", "SeekFrom", "Current"];
|
||||
pub const STD_IO_SEEKFROM_START: [&str; 4] = ["std", "io", "SeekFrom", "Start"];
|
||||
pub const STD_PROCESS_COMMAND: [&str; 3] = ["std", "process", "Command"];
|
||||
pub const STRING_AS_MUT_STR: [&str; 4] = ["alloc", "string", "String", "as_mut_str"];
|
||||
pub const STRING_AS_STR: [&str; 4] = ["alloc", "string", "String", "as_str"];
|
||||
pub const STRING_NEW: [&str; 4] = ["alloc", "string", "String", "new"];
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ use rustc_middle::mir::{FakeReadCause, Mutability};
|
|||
use rustc_middle::ty;
|
||||
use rustc_span::source_map::{BytePos, CharPos, Pos, Span, SyntaxContext};
|
||||
use std::borrow::Cow;
|
||||
use std::fmt::{Display, Write as _};
|
||||
use std::fmt::{self, Display, Write as _};
|
||||
use std::ops::{Add, Neg, Not, Sub};
|
||||
|
||||
/// A helper type to build suggestion correctly handling parentheses.
|
||||
|
|
@ -932,7 +932,7 @@ impl<'tcx> Delegate<'tcx> for DerefDelegate<'_, 'tcx> {
|
|||
if cmt.place.projections.is_empty() {
|
||||
// handle item without any projection, that needs an explicit borrowing
|
||||
// i.e.: suggest `&x` instead of `x`
|
||||
let _ = write!(self.suggestion_start, "{start_snip}&{ident_str}");
|
||||
let _: fmt::Result = write!(self.suggestion_start, "{start_snip}&{ident_str}");
|
||||
} else {
|
||||
// cases where a parent `Call` or `MethodCall` is using the item
|
||||
// i.e.: suggest `.contains(&x)` for `.find(|x| [1, 2, 3].contains(x)).is_none()`
|
||||
|
|
@ -947,7 +947,7 @@ impl<'tcx> Delegate<'tcx> for DerefDelegate<'_, 'tcx> {
|
|||
// given expression is the self argument and will be handled completely by the compiler
|
||||
// i.e.: `|x| x.is_something()`
|
||||
ExprKind::MethodCall(_, self_expr, ..) if self_expr.hir_id == cmt.hir_id => {
|
||||
let _ = write!(self.suggestion_start, "{start_snip}{ident_str_with_proj}");
|
||||
let _: fmt::Result = write!(self.suggestion_start, "{start_snip}{ident_str_with_proj}");
|
||||
self.next_pos = span.hi();
|
||||
return;
|
||||
},
|
||||
|
|
@ -1055,7 +1055,7 @@ impl<'tcx> Delegate<'tcx> for DerefDelegate<'_, 'tcx> {
|
|||
}
|
||||
}
|
||||
|
||||
let _ = write!(self.suggestion_start, "{start_snip}{replacement_str}");
|
||||
let _: fmt::Result = write!(self.suggestion_start, "{start_snip}{replacement_str}");
|
||||
}
|
||||
self.next_pos = span.hi();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ use rustc_lint::LateContext;
|
|||
use rustc_middle::mir::interpret::{ConstValue, Scalar};
|
||||
use rustc_middle::ty::{
|
||||
self, AdtDef, AliasTy, AssocKind, Binder, BoundRegion, DefIdTree, FnSig, IntTy, List, ParamEnv, Predicate,
|
||||
PredicateKind, Region, RegionKind, SubstsRef, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, TypeVisitor, UintTy,
|
||||
VariantDef, VariantDiscr, TypeVisitableExt,
|
||||
PredicateKind, Region, RegionKind, SubstsRef, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, TypeVisitableExt,
|
||||
TypeVisitor, UintTy, VariantDef, VariantDiscr,
|
||||
};
|
||||
use rustc_middle::ty::{GenericArg, GenericArgKind};
|
||||
use rustc_span::symbol::Ident;
|
||||
|
|
@ -894,16 +894,29 @@ impl AdtVariantInfo {
|
|||
}
|
||||
|
||||
/// Gets the struct or enum variant from the given `Res`
|
||||
pub fn variant_of_res<'tcx>(cx: &LateContext<'tcx>, res: Res) -> Option<&'tcx VariantDef> {
|
||||
pub fn adt_and_variant_of_res<'tcx>(cx: &LateContext<'tcx>, res: Res) -> Option<(AdtDef<'tcx>, &'tcx VariantDef)> {
|
||||
match res {
|
||||
Res::Def(DefKind::Struct, id) => Some(cx.tcx.adt_def(id).non_enum_variant()),
|
||||
Res::Def(DefKind::Variant, id) => Some(cx.tcx.adt_def(cx.tcx.parent(id)).variant_with_id(id)),
|
||||
Res::Def(DefKind::Ctor(CtorOf::Struct, _), id) => Some(cx.tcx.adt_def(cx.tcx.parent(id)).non_enum_variant()),
|
||||
Res::Def(DefKind::Struct, id) => {
|
||||
let adt = cx.tcx.adt_def(id);
|
||||
Some((adt, adt.non_enum_variant()))
|
||||
},
|
||||
Res::Def(DefKind::Variant, id) => {
|
||||
let adt = cx.tcx.adt_def(cx.tcx.parent(id));
|
||||
Some((adt, adt.variant_with_id(id)))
|
||||
},
|
||||
Res::Def(DefKind::Ctor(CtorOf::Struct, _), id) => {
|
||||
let adt = cx.tcx.adt_def(cx.tcx.parent(id));
|
||||
Some((adt, adt.non_enum_variant()))
|
||||
},
|
||||
Res::Def(DefKind::Ctor(CtorOf::Variant, _), id) => {
|
||||
let var_id = cx.tcx.parent(id);
|
||||
Some(cx.tcx.adt_def(cx.tcx.parent(var_id)).variant_with_id(var_id))
|
||||
let adt = cx.tcx.adt_def(cx.tcx.parent(var_id));
|
||||
Some((adt, adt.variant_with_id(var_id)))
|
||||
},
|
||||
Res::SelfCtor(id) => {
|
||||
let adt = cx.tcx.type_of(id).subst_identity().ty_adt_def().unwrap();
|
||||
Some((adt, adt.non_enum_variant()))
|
||||
},
|
||||
Res::SelfCtor(id) => Some(cx.tcx.type_of(id).subst_identity().ty_adt_def().unwrap().non_enum_variant()),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue