use matches!() macro for simple if let conditions
This commit is contained in:
parent
2c69266c06
commit
40dddd3305
@ -1931,7 +1931,7 @@ pub enum TyKind {
|
|||||||
|
|
||||||
impl TyKind {
|
impl TyKind {
|
||||||
pub fn is_implicit_self(&self) -> bool {
|
pub fn is_implicit_self(&self) -> bool {
|
||||||
if let TyKind::ImplicitSelf = *self { true } else { false }
|
matches!(self, TyKind::ImplicitSelf)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_unit(&self) -> bool {
|
pub fn is_unit(&self) -> bool {
|
||||||
@ -2227,7 +2227,7 @@ pub enum Async {
|
|||||||
|
|
||||||
impl Async {
|
impl Async {
|
||||||
pub fn is_async(self) -> bool {
|
pub fn is_async(self) -> bool {
|
||||||
if let Async::Yes { .. } = self { true } else { false }
|
matches!(self, Async::Yes { .. })
|
||||||
}
|
}
|
||||||
|
|
||||||
/// In this case this is an `async` return, the `NodeId` for the generated `impl Trait` item.
|
/// In this case this is an `async` return, the `NodeId` for the generated `impl Trait` item.
|
||||||
@ -2508,7 +2508,7 @@ pub enum VisibilityKind {
|
|||||||
|
|
||||||
impl VisibilityKind {
|
impl VisibilityKind {
|
||||||
pub fn is_pub(&self) -> bool {
|
pub fn is_pub(&self) -> bool {
|
||||||
if let VisibilityKind::Public = *self { true } else { false }
|
matches!(self, VisibilityKind::Public)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -868,10 +868,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
|
|||||||
.emit();
|
.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
if !bounds
|
if !bounds.iter().any(|b| matches!(b, GenericBound::Trait(..))) {
|
||||||
.iter()
|
|
||||||
.any(|b| if let GenericBound::Trait(..) = *b { true } else { false })
|
|
||||||
{
|
|
||||||
self.err_handler().span_err(ty.span, "at least one trait must be specified");
|
self.err_handler().span_err(ty.span, "at least one trait must be specified");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,10 +160,10 @@ pub enum StabilityLevel {
|
|||||||
|
|
||||||
impl StabilityLevel {
|
impl StabilityLevel {
|
||||||
pub fn is_unstable(&self) -> bool {
|
pub fn is_unstable(&self) -> bool {
|
||||||
if let StabilityLevel::Unstable { .. } = *self { true } else { false }
|
matches!(self, StabilityLevel::Unstable { .. })
|
||||||
}
|
}
|
||||||
pub fn is_stable(&self) -> bool {
|
pub fn is_stable(&self) -> bool {
|
||||||
if let StabilityLevel::Stable { .. } = *self { true } else { false }
|
matches!(self, StabilityLevel::Stable { .. })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1529,7 +1529,7 @@ impl<'a> TraitDef<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let is_tuple = if let ast::VariantData::Tuple(..) = struct_def { true } else { false };
|
let is_tuple = matches!(struct_def, ast::VariantData::Tuple(..));
|
||||||
match (just_spans.is_empty(), named_idents.is_empty()) {
|
match (just_spans.is_empty(), named_idents.is_empty()) {
|
||||||
(false, false) => cx.span_bug(
|
(false, false) => cx.span_bug(
|
||||||
self.span,
|
self.span,
|
||||||
|
@ -118,17 +118,15 @@ pub struct Annotation {
|
|||||||
impl Annotation {
|
impl Annotation {
|
||||||
/// Whether this annotation is a vertical line placeholder.
|
/// Whether this annotation is a vertical line placeholder.
|
||||||
pub fn is_line(&self) -> bool {
|
pub fn is_line(&self) -> bool {
|
||||||
if let AnnotationType::MultilineLine(_) = self.annotation_type { true } else { false }
|
matches!(self.annotation_type, AnnotationType::MultilineLine(_))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_multiline(&self) -> bool {
|
pub fn is_multiline(&self) -> bool {
|
||||||
match self.annotation_type {
|
matches!(self.annotation_type,
|
||||||
AnnotationType::Multiline(_)
|
AnnotationType::Multiline(_)
|
||||||
| AnnotationType::MultilineStart(_)
|
| AnnotationType::MultilineStart(_)
|
||||||
| AnnotationType::MultilineLine(_)
|
| AnnotationType::MultilineLine(_)
|
||||||
| AnnotationType::MultilineEnd(_) => true,
|
| AnnotationType::MultilineEnd(_))
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn len(&self) -> usize {
|
pub fn len(&self) -> usize {
|
||||||
|
@ -1985,9 +1985,9 @@ impl ExplicitOutlivesRequirements {
|
|||||||
.filter_map(|(i, bound)| {
|
.filter_map(|(i, bound)| {
|
||||||
if let hir::GenericBound::Outlives(lifetime) = bound {
|
if let hir::GenericBound::Outlives(lifetime) = bound {
|
||||||
let is_inferred = match tcx.named_region(lifetime.hir_id) {
|
let is_inferred = match tcx.named_region(lifetime.hir_id) {
|
||||||
Some(Region::Static) if infer_static => inferred_outlives
|
Some(Region::Static) if infer_static => {
|
||||||
.iter()
|
inferred_outlives.iter().any(|r| matches!(r, ty::ReStatic))
|
||||||
.any(|r| if let ty::ReStatic = r { true } else { false }),
|
}
|
||||||
Some(Region::EarlyBound(index, ..)) => inferred_outlives.iter().any(|r| {
|
Some(Region::EarlyBound(index, ..)) => inferred_outlives.iter().any(|r| {
|
||||||
if let ty::ReEarlyBound(ebr) = r { ebr.index == index } else { false }
|
if let ty::ReEarlyBound(ebr) = r { ebr.index == index } else { false }
|
||||||
}),
|
}),
|
||||||
@ -2079,9 +2079,10 @@ impl<'tcx> LateLintPass<'tcx> for ExplicitOutlivesRequirements {
|
|||||||
let mut lint_spans = Vec::new();
|
let mut lint_spans = Vec::new();
|
||||||
|
|
||||||
for param in hir_generics.params {
|
for param in hir_generics.params {
|
||||||
let has_lifetime_bounds = param.bounds.iter().any(|bound| {
|
let has_lifetime_bounds = param
|
||||||
if let hir::GenericBound::Outlives(_) = bound { true } else { false }
|
.bounds
|
||||||
});
|
.iter()
|
||||||
|
.any(|bound| matches!(bound, hir::GenericBound::Outlives(_)));
|
||||||
if !has_lifetime_bounds {
|
if !has_lifetime_bounds {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ pub enum LibSource {
|
|||||||
|
|
||||||
impl LibSource {
|
impl LibSource {
|
||||||
pub fn is_some(&self) -> bool {
|
pub fn is_some(&self) -> bool {
|
||||||
if let LibSource::Some(_) = *self { true } else { false }
|
matches!(self, LibSource::Some(_))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn option(&self) -> Option<PathBuf> {
|
pub fn option(&self) -> Option<PathBuf> {
|
||||||
|
@ -115,9 +115,10 @@ impl OutlivesSuggestionBuilder {
|
|||||||
// should just replace 'a with 'static.
|
// should just replace 'a with 'static.
|
||||||
// 3) Suggest unifying 'a with 'b if we have both 'a: 'b and 'b: 'a
|
// 3) Suggest unifying 'a with 'b if we have both 'a: 'b and 'b: 'a
|
||||||
|
|
||||||
if outlived.iter().any(|(_, outlived_name)| {
|
if outlived
|
||||||
if let RegionNameSource::Static = outlived_name.source { true } else { false }
|
.iter()
|
||||||
}) {
|
.any(|(_, outlived_name)| matches!(outlived_name.source, RegionNameSource::Static))
|
||||||
|
{
|
||||||
suggested.push(SuggestedConstraint::Static(fr_name));
|
suggested.push(SuggestedConstraint::Static(fr_name));
|
||||||
} else {
|
} else {
|
||||||
// We want to isolate out all lifetimes that should be unified and print out
|
// We want to isolate out all lifetimes that should be unified and print out
|
||||||
|
@ -92,7 +92,7 @@ pub enum TempState {
|
|||||||
impl TempState {
|
impl TempState {
|
||||||
pub fn is_promotable(&self) -> bool {
|
pub fn is_promotable(&self) -> bool {
|
||||||
debug!("is_promotable: self={:?}", self);
|
debug!("is_promotable: self={:?}", self);
|
||||||
if let TempState::Defined { .. } = *self { true } else { false }
|
matches!(self, TempState::Defined { .. } )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,8 +281,7 @@ impl<'a, 'tcx> CfgSimplifier<'a, 'tcx> {
|
|||||||
|
|
||||||
fn strip_nops(&mut self) {
|
fn strip_nops(&mut self) {
|
||||||
for blk in self.basic_blocks.iter_mut() {
|
for blk in self.basic_blocks.iter_mut() {
|
||||||
blk.statements
|
blk.statements.retain(|stmt| !matches!(stmt.kind, StatementKind::Nop))
|
||||||
.retain(|stmt| if let StatementKind::Nop = stmt.kind { false } else { true })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,8 +96,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
StmtKind::Let { remainder_scope, init_scope, pattern, initializer, lint_level } => {
|
StmtKind::Let { remainder_scope, init_scope, pattern, initializer, lint_level } => {
|
||||||
let ignores_expr_result =
|
let ignores_expr_result = matches!(*pattern.kind, PatKind::Wild);
|
||||||
if let PatKind::Wild = *pattern.kind { true } else { false };
|
|
||||||
this.block_context.push(BlockFrame::Statement { ignores_expr_result });
|
this.block_context.push(BlockFrame::Statement { ignores_expr_result });
|
||||||
|
|
||||||
// Enter the remainder scope, i.e., the bindings' destruction scope.
|
// Enter the remainder scope, i.e., the bindings' destruction scope.
|
||||||
|
@ -1793,7 +1793,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
|
|||||||
.flat_map(|(bindings, _)| bindings)
|
.flat_map(|(bindings, _)| bindings)
|
||||||
.chain(&candidate.bindings)
|
.chain(&candidate.bindings)
|
||||||
.filter(|binding| {
|
.filter(|binding| {
|
||||||
if let BindingMode::ByValue = binding.binding_mode { true } else { false }
|
matches!(binding.binding_mode, BindingMode::ByValue )
|
||||||
});
|
});
|
||||||
// Read all of the by reference bindings to ensure that the
|
// Read all of the by reference bindings to ensure that the
|
||||||
// place they refer to can't be modified by the guard.
|
// place they refer to can't be modified by the guard.
|
||||||
|
@ -395,7 +395,7 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
|
|||||||
// so prefixes are prepended with crate root segment if necessary.
|
// so prefixes are prepended with crate root segment if necessary.
|
||||||
// The root is prepended lazily, when the first non-empty prefix or terminating glob
|
// The root is prepended lazily, when the first non-empty prefix or terminating glob
|
||||||
// appears, so imports in braced groups can have roots prepended independently.
|
// appears, so imports in braced groups can have roots prepended independently.
|
||||||
let is_glob = if let ast::UseTreeKind::Glob = use_tree.kind { true } else { false };
|
let is_glob = matches!(use_tree.kind, ast::UseTreeKind::Glob);
|
||||||
let crate_root = match prefix_iter.peek() {
|
let crate_root = match prefix_iter.peek() {
|
||||||
Some(seg) if !seg.ident.is_path_segment_keyword() && seg.ident.span.rust_2015() => {
|
Some(seg) if !seg.ident.is_path_segment_keyword() && seg.ident.span.rust_2015() => {
|
||||||
Some(seg.ident.span.ctxt())
|
Some(seg.ident.span.ctxt())
|
||||||
|
@ -1034,7 +1034,7 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
|
|||||||
let mut add_bindings_for_ns = |ns| {
|
let mut add_bindings_for_ns = |ns| {
|
||||||
let parent_rib = self.ribs[ns]
|
let parent_rib = self.ribs[ns]
|
||||||
.iter()
|
.iter()
|
||||||
.rfind(|r| if let ItemRibKind(_) = r.kind { true } else { false })
|
.rfind(|r| matches!(r.kind, ItemRibKind(_)))
|
||||||
.expect("associated item outside of an item");
|
.expect("associated item outside of an item");
|
||||||
seen_bindings
|
seen_bindings
|
||||||
.extend(parent_rib.bindings.iter().map(|(ident, _)| (*ident, ident.span)));
|
.extend(parent_rib.bindings.iter().map(|(ident, _)| (*ident, ident.span)));
|
||||||
|
@ -439,9 +439,11 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||||||
// This is maybe too permissive, since it allows
|
// This is maybe too permissive, since it allows
|
||||||
// `let u = &raw const Box::new((1,)).0`, which creates an
|
// `let u = &raw const Box::new((1,)).0`, which creates an
|
||||||
// immediately dangling raw pointer.
|
// immediately dangling raw pointer.
|
||||||
self.typeck_results.borrow().adjustments().get(base.hir_id).map_or(false, |x| {
|
self.typeck_results
|
||||||
x.iter().any(|adj| if let Adjust::Deref(_) = adj.kind { true } else { false })
|
.borrow()
|
||||||
})
|
.adjustments()
|
||||||
|
.get(base.hir_id)
|
||||||
|
.map_or(false, |x| x.iter().any(|adj| matches!(adj.kind, Adjust::Deref(_))))
|
||||||
});
|
});
|
||||||
if !is_named {
|
if !is_named {
|
||||||
self.tcx.sess.emit_err(AddressOfTemporaryTaken { span: oprnd.span })
|
self.tcx.sess.emit_err(AddressOfTemporaryTaken { span: oprnd.span })
|
||||||
|
Loading…
x
Reference in New Issue
Block a user