Skip to content

Commit de32651

Browse files
committed
Auto merge of #145300 - Zalathar:rollup-0eqbt6a, r=Zalathar
Rollup of 17 pull requests Successful merges: - rust-lang/rust#131477 (Apple: Always pass SDK root when linking with `cc`, and pass it via `SDKROOT` env var) - rust-lang/rust#139806 (std: sys: pal: uefi: Overhaul Time) - rust-lang/rust#144386 (Extract TraitImplHeader in AST/HIR) - rust-lang/rust#144921 (Don't emit `rustdoc::broken_intra_doc_links` for GitHub-flavored Markdown admonitions like `[!NOTE]`) - rust-lang/rust#145155 (Port `#[allow_internal_unsafe]` to the new attribute system (attempt 2)) - rust-lang/rust#145214 (fix: re-enable self-assignment) - rust-lang/rust#145216 (rustdoc: correct negative-to-implicit discriminant display) - rust-lang/rust#145238 (Tweak invalid builtin attribute output) - rust-lang/rust#145249 (Rename entered trace span variables from `_span` to `_trace`) - rust-lang/rust#145251 (Support using #[unstable_feature_bound] on trait) - rust-lang/rust#145253 (Document compiler and stdlib in stage1 in `pr-check-2` CI job) - rust-lang/rust#145260 (Make explicit guarantees about `Vec`’s allocator) - rust-lang/rust#145263 (Update books) - rust-lang/rust#145273 (Account for new `assert!` desugaring in `!condition` suggestion) - rust-lang/rust#145283 (Make I-miscompile imply I-prioritize) - rust-lang/rust#145291 (bootstrap: Only warn about `rust.debug-assertions` if downloading rustc) - rust-lang/rust#145292 (Fix a typo in range docs) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 9dc6716 + 37b4ee5 commit de32651

35 files changed

+220
-132
lines changed

