Skip to content

Commit e8042b7

Browse files
authored
Rollup merge of #146428 - jieyouxu:revert-assert-desugaring, r=estebank,jackh726
Revert `assert!` desugaring changes (#122661) Reverts rust-lang/rust#122661 to prevent rust-lang/rust#145770 slipping into beta. cc `@estebank` (FYI) ### Review remarks - Commit 1 is the MCVE reported in rust-lang/rust#145770 added as a regression test `tests/ui/macros/assert-desugaring-145770.rs`. Against `master`, this test fails. - Commit 2 reverts rust-lang/rust#122661 (with a merge conflict fixed). `tests/ui/macros/assert-desugaring-145770.rs` now passes.
2 parents 98f2002 + 14e34d1 commit e8042b7

File tree

4 files changed

+9
-16
lines changed

4 files changed

+9
-16
lines changed

clippy_lints/src/missing_asserts_for_indexing.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use rustc_ast::{BinOpKind, LitKind, RangeLimits};
1111
use rustc_data_structures::packed::Pu128;
1212
use rustc_data_structures::unhash::UnindexMap;
1313
use rustc_errors::{Applicability, Diag};
14-
use rustc_hir::{Body, Expr, ExprKind};
14+
use rustc_hir::{Block, Body, Expr, ExprKind, UnOp};
1515
use rustc_lint::{LateContext, LateLintPass};
1616
use rustc_session::declare_lint_pass;
1717
use rustc_span::source_map::Spanned;
@@ -135,12 +135,12 @@ fn assert_len_expr<'hir>(
135135
cx: &LateContext<'_>,
136136
expr: &'hir Expr<'hir>,
137137
) -> Option<(LengthComparison, usize, &'hir Expr<'hir>)> {
138-
let (cmp, asserted_len, slice_len) = if let Some(
139-
higher::IfLetOrMatch::Match(cond, [_, then], _)
140-
) = higher::IfLetOrMatch::parse(cx, expr)
141-
&& let ExprKind::Binary(bin_op, left, right) = &cond.kind
138+
let (cmp, asserted_len, slice_len) = if let Some(higher::If { cond, then, .. }) = higher::If::hir(expr)
139+
&& let ExprKind::Unary(UnOp::Not, condition) = &cond.kind
140+
&& let ExprKind::Binary(bin_op, left, right) = &condition.kind
142141
// check if `then` block has a never type expression
143-
&& cx.typeck_results().expr_ty(then.body).is_never()
142+
&& let ExprKind::Block(Block { expr: Some(then_expr), .. }, _) = then.kind
143+
&& cx.typeck_results().expr_ty(then_expr).is_never()
144144
{
145145
len_comparison(bin_op.node, left, right)?
146146
} else if let Some((macro_call, bin_op)) = first_node_macro_backtrace(cx, expr).find_map(|macro_call| {

tests/ui/const_is_empty.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ fn issue_13106() {
196196

197197
const {
198198
assert!(EMPTY_STR.is_empty());
199-
//~^ const_is_empty
200199
}
201200

202201
const {

tests/ui/const_is_empty.stderr

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,16 +158,10 @@ LL | let _ = val.is_empty();
158158
| ^^^^^^^^^^^^^^
159159

160160
error: this expression always evaluates to true
161-
--> tests/ui/const_is_empty.rs:198:17
162-
|
163-
LL | assert!(EMPTY_STR.is_empty());
164-
| ^^^^^^^^^^^^^^^^^^^^
165-
166-
error: this expression always evaluates to true
167-
--> tests/ui/const_is_empty.rs:203:9
161+
--> tests/ui/const_is_empty.rs:202:9
168162
|
169163
LL | EMPTY_STR.is_empty();
170164
| ^^^^^^^^^^^^^^^^^^^^
171165

172-
error: aborting due to 28 previous errors
166+
error: aborting due to 27 previous errors
173167

tests/ui/incompatible_msrv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![warn(clippy::incompatible_msrv)]
22
#![feature(custom_inner_attributes)]
3-
#![allow(stable_features, clippy::diverging_sub_expression)]
3+
#![allow(stable_features)]
44
#![feature(strict_provenance)] // For use in test
55
#![clippy::msrv = "1.3.0"]
66

0 commit comments

Comments
 (0)