clippy_lints/src/arbitrary_source_item_ordering.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ fn get_item_name(item: &Item<'_>) -> Option<String> {
534534

535535
if let Some(of_trait) = im.of_trait {
536536
let mut trait_segs: Vec<String> = of_trait
537+
.trait_ref
537538
.path
538539
.segments
539540
.iter()

clippy_lints/src/bool_assert_comparison.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,22 @@ impl<'tcx> LateLintPass<'tcx> for BoolAssertComparison {
130130

131131
let mut suggestions = vec![(name_span, non_eq_mac.to_string()), (lit_span, String::new())];
132132

133-
if bool_value ^ eq_macro {
134-
let Some(sugg) = Sugg::hir_opt(cx, non_lit_expr) else {
135-
return;
133+
if let Some(sugg) = Sugg::hir_opt(cx, non_lit_expr) {
134+
let sugg = if bool_value ^ eq_macro {
135+
!sugg.maybe_paren()
136+
} else if ty::Bool == *non_lit_ty.kind() {
137+
sugg
138+
} else {
139+
!!sugg.maybe_paren()
136140
};
137-
suggestions.push((non_lit_expr.span, (!sugg).to_string()));
138-
}
141+
suggestions.push((non_lit_expr.span, sugg.to_string()));
139142

140-
diag.multipart_suggestion(
141-
format!("replace it with `{non_eq_mac}!(..)`"),
142-
suggestions,
143-
Applicability::MachineApplicable,
144-
);
143+
diag.multipart_suggestion(
144+
format!("replace it with `{non_eq_mac}!(..)`"),
145+
suggestions,
146+
Applicability::MachineApplicable,
147+
);
148+
}
145149
},
146150
);
147151
}

clippy_lints/src/copy_iterator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ declare_lint_pass!(CopyIterator => [COPY_ITERATOR]);
3737
impl<'tcx> LateLintPass<'tcx> for CopyIterator {
3838
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) {
3939
if let ItemKind::Impl(Impl {
40-
of_trait: Some(trait_ref),
40+
of_trait: Some(of_trait),
4141
..
4242
}) = item.kind
4343
&& let ty = cx.tcx.type_of(item.owner_id).instantiate_identity()
4444
&& is_copy(cx, ty)
45-
&& let Some(trait_id) = trait_ref.trait_def_id()
45+
&& let Some(trait_id) = of_trait.trait_ref.trait_def_id()
4646
&& cx.tcx.is_diagnostic_item(sym::Iterator, trait_id)
4747
{
4848
span_lint_and_note(

clippy_lints/src/derivable_impls.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,14 @@ fn check_enum<'tcx>(cx: &LateContext<'tcx>, item: &'tcx Item<'_>, func_expr: &Ex
183183
impl<'tcx> LateLintPass<'tcx> for DerivableImpls {
184184
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) {
185185
if let ItemKind::Impl(Impl {
186-
of_trait: Some(trait_ref),
186+
of_trait: Some(of_trait),
187187
items: [child],
188188
self_ty,
189189
..
190190
}) = item.kind
191191
&& !cx.tcx.is_automatically_derived(item.owner_id.to_def_id())
192192
&& !item.span.from_expansion()
193-
&& let Some(def_id) = trait_ref.trait_def_id()
193+
&& let Some(def_id) = of_trait.trait_ref.trait_def_id()
194194
&& cx.tcx.is_diagnostic_item(sym::Default, def_id)
195195
&& let impl_item_hir = child.hir_id()
196196
&& let Node::ImplItem(impl_item) = cx.tcx.hir_node(impl_item_hir)

clippy_lints/src/derive.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,11 @@ declare_lint_pass!(Derive => [
201201
impl<'tcx> LateLintPass<'tcx> for Derive {
202202
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) {
203203
if let ItemKind::Impl(Impl {
204-
of_trait: Some(trait_ref),
204+
of_trait: Some(of_trait),
205205
..
206206
}) = item.kind
207207
{
208+
let trait_ref = &of_trait.trait_ref;
208209
let ty = cx.tcx.type_of(item.owner_id).instantiate_identity();
209210
let is_automatically_derived = cx.tcx.is_automatically_derived(item.owner_id.to_def_id());
210211

clippy_lints/src/empty_drop.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ declare_lint_pass!(EmptyDrop => [EMPTY_DROP]);
3636
impl LateLintPass<'_> for EmptyDrop {
3737
fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) {
3838
if let ItemKind::Impl(Impl {
39-
of_trait: Some(trait_ref),
39+
of_trait: Some(of_trait),
4040
items: [child],
4141
..
4242
}) = item.kind
43-
&& trait_ref.trait_def_id() == cx.tcx.lang_items().drop_trait()
43+
&& of_trait.trait_ref.trait_def_id() == cx.tcx.lang_items().drop_trait()
4444
&& let impl_item_hir = child.hir_id()
4545
&& let Node::ImplItem(impl_item) = cx.tcx.hir_node(impl_item_hir)
4646
&& let ImplItemKind::Fn(_, b) = &impl_item.kind

clippy_lints/src/error_impl_error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ impl<'tcx> LateLintPass<'tcx> for ErrorImplError {
5252
);
5353
},
5454
ItemKind::Impl(imp)
55-
if let Some(trait_def_id) = imp.of_trait.and_then(|t| t.trait_def_id())
55+
if let Some(trait_def_id) = imp.of_trait.and_then(|t| t.trait_ref.trait_def_id())
5656
&& let Some(error_def_id) = cx.tcx.get_diagnostic_item(sym::Error)
5757
&& error_def_id == trait_def_id
5858
&& let Some(def_id) = path_res(cx, imp.self_ty).opt_def_id().and_then(DefId::as_local)

clippy_lints/src/format_impl.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,10 +254,10 @@ fn is_format_trait_impl(cx: &LateContext<'_>, impl_item: &ImplItem<'_>) -> Optio
254254
if impl_item.ident.name == sym::fmt
255255
&& let ImplItemKind::Fn(_, body_id) = impl_item.kind
256256
&& let Some(Impl {
257-
of_trait: Some(trait_ref),
257+
of_trait: Some(of_trait),
258258
..
259259
}) = get_parent_as_impl(cx.tcx, impl_item.hir_id())
260-
&& let Some(did) = trait_ref.trait_def_id()
260+
&& let Some(did) = of_trait.trait_ref.trait_def_id()
261261
&& let Some(name) = cx.tcx.get_diagnostic_name(did)
262262
&& matches!(name, sym::Debug | sym::Display)
263263
{

clippy_lints/src/from_over_into.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ impl_lint_pass!(FromOverInto => [FROM_OVER_INTO]);
6767
impl<'tcx> LateLintPass<'tcx> for FromOverInto {
6868
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) {
6969
if let ItemKind::Impl(Impl {
70-
of_trait: Some(hir_trait_ref),
70+
of_trait: Some(of_trait),
7171
self_ty,
7272
items: [impl_item_ref],
7373
..
7474
}) = item.kind
75-
&& let Some(into_trait_seg) = hir_trait_ref.path.segments.last()
75+
&& let Some(into_trait_seg) = of_trait.trait_ref.path.segments.last()
7676
// `impl Into<target_ty> for self_ty`
7777
&& let Some(GenericArgs { args: [GenericArg::Type(target_ty)], .. }) = into_trait_seg.args
7878
&& span_is_local(item.span)

clippy_lints/src/functions/impl_trait_in_params.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ pub(super) fn check_impl_item(cx: &LateContext<'_>, impl_item: &ImplItem<'_>) {
5454
if let ImplItemKind::Fn(_, body_id) = impl_item.kind
5555
&& let hir::Node::Item(item) = cx.tcx.parent_hir_node(impl_item.hir_id())
5656
&& let hir::ItemKind::Impl(impl_) = item.kind
57-
&& let hir::Impl { of_trait, .. } = *impl_
58-
&& of_trait.is_none()
57+
&& let hir::Impl { of_trait: None, .. } = impl_
5958
&& let body = cx.tcx.hir_body(body_id)
6059
&& cx.tcx.visibility(cx.tcx.hir_body_owner_def_id(body.id())).is_public()
6160
&& !is_in_test(cx.tcx, impl_item.hir_id())

0 commit comments

Comments
 (0)