From 196dd2a174f4fe9177c369576e7bc1f190a30757 Mon Sep 17 00:00:00 2001 From: mejrs <59372212+mejrs@users.noreply.github.com> Date: Sun, 9 Aug 2026 15:20:29 +0200 Subject: [PATCH] Fix up `lang_items` import paths --- compiler/rustc_ast_lowering/src/contract.rs | 11 +-- .../src/delegation/attributes.rs | 2 +- .../rustc_ast_lowering/src/delegation/mod.rs | 7 +- compiler/rustc_ast_lowering/src/expr.rs | 84 +++++++++---------- compiler/rustc_ast_lowering/src/format.rs | 7 +- compiler/rustc_ast_lowering/src/lib.rs | 27 +++--- compiler/rustc_ast_lowering/src/pat.rs | 9 +- .../src/attributes/rustc_internal.rs | 2 +- .../src/diagnostics/conflict_errors.rs | 5 +- .../rustc_borrowck/src/diagnostics/mod.rs | 3 +- .../src/diagnostics/mutability_errors.rs | 5 +- compiler/rustc_borrowck/src/type_check/mod.rs | 2 +- .../rustc_borrowck/src/universal_regions.rs | 2 +- compiler/rustc_codegen_cranelift/src/base.rs | 15 ++-- .../rustc_codegen_cranelift/src/inline_asm.rs | 2 +- .../rustc_codegen_cranelift/src/main_shim.rs | 2 +- compiler/rustc_codegen_llvm/src/consts.rs | 2 +- compiler/rustc_codegen_ssa/src/base.rs | 2 +- compiler/rustc_codegen_ssa/src/common.rs | 2 +- compiler/rustc_codegen_ssa/src/mir/block.rs | 2 +- compiler/rustc_codegen_ssa/src/mir/operand.rs | 2 +- compiler/rustc_codegen_ssa/src/size_of_val.rs | 2 +- .../src/check_consts/check.rs | 3 +- .../rustc_const_eval/src/check_consts/ops.rs | 3 +- .../src/check_consts/qualifs.rs | 2 +- .../src/const_eval/machine.rs | 3 +- .../src/const_eval/type_info.rs | 2 +- .../rustc_const_eval/src/interpret/intern.rs | 2 +- .../src/util/caller_location.rs | 2 +- .../rustc_data_structures/src/profiling.rs | 29 +++---- compiler/rustc_data_structures/src/sharded.rs | 2 +- compiler/rustc_hir/src/lib.rs | 5 +- .../rustc_hir_analysis/src/check/check.rs | 5 +- .../rustc_hir_analysis/src/check/intrinsic.rs | 8 +- compiler/rustc_hir_analysis/src/check/mod.rs | 2 +- .../rustc_hir_analysis/src/check/wfcheck.rs | 6 +- .../src/coherence/builtin.rs | 2 +- .../src/coherence/builtin/coerce_shared.rs | 2 +- .../rustc_hir_analysis/src/coherence/mod.rs | 2 +- .../src/coherence/unsafety.rs | 3 +- .../src/hir_ty_lowering/bounds.rs | 17 ++-- .../src/hir_ty_lowering/dyn_trait.rs | 3 +- .../src/hir_ty_lowering/mod.rs | 5 +- compiler/rustc_hir_typeck/src/callee.rs | 5 +- compiler/rustc_hir_typeck/src/check.rs | 4 +- compiler/rustc_hir_typeck/src/closure.rs | 8 +- compiler/rustc_hir_typeck/src/coercion.rs | 7 +- compiler/rustc_hir_typeck/src/expr.rs | 2 +- .../rustc_hir_typeck/src/fn_ctxt/_impl.rs | 2 +- .../rustc_hir_typeck/src/fn_ctxt/checks.rs | 9 +- .../src/fn_ctxt/suggestions.rs | 2 +- compiler/rustc_hir_typeck/src/inline_asm.rs | 3 +- .../rustc_hir_typeck/src/method/confirm.rs | 3 +- .../src/method/prelude_edition_lints.rs | 3 +- compiler/rustc_hir_typeck/src/method/probe.rs | 5 +- .../rustc_hir_typeck/src/method/suggest.rs | 6 +- compiler/rustc_hir_typeck/src/pat.rs | 13 +-- compiler/rustc_hir_typeck/src/upvar.rs | 3 +- compiler/rustc_lint/src/builtin.rs | 4 +- compiler/rustc_lint/src/c_void_returns.rs | 3 +- compiler/rustc_lint/src/dangling.rs | 3 +- .../src/deref_into_dyn_supertrait.rs | 3 +- .../src/for_loops_over_fallibles.rs | 3 +- .../src/multiple_supertrait_upcastable.rs | 3 +- compiler/rustc_lint/src/non_fmt_panic.rs | 3 +- compiler/rustc_lint/src/shadowed_into_iter.rs | 3 +- compiler/rustc_lint/src/traits.rs | 3 +- compiler/rustc_lint/src/types.rs | 3 +- compiler/rustc_lint/src/unused.rs | 2 +- compiler/rustc_lint/src/unused/must_use.rs | 3 +- compiler/rustc_metadata/src/rmeta/decoder.rs | 2 +- compiler/rustc_metadata/src/rmeta/mod.rs | 2 +- .../rustc_metadata/src/rmeta/parameterized.rs | 2 +- compiler/rustc_middle/src/hir/mod.rs | 1 + .../rustc_middle/src/middle/lang_items.rs | 2 +- compiler/rustc_middle/src/mir/syntax.rs | 4 +- compiler/rustc_middle/src/mir/terminator.rs | 2 +- compiler/rustc_middle/src/queries.rs | 6 +- compiler/rustc_middle/src/ty/adjustment.rs | 2 +- compiler/rustc_middle/src/ty/adt.rs | 3 +- compiler/rustc_middle/src/ty/consts/lit.rs | 3 +- compiler/rustc_middle/src/ty/context.rs | 8 +- .../src/ty/context/impl_interner.rs | 3 +- compiler/rustc_middle/src/ty/diagnostics.rs | 3 +- compiler/rustc_middle/src/ty/instance.rs | 10 +-- compiler/rustc_middle/src/ty/layout.rs | 2 +- compiler/rustc_middle/src/ty/mod.rs | 3 +- compiler/rustc_middle/src/ty/print/pretty.rs | 2 +- compiler/rustc_middle/src/ty/sty.rs | 4 +- .../src/builder/expr/as_constant.rs | 2 +- .../rustc_mir_build/src/builder/expr/into.rs | 2 +- .../src/builder/matches/mod.rs | 3 +- .../src/builder/matches/test.rs | 3 +- .../rustc_mir_build/src/check_tail_calls.rs | 2 +- .../rustc_mir_build/src/check_unsafety.rs | 3 +- compiler/rustc_mir_build/src/thir/constant.rs | 2 +- compiler/rustc_mir_build/src/thir/cx/expr.rs | 7 +- compiler/rustc_mir_build/src/thir/cx/mod.rs | 2 +- .../src/thir/pattern/const_to_pat.rs | 6 +- .../src/check_alignment.rs | 2 +- .../src/check_call_recursion.rs | 2 +- .../rustc_mir_transform/src/check_enums.rs | 2 +- .../rustc_mir_transform/src/check_null.rs | 2 +- .../rustc_mir_transform/src/check_pointers.rs | 2 +- .../src/coroutine/by_move_body.rs | 2 +- .../src/coroutine/layout.rs | 3 +- .../rustc_mir_transform/src/coroutine/mod.rs | 2 +- .../rustc_mir_transform/src/elaborate_drop.rs | 2 +- compiler/rustc_mir_transform/src/inline.rs | 5 +- .../rustc_mir_transform/src/instsimplify.rs | 3 +- compiler/rustc_mir_transform/src/shim.rs | 2 +- .../src/shim/async_destructor_ctor.rs | 2 +- compiler/rustc_mir_transform/src/sroa.rs | 2 +- compiler/rustc_mir_transform/src/validate.rs | 2 +- compiler/rustc_monomorphize/src/collector.rs | 2 +- compiler/rustc_monomorphize/src/lib.rs | 2 +- .../rustc_monomorphize/src/partitioning.rs | 2 +- compiler/rustc_passes/src/check_attr.rs | 3 +- compiler/rustc_passes/src/diagnostic_items.rs | 2 +- compiler/rustc_passes/src/lang_items.rs | 4 +- compiler/rustc_passes/src/weak_lang_items.rs | 4 +- .../rustc_public_bridge/src/context/impls.rs | 3 +- .../cfi/typeid/itanium_cxx_abi/transform.rs | 3 +- .../rustc_span/src/analyze_source_file.rs | 2 +- .../error_reporting/infer/note_and_explain.rs | 3 +- .../src/error_reporting/traits/ambiguity.rs | 2 +- .../src/error_reporting/traits/call_kind.rs | 2 +- .../traits/fulfillment_errors.rs | 3 +- .../src/error_reporting/traits/suggestions.rs | 4 +- compiler/rustc_trait_selection/src/infer.rs | 2 +- .../src/solve/delegate.rs | 2 +- .../src/solve/fulfill/derive_errors.rs | 2 +- .../src/traits/dyn_compatibility.rs | 3 +- .../src/traits/effects.rs | 3 +- .../rustc_trait_selection/src/traits/misc.rs | 14 +--- .../src/traits/project.rs | 2 +- .../src/traits/select/candidate_assembly.rs | 2 +- .../src/traits/select/confirmation.rs | 2 +- .../src/traits/select/mod.rs | 3 +- .../rustc_trait_selection/src/traits/util.rs | 2 +- .../rustc_trait_selection/src/traits/wf.rs | 2 +- compiler/rustc_transmute/src/lib.rs | 2 +- compiler/rustc_ty_utils/src/abi.rs | 2 +- compiler/rustc_ty_utils/src/common_traits.rs | 2 +- compiler/rustc_ty_utils/src/instance.rs | 2 +- .../rustc_ty_utils/src/structural_match.rs | 2 +- src/librustdoc/clean/mod.rs | 3 +- src/librustdoc/clean/simplify.rs | 5 +- src/librustdoc/clean/types.rs | 2 +- .../clippy_lints/src/assert_is_empty.rs | 3 +- .../clippy/clippy_lints/src/box_default.rs | 3 +- .../src/cloned_ref_to_slice_refs.rs | 3 +- .../src/collection_is_never_read.rs | 3 +- .../clippy_lints/src/drop_forget_ref.rs | 3 +- .../clippy/clippy_lints/src/format_args.rs | 3 +- .../clippy_lints/src/format_push_string.rs | 3 +- .../clippy_lints/src/from_str_radix_10.rs | 3 +- .../clippy_lints/src/inherent_to_string.rs | 3 +- .../clippy/clippy_lints/src/large_futures.rs | 3 +- .../clippy/clippy_lints/src/lifetimes.rs | 3 +- .../src/loops/char_indices_as_byte_indices.rs | 3 +- .../src/loops/explicit_iter_loop.rs | 4 +- .../src/manual_ignore_case_cmp.rs | 3 +- .../clippy/clippy_lints/src/manual_pop_if.rs | 3 +- .../clippy/clippy_lints/src/manual_retain.rs | 3 +- .../clippy_lints/src/matches/manual_map.rs | 2 +- .../clippy_lints/src/matches/manual_ok_err.rs | 2 +- .../src/matches/manual_unwrap_or.rs | 3 +- .../src/matches/match_str_case_mismatch.rs | 3 +- .../src/matches/redundant_pattern_match.rs | 4 +- .../clippy_lints/src/matches/try_err.rs | 5 +- .../src/methods/bind_instead_of_map.rs | 3 +- .../src/methods/bytes_count_to_len.rs | 3 +- .../clippy_lints/src/methods/bytes_nth.rs | 3 +- ...se_sensitive_file_extension_comparisons.rs | 3 +- .../src/methods/clear_with_drain.rs | 3 +- .../clippy_lints/src/methods/clone_on_copy.rs | 3 +- .../src/methods/expect_fun_call.rs | 6 +- .../src/methods/extend_with_drain.rs | 3 +- .../src/methods/format_collect.rs | 3 +- .../src/methods/inefficient_to_string.rs | 3 +- .../clippy_lints/src/methods/iter_nth_zero.rs | 3 +- .../clippy_lints/src/methods/manual_clear.rs | 3 +- .../clippy_lints/src/methods/manual_ok_or.rs | 2 +- .../src/methods/manual_str_repeat.rs | 3 +- .../clippy_lints/src/methods/map_clone.rs | 3 +- .../src/methods/needless_as_bytes.rs | 3 +- .../src/methods/no_effect_replace.rs | 3 +- .../src/methods/option_map_or_none.rs | 2 +- .../src/methods/or_then_unwrap.rs | 2 +- .../clippy_lints/src/methods/repeat_once.rs | 3 +- .../src/methods/result_map_or_else_none.rs | 2 +- .../src/methods/search_is_some.rs | 3 +- .../src/methods/sliced_string_as_bytes.rs | 3 +- .../clippy_lints/src/methods/str_splitn.rs | 5 +- .../src/methods/string_extend_chars.rs | 5 +- .../src/methods/unnecessary_join.rs | 3 +- .../src/methods/unnecessary_to_owned.rs | 3 +- .../clippy_lints/src/methods/useless_asref.rs | 3 +- .../src/missing_fields_in_debug.rs | 3 +- .../src/needless_pass_by_value.rs | 5 +- .../src/needless_question_mark.rs | 3 +- .../clippy_lints/src/non_canonical_impls.rs | 3 +- .../src/nonnull_unchecked_on_box_ptr.rs | 3 +- .../clippy_lints/src/option_if_let_else.rs | 2 +- .../clippy_lints/src/pub_underscore_fields.rs | 3 +- .../clippy/clippy_lints/src/question_mark.rs | 2 +- src/tools/clippy/clippy_lints/src/ranges.rs | 3 +- .../clippy_lints/src/redundant_clone.rs | 3 +- .../clippy_lints/src/redundant_slicing.rs | 3 +- .../clippy/clippy_lints/src/replace_box.rs | 3 +- .../src/returns/needless_return.rs | 3 +- .../needless_return_with_question_mark.rs | 2 +- .../src/same_length_and_capacity.rs | 3 +- src/tools/clippy/clippy_lints/src/strings.rs | 3 +- .../clippy_lints/src/strlen_on_c_strings.rs | 3 +- .../clippy/clippy_lints/src/trait_bounds.rs | 5 +- .../clippy_lints/src/types/owned_cow.rs | 3 +- .../clippy/clippy_lints/src/types/vec_box.rs | 3 +- .../src/unnecessary_owned_empty_strings.rs | 3 +- .../clippy_lints/src/unnecessary_wraps.rs | 2 +- .../clippy_lints/src/unused_io_amount.rs | 9 +- .../clippy_lints/src/useless_conversion.rs | 3 +- .../clippy_lints/src/with_capacity_zero.rs | 3 +- src/tools/clippy/clippy_utils/src/higher.rs | 21 ++--- src/tools/clippy/clippy_utils/src/lib.rs | 9 +- .../clippy_utils/src/qualify_min_const_fn.rs | 2 +- src/tools/clippy/clippy_utils/src/res.rs | 3 +- src/tools/clippy/clippy_utils/src/ty/mod.rs | 3 +- tests/ui-fulldeps/polymorphic-drop-glue.rs | 2 +- 230 files changed, 513 insertions(+), 410 deletions(-) diff --git a/compiler/rustc_ast_lowering/src/contract.rs b/compiler/rustc_ast_lowering/src/contract.rs index 4b2ee21ca5980..c06dbc0fe1ed2 100644 --- a/compiler/rustc_ast_lowering/src/contract.rs +++ b/compiler/rustc_ast_lowering/src/contract.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use rustc_hir::attrs::lang_items::LangItem; use thin_vec::thin_vec; use crate::LoweringContext; @@ -146,7 +147,7 @@ impl<'hir> LoweringContext<'_, 'hir> { ); let precond = self.expr_call_lang_item_fn_mut( req_span, - rustc_hir::LangItem::ContractCheckRequires, + LangItem::ContractCheckRequires, &*arena_vec![self; lowered_req], ); self.stmt_expr(req.span, precond) @@ -165,7 +166,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let lowered_ens = self.lower_expr_mut(&ens); self.expr_call_lang_item_fn( ens_span, - rustc_hir::LangItem::ContractBuildCheckEnsures, + LangItem::ContractBuildCheckEnsures, &*arena_vec![self; lowered_ens], ) } @@ -208,7 +209,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let postcond_checker = self.arena.alloc(self.expr_enum_variant_lang_item( postcond_checker.span, - rustc_hir::lang_items::LangItem::OptionSome, + rustc_hir::attrs::lang_items::LangItem::OptionSome, &*arena_vec![self; *postcond_checker], )); let then_block_stmts = self.block_all(span, stmts, Some(postcond_checker)); @@ -216,7 +217,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let none_expr = self.arena.alloc(self.expr_enum_variant_lang_item( postcond_checker.span, - rustc_hir::lang_items::LangItem::OptionNone, + rustc_hir::attrs::lang_items::LangItem::OptionNone, Default::default(), )); let else_block = self.block_expr(none_expr); @@ -326,7 +327,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let cond_fn = self.expr_ident(span, cond_ident, cond_hir_id); let contract_check = self.expr_call_lang_item_fn_mut( span, - rustc_hir::LangItem::ContractCheckEnsures, + LangItem::ContractCheckEnsures, arena_vec![self; *cond_fn, *ret], ); let contract_check = self.arena.alloc(contract_check); diff --git a/compiler/rustc_ast_lowering/src/delegation/attributes.rs b/compiler/rustc_ast_lowering/src/delegation/attributes.rs index 88bd03389c14c..885ee0d51c730 100644 --- a/compiler/rustc_ast_lowering/src/delegation/attributes.rs +++ b/compiler/rustc_ast_lowering/src/delegation/attributes.rs @@ -1,5 +1,5 @@ +use rustc_hir as hir; use rustc_hir::attrs::{AttributeKind, InlineAttr}; -use rustc_hir::{self as hir}; use rustc_span::Span; use rustc_span::def_id::DefId; diff --git a/compiler/rustc_ast_lowering/src/delegation/mod.rs b/compiler/rustc_ast_lowering/src/delegation/mod.rs index 02fd6de314d3a..3b9074e67bdd2 100644 --- a/compiler/rustc_ast_lowering/src/delegation/mod.rs +++ b/compiler/rustc_ast_lowering/src/delegation/mod.rs @@ -45,6 +45,7 @@ use hir::def::Res; use rustc_abi::ExternAbi; use rustc_ast as ast; use rustc_ast::*; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::{self as hir, FnDeclFlags}; use rustc_middle::ty::Asyncness; @@ -341,8 +342,8 @@ impl<'hir> LoweringContext<'_, 'hir> { crate::re_lowering::ReloweringChecker::allow_relowering(self, |this| { this.lower_block_noalloc(HirId::INVALID, block, false) }) - }, - _ => self.lower_block_noalloc(HirId::INVALID, block, false) + } + _ => self.lower_block_noalloc(HirId::INVALID, block, false), }; // Remove node ids for which we overwrote resolution to generated param @@ -456,7 +457,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let expr = self.mk_expr(initializer, span); - let path = self.make_lang_item_qpath(hir::LangItem::FromFn, span, None); + let path = self.make_lang_item_qpath(LangItem::FromFn, span, None); let path = self.arena.alloc(self.mk_expr(hir::ExprKind::Path(path), span)); let call = hir::ExprKind::Call(path, self.arena.alloc_slice(&[expr])); diff --git a/compiler/rustc_ast_lowering/src/expr.rs b/compiler/rustc_ast_lowering/src/expr.rs index 06673379a5e9f..b173130d2cc98 100644 --- a/compiler/rustc_ast_lowering/src/expr.rs +++ b/compiler/rustc_ast_lowering/src/expr.rs @@ -7,6 +7,7 @@ use rustc_ast::*; use rustc_data_structures::stack::ensure_sufficient_stack; use rustc_errors::msg; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::{HirId, Target, find_attr}; use rustc_middle::span_bug; @@ -717,7 +718,7 @@ impl<'hir> LoweringContext<'_, 'hir> { // `::std::ops::Try::from_output($tail_expr)` block.expr = Some(this.wrap_in_try_constructor( - hir::LangItem::TryTraitFromOutput, + LangItem::TryTraitFromOutput, try_span, tail_expr, ok_wrapped_span, @@ -737,7 +738,7 @@ impl<'hir> LoweringContext<'_, 'hir> { fn wrap_in_try_constructor( &mut self, - lang_item: hir::LangItem, + lang_item: LangItem, method_span: Span, expr: &'hir hir::Expr<'hir>, overall_span: Span, @@ -836,8 +837,7 @@ impl<'hir> LoweringContext<'_, 'hir> { self.lower_span(span), Some(Arc::clone(&self.allow_gen_future)), ); - let resume_ty = - self.make_lang_item_qpath(hir::LangItem::ResumeTy, unstable_span, None); + let resume_ty = self.make_lang_item_qpath(LangItem::ResumeTy, unstable_span, None); let input_ty = hir::Ty { hir_id: self.next_id(), kind: hir::TyKind::Path(resume_ty), @@ -1036,23 +1036,23 @@ impl<'hir> LoweringContext<'_, 'hir> { let new_unchecked = self.expr_call_lang_item_fn_mut( span, - hir::LangItem::PinNewUnchecked, + LangItem::PinNewUnchecked, arena_vec![self; ref_mut_awaitee], ); let get_context = self.expr_call_lang_item_fn_mut( gen_future_span, - hir::LangItem::GetContext, + LangItem::GetContext, arena_vec![self; task_context], ); let call = match await_kind { FutureKind::Future => self.expr_call_lang_item_fn( span, - hir::LangItem::FuturePoll, + LangItem::FuturePoll, arena_vec![self; new_unchecked, get_context], ), FutureKind::AsyncIterator => self.expr_call_lang_item_fn( span, - hir::LangItem::AsyncIteratorPollNext, + LangItem::AsyncIteratorPollNext, arena_vec![self; new_unchecked, get_context], ), }; @@ -1067,7 +1067,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let (x_pat, x_pat_hid) = self.pat_ident(gen_future_span, x_ident); let x_expr = self.expr_ident(gen_future_span, x_ident, x_pat_hid); let ready_field = self.single_pat_field(gen_future_span, x_pat); - let ready_pat = self.pat_lang_item_variant(span, hir::LangItem::PollReady, ready_field); + let ready_pat = self.pat_lang_item_variant(span, LangItem::PollReady, ready_field); let break_x = self.with_loop_scope(loop_hir_id, move |this| { let expr_break = hir::ExprKind::Break(this.lower_loop_destination(None), Some(x_expr)); @@ -1078,7 +1078,7 @@ impl<'hir> LoweringContext<'_, 'hir> { // `::std::task::Poll::Pending => {}` let pending_arm = { - let pending_pat = self.pat_lang_item_variant(span, hir::LangItem::PollPending, &[]); + let pending_pat = self.pat_lang_item_variant(span, LangItem::PollPending, &[]); let empty_block = self.expr_block_empty(span); self.arm(pending_pat, empty_block, span) }; @@ -1098,7 +1098,7 @@ impl<'hir> LoweringContext<'_, 'hir> { // async gen - task_context = yield ASYNC_GEN_PENDING; let yield_stmt = { let yielded = if is_async_gen { - self.arena.alloc(self.expr_lang_item_path(span, hir::LangItem::AsyncGenPending)) + self.arena.alloc(self.expr_lang_item_path(span, LangItem::AsyncGenPending)) } else { self.expr_unit(span) }; @@ -1140,7 +1140,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let into_future_expr = match await_kind { FutureKind::Future => self.expr_call_lang_item_fn( span, - hir::LangItem::IntoFutureIntoFuture, + LangItem::IntoFutureIntoFuture, arena_vec![self; *expr], ), // Not needed for `for await` because we expect to have already called @@ -1444,7 +1444,7 @@ impl<'hir> LoweringContext<'_, 'hir> { fn lower_expr_range_closed(&mut self, span: Span, e1: &Expr, e2: &Expr) -> hir::ExprKind<'hir> { let e1 = self.lower_expr_mut(e1); let e2 = self.lower_expr_mut(e2); - let fn_path = self.make_lang_item_qpath(hir::LangItem::RangeInclusiveNew, span, None); + let fn_path = self.make_lang_item_qpath(LangItem::RangeInclusiveNew, span, None); let fn_expr = self.arena.alloc(self.expr(span, hir::ExprKind::Path(fn_path))); hir::ExprKind::Call(fn_expr, arena_vec![self; e1, e2]) } @@ -1459,32 +1459,32 @@ impl<'hir> LoweringContext<'_, 'hir> { use rustc_ast::RangeLimits::*; let lang_item = match (e1, e2, lims) { - (None, None, HalfOpen) => hir::LangItem::RangeFull, + (None, None, HalfOpen) => LangItem::RangeFull, (Some(..), None, HalfOpen) => { if self.tcx.features().new_range() { - hir::LangItem::RangeFromCopy + LangItem::RangeFromCopy } else { - hir::LangItem::RangeFrom + LangItem::RangeFrom } } - (None, Some(..), HalfOpen) => hir::LangItem::RangeTo, + (None, Some(..), HalfOpen) => LangItem::RangeTo, (Some(..), Some(..), HalfOpen) => { if self.tcx.features().new_range() { - hir::LangItem::RangeCopy + LangItem::RangeCopy } else { - hir::LangItem::Range + LangItem::Range } } (None, Some(..), Closed) => { if self.tcx.features().new_range() { - hir::LangItem::RangeToInclusiveCopy + LangItem::RangeToInclusiveCopy } else { - hir::LangItem::RangeToInclusive + LangItem::RangeToInclusive } } (Some(e1), Some(e2), Closed) => { if self.tcx.features().new_range() { - hir::LangItem::RangeInclusiveCopy + LangItem::RangeInclusiveCopy } else { return self.lower_expr_range_closed(span, e1, e2); } @@ -1494,12 +1494,12 @@ impl<'hir> LoweringContext<'_, 'hir> { match start { Some(..) => { if self.tcx.features().new_range() { - hir::LangItem::RangeFromCopy + LangItem::RangeFromCopy } else { - hir::LangItem::RangeFrom + LangItem::RangeFrom } } - None => hir::LangItem::RangeFull, + None => LangItem::RangeFull, } } }; @@ -1511,7 +1511,7 @@ impl<'hir> LoweringContext<'_, 'hir> { ( if matches!( lang_item, - hir::LangItem::RangeInclusiveCopy | hir::LangItem::RangeToInclusiveCopy + LangItem::RangeInclusiveCopy | LangItem::RangeToInclusiveCopy ) { sym::last } else { @@ -1691,7 +1691,7 @@ impl<'hir> LoweringContext<'_, 'hir> { ); let wrapped_yielded = self.expr_call_lang_item_fn( desugar_span, - hir::LangItem::AsyncGenReady, + LangItem::AsyncGenReady, std::slice::from_ref(yielded), ); let yield_expr = self.arena.alloc( @@ -1781,7 +1781,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let ref_mut_iter = self.expr_mut_addr_of(head_span, iter); self.expr_call_lang_item_fn( head_span, - hir::LangItem::IteratorNext, + LangItem::IteratorNext, arena_vec![self; ref_mut_iter], ) } @@ -1796,7 +1796,7 @@ impl<'hir> LoweringContext<'_, 'hir> { // `Pin::new_unchecked(...)` let iter = self.arena.alloc(self.expr_call_lang_item_fn_mut( head_span, - hir::LangItem::PinNewUnchecked, + LangItem::PinNewUnchecked, arena_vec![self; iter], )); // `unsafe { ... }` @@ -1831,7 +1831,7 @@ impl<'hir> LoweringContext<'_, 'hir> { // `::std::iter::IntoIterator::into_iter()` let into_iter_expr = self.expr_call_lang_item_fn( head_span, - hir::LangItem::IntoIterIntoIter, + LangItem::IntoIterIntoIter, arena_vec![self; head], ); @@ -1851,7 +1851,7 @@ impl<'hir> LoweringContext<'_, 'hir> { // `Pin::new_unchecked(...)` let iter = self.arena.alloc(self.expr_call_lang_item_fn_mut( head_span, - hir::LangItem::PinNewUnchecked, + LangItem::PinNewUnchecked, arena_vec![self; iter], )); // `unsafe { ... }` @@ -1866,7 +1866,7 @@ impl<'hir> LoweringContext<'_, 'hir> { // `::core::async_iter::IntoAsyncIterator::into_async_iter()` let iter = self.expr_call_lang_item_fn( head_span, - hir::LangItem::IntoAsyncIterIntoIter, + LangItem::IntoAsyncIterIntoIter, arena_vec![self; head], ); let iter_arm = self.arm(async_iter_pat, inner_match_expr, for_span); @@ -1922,7 +1922,7 @@ impl<'hir> LoweringContext<'_, 'hir> { self.expr_call_lang_item_fn( unstable_span, - hir::LangItem::TryTraitBranch, + LangItem::TryTraitBranch, arena_vec![self; sub_expr], ) }; @@ -1949,13 +1949,13 @@ impl<'hir> LoweringContext<'_, 'hir> { let (constructor_item, target_id) = match self.try_block_scope { TryBlockScope::Function => { - (hir::LangItem::TryTraitFromResidual, Err(hir::LoopIdError::OutsideLoopScope)) + (LangItem::TryTraitFromResidual, Err(hir::LoopIdError::OutsideLoopScope)) } TryBlockScope::Homogeneous(block_id) => { - (hir::LangItem::ResidualIntoTryType, Ok(block_id)) + (LangItem::ResidualIntoTryType, Ok(block_id)) } TryBlockScope::Heterogeneous(block_id) => { - (hir::LangItem::TryTraitFromResidual, Ok(block_id)) + (LangItem::TryTraitFromResidual, Ok(block_id)) } }; let from_residual_expr = self.wrap_in_try_constructor( @@ -2013,7 +2013,7 @@ impl<'hir> LoweringContext<'_, 'hir> { ); let from_yeet_expr = self.wrap_in_try_constructor( - hir::LangItem::TryTraitFromYeet, + LangItem::TryTraitFromYeet, unstable_span, yeeted_expr, yeeted_span, @@ -2140,7 +2140,7 @@ impl<'hir> LoweringContext<'_, 'hir> { pub(super) fn expr_enum_variant_lang_item( &mut self, span: Span, - lang_item: hir::LangItem, + lang_item: LangItem, fields: &'hir [hir::Expr<'hir>], ) -> hir::Expr<'hir> { let path = self.arena.alloc(self.make_lang_item_qpath(lang_item, span, None)); @@ -2159,7 +2159,7 @@ impl<'hir> LoweringContext<'_, 'hir> { pub(super) fn expr_call_lang_item_fn_mut( &mut self, span: Span, - lang_item: hir::LangItem, + lang_item: LangItem, args: &'hir [hir::Expr<'hir>], ) -> hir::Expr<'hir> { let path = self.arena.alloc(self.expr_lang_item_path(span, lang_item)); @@ -2169,7 +2169,7 @@ impl<'hir> LoweringContext<'_, 'hir> { pub(super) fn expr_call_lang_item_fn( &mut self, span: Span, - lang_item: hir::LangItem, + lang_item: LangItem, args: &'hir [hir::Expr<'hir>], ) -> &'hir hir::Expr<'hir> { self.arena.alloc(self.expr_call_lang_item_fn_mut(span, lang_item, args)) @@ -2178,7 +2178,7 @@ impl<'hir> LoweringContext<'_, 'hir> { pub(super) fn expr_lang_item_path( &mut self, span: Span, - lang_item: hir::LangItem, + lang_item: LangItem, ) -> hir::Expr<'hir> { let qpath = self.make_lang_item_qpath(lang_item, self.lower_span(span), None); self.expr(span, hir::ExprKind::Path(qpath)) @@ -2188,7 +2188,7 @@ impl<'hir> LoweringContext<'_, 'hir> { pub(super) fn expr_lang_item_type_relative( &mut self, span: Span, - lang_item: hir::LangItem, + lang_item: LangItem, name: Symbol, ) -> hir::Expr<'hir> { let qpath = self.make_lang_item_qpath(lang_item, self.lower_span(span), None); diff --git a/compiler/rustc_ast_lowering/src/format.rs b/compiler/rustc_ast_lowering/src/format.rs index 602635af1324e..b9974edea71a4 100644 --- a/compiler/rustc_ast_lowering/src/format.rs +++ b/compiler/rustc_ast_lowering/src/format.rs @@ -3,6 +3,7 @@ use std::borrow::Cow; use rustc_ast::*; use rustc_data_structures::fx::FxIndexMap; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_session::config::FmtDebug; use rustc_span::{ByteSymbol, DesugaringKind, Ident, Span, Symbol, sym}; @@ -239,7 +240,7 @@ fn make_argument<'hir>( use FormatTrait::*; let new_fn = ctx.arena.alloc(ctx.expr_lang_item_type_relative( sp, - hir::LangItem::FormatArgument, + LangItem::FormatArgument, match ty { Format(Display) => sym::new_display, Format(Debug) => match ctx.tcx.sess.opts.unstable_opts.fmt_debug { @@ -331,7 +332,7 @@ fn expand_format_args<'hir>( // ::from_str("meow") let from_str = ctx.arena.alloc(ctx.expr_lang_item_type_relative( macsp, - hir::LangItem::FormatArguments, + LangItem::FormatArguments, if allow_const { sym::from_str } else { sym::from_str_nonconst }, )); let sym = if incomplete_lit.is_empty() { sym } else { Symbol::intern(s) }; @@ -501,7 +502,7 @@ fn expand_format_args<'hir>( let call = { let new = ctx.arena.alloc(ctx.expr_lang_item_type_relative( macsp, - hir::LangItem::FormatArguments, + LangItem::FormatArguments, sym::new, )); let args = ctx.expr_ref(macsp, args); diff --git a/compiler/rustc_ast_lowering/src/lib.rs b/compiler/rustc_ast_lowering/src/lib.rs index 7784fc17828aa..474a2a1d6adc2 100644 --- a/compiler/rustc_ast_lowering/src/lib.rs +++ b/compiler/rustc_ast_lowering/src/lib.rs @@ -54,6 +54,7 @@ use rustc_data_structures::tagged_ptr::TaggedRef; use rustc_data_structures::unord::ExtendUnord; use rustc_errors::codes::*; use rustc_errors::{DiagArgFromDisplay, DiagCtxtHandle, ErrorGuaranteed}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, LifetimeRes, Namespace, PartialRes, PerNS, Res}; use rustc_hir::def_id::{DefId, LOCAL_CRATE, LocalDefId, LocalDefIdMap}; use rustc_hir::definitions::PerParentDisambiguatorState; @@ -104,7 +105,7 @@ pub fn provide(providers: &mut Providers) { pub(crate) mod re_lowering { use rustc_ast::NodeId; use rustc_ast::node_id::NodeMap; - use rustc_hir::{self as hir}; + use rustc_hir as hir; use crate::LoweringContext; @@ -1012,7 +1013,7 @@ impl<'hir> LoweringContext<'_, 'hir> { fn make_lang_item_qpath( &mut self, - lang_item: hir::LangItem, + lang_item: LangItem, span: Span, args: Option<&'hir hir::GenericArgs<'hir>>, ) -> hir::QPath<'hir> { @@ -1021,7 +1022,7 @@ impl<'hir> LoweringContext<'_, 'hir> { fn make_lang_item_path( &mut self, - lang_item: hir::LangItem, + lang_item: LangItem, span: Span, args: Option<&'hir hir::GenericArgs<'hir>>, ) -> &'hir hir::Path<'hir> { @@ -1584,7 +1585,7 @@ impl<'hir> LoweringContext<'_, 'hir> { parenthesized: hir::GenericArgsParentheses::No, span_ext: span, }); - let path = self.make_lang_item_qpath(hir::LangItem::Pin, span, Some(args)); + let path = self.make_lang_item_qpath(LangItem::Pin, span, Some(args)); hir::TyKind::Path(path) } TyKind::FnPtr(f) => { @@ -2135,9 +2136,9 @@ impl<'hir> LoweringContext<'_, 'hir> { // "<$assoc_ty_name = T>" let (assoc_ty_name, trait_lang_item) = match coro { - CoroutineKind::Async { .. } => (sym::Output, hir::LangItem::Future), - CoroutineKind::Gen { .. } => (sym::Item, hir::LangItem::Iterator), - CoroutineKind::AsyncGen { .. } => (sym::Item, hir::LangItem::AsyncIterator), + CoroutineKind::Async { .. } => (sym::Output, LangItem::Future), + CoroutineKind::Gen { .. } => (sym::Item, LangItem::Iterator), + CoroutineKind::AsyncGen { .. } => (sym::Item, LangItem::AsyncIterator), }; let bound_args = self.arena.alloc(hir::GenericArgs { @@ -2459,7 +2460,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let extended = self.tcx.features().more_maybe_bounds(); let is_sized = trait_ref .trait_def_id() - .is_some_and(|def_id| self.tcx.is_lang_item(def_id, hir::LangItem::Sized)); + .is_some_and(|def_id| self.tcx.is_lang_item(def_id, LangItem::Sized)); if extended && !is_sized { return; @@ -3127,21 +3128,21 @@ impl<'hir> LoweringContext<'_, 'hir> { fn pat_cf_continue(&mut self, span: Span, pat: &'hir hir::Pat<'hir>) -> &'hir hir::Pat<'hir> { let field = self.single_pat_field(span, pat); - self.pat_lang_item_variant(span, hir::LangItem::ControlFlowContinue, field) + self.pat_lang_item_variant(span, LangItem::ControlFlowContinue, field) } fn pat_cf_break(&mut self, span: Span, pat: &'hir hir::Pat<'hir>) -> &'hir hir::Pat<'hir> { let field = self.single_pat_field(span, pat); - self.pat_lang_item_variant(span, hir::LangItem::ControlFlowBreak, field) + self.pat_lang_item_variant(span, LangItem::ControlFlowBreak, field) } fn pat_some(&mut self, span: Span, pat: &'hir hir::Pat<'hir>) -> &'hir hir::Pat<'hir> { let field = self.single_pat_field(span, pat); - self.pat_lang_item_variant(span, hir::LangItem::OptionSome, field) + self.pat_lang_item_variant(span, LangItem::OptionSome, field) } fn pat_none(&mut self, span: Span) -> &'hir hir::Pat<'hir> { - self.pat_lang_item_variant(span, hir::LangItem::OptionNone, &[]) + self.pat_lang_item_variant(span, LangItem::OptionNone, &[]) } fn single_pat_field( @@ -3162,7 +3163,7 @@ impl<'hir> LoweringContext<'_, 'hir> { fn pat_lang_item_variant( &mut self, span: Span, - lang_item: hir::LangItem, + lang_item: LangItem, fields: &'hir [hir::PatField<'hir>], ) -> &'hir hir::Pat<'hir> { let path = self.make_lang_item_qpath(lang_item, self.lower_span(span), None); diff --git a/compiler/rustc_ast_lowering/src/pat.rs b/compiler/rustc_ast_lowering/src/pat.rs index 8780b70fadfa4..e14597c04742a 100644 --- a/compiler/rustc_ast_lowering/src/pat.rs +++ b/compiler/rustc_ast_lowering/src/pat.rs @@ -2,8 +2,9 @@ use std::sync::Arc; use rustc_ast::*; use rustc_data_structures::stack::ensure_sufficient_stack; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; -use rustc_hir::{self as hir, LangItem, Target}; +use rustc_hir::{self as hir, Target}; use rustc_middle::span_bug; use rustc_span::{DesugaringKind, Ident, Span, Spanned, respan}; @@ -454,7 +455,7 @@ impl<'hir> LoweringContext<'_, 'hir> { .map(|e| self.lower_anon_const_to_const_arg_and_alloc(e)) .unwrap_or_else(|| { self.lower_ty_pat_range_end( - hir::LangItem::RangeMin, + LangItem::RangeMin, span.shrink_to_lo(), base_type, ) @@ -466,7 +467,7 @@ impl<'hir> LoweringContext<'_, 'hir> { }) .unwrap_or_else(|| { self.lower_ty_pat_range_end( - hir::LangItem::RangeMax, + LangItem::RangeMax, span.shrink_to_hi(), base_type, ) @@ -499,7 +500,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let body = this.lower_body(|this| { // Need to use a custom function as we can't just subtract `1` from a `char`. let kind = hir::ExprKind::Path(this.make_lang_item_qpath( - hir::LangItem::RangeSub, + LangItem::RangeSub, unstable_span, None, )); diff --git a/compiler/rustc_attr_parsing/src/attributes/rustc_internal.rs b/compiler/rustc_attr_parsing/src/attributes/rustc_internal.rs index 5b7d305ba0d28..10d9858864a3e 100644 --- a/compiler/rustc_attr_parsing/src/attributes/rustc_internal.rs +++ b/compiler/rustc_attr_parsing/src/attributes/rustc_internal.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; use rustc_ast::{LitIntType, LitKind, MetaItemLit}; use rustc_data_structures::fx::FxHashMap; use rustc_feature::AttributeStability; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{ BorrowckGraphvizFormatKind, CguFields, CguKind, DivergingBlockBehavior, DivergingFallbackBehavior, RustcCleanAttribute, RustcCleanQueries, RustcMirKind, diff --git a/compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs b/compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs index d40f611150233..7267ae113de3e 100644 --- a/compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs +++ b/compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs @@ -10,11 +10,10 @@ use rustc_errors::codes::*; use rustc_errors::{Applicability, Diag, MultiSpan, struct_span_code_err}; use rustc_hir as hir; use rustc_hir::attrs::diagnostic::{CustomDiagnostic, FormatArgs}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::intravisit::{Visitor, walk_block, walk_expr}; -use rustc_hir::{ - CoroutineDesugaring, CoroutineKind, CoroutineSource, LangItem, PatField, find_attr, -}; +use rustc_hir::{CoroutineDesugaring, CoroutineKind, CoroutineSource, PatField, find_attr}; use rustc_index::bit_set::DenseBitSet; use rustc_infer::traits::TraitErrors; use rustc_middle::bug; diff --git a/compiler/rustc_borrowck/src/diagnostics/mod.rs b/compiler/rustc_borrowck/src/diagnostics/mod.rs index bde2529d855cf..349337f273aab 100644 --- a/compiler/rustc_borrowck/src/diagnostics/mod.rs +++ b/compiler/rustc_borrowck/src/diagnostics/mod.rs @@ -6,9 +6,10 @@ use rustc_abi::{FieldIdx, VariantIdx}; use rustc_data_structures::fx::FxIndexMap; use rustc_errors::formatting::DiagMessageAddArg; use rustc_errors::{Applicability, Diag, DiagMessage, EmissionGuarantee, MultiSpan, listify, msg}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, Namespace}; use rustc_hir::{ - self as hir, CoroutineKind, GenericBound, LangItem, WhereBoundPredicate, WherePredicateKind, + self as hir, CoroutineKind, GenericBound, WhereBoundPredicate, WherePredicateKind, }; use rustc_index::{IndexSlice, IndexVec}; use rustc_infer::infer::{BoundRegionConversionTime, NllRegionVariableOrigin}; diff --git a/compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs b/compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs index 68e7e3786b33c..49e6dc334ff80 100644 --- a/compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs +++ b/compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs @@ -4,6 +4,7 @@ use either::Either; use hir::{ExprKind, Param}; use rustc_abi::FieldIdx; use rustc_errors::{Applicability, Diag}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_hir::intravisit::Visitor; use rustc_hir::{self as hir, BindingMode, ByRef, Expr, Node}; @@ -1928,11 +1929,11 @@ fn suggest_ampmut<'tcx>( &call.kind && let ty::FnDef(method_def_id, method_args) = *const_operand.ty().kind() && let Some(trait_) = tcx.trait_of_assoc(method_def_id) - && tcx.is_lang_item(trait_, hir::LangItem::Index) + && tcx.is_lang_item(trait_, LangItem::Index) { let trait_ref = ty::TraitRef::from_assoc( tcx, - tcx.require_lang_item(hir::LangItem::IndexMut, rhs_span), + tcx.require_lang_item(LangItem::IndexMut, rhs_span), method_args.no_bound_vars().unwrap(), ); // The type only implements `Index` but not `IndexMut`, we must not suggest `&mut`. diff --git a/compiler/rustc_borrowck/src/type_check/mod.rs b/compiler/rustc_borrowck/src/type_check/mod.rs index 6825c28270c30..776d23c580a54 100644 --- a/compiler/rustc_borrowck/src/type_check/mod.rs +++ b/compiler/rustc_borrowck/src/type_check/mod.rs @@ -8,9 +8,9 @@ use rustc_data_structures::frozen::Frozen; use rustc_data_structures::fx::{FxIndexMap, FxIndexSet}; use rustc_errors::ErrorGuaranteed; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::LocalDefId; -use rustc_hir::lang_items::LangItem; use rustc_index::{IndexSlice, IndexVec}; use rustc_infer::infer::canonical::QueryRegionConstraints; use rustc_infer::infer::outlives::env::RegionBoundPairs; diff --git a/compiler/rustc_borrowck/src/universal_regions.rs b/compiler/rustc_borrowck/src/universal_regions.rs index 3479224cc5546..dd3b615918b72 100644 --- a/compiler/rustc_borrowck/src/universal_regions.rs +++ b/compiler/rustc_borrowck/src/universal_regions.rs @@ -17,9 +17,9 @@ use std::iter; use rustc_data_structures::fx::FxIndexMap; use rustc_errors::Diag; use rustc_hir::BodyOwnerKind; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::lang_items::LangItem; use rustc_index::IndexVec; use rustc_infer::infer::NllRegionVariableOrigin; use rustc_macros::extension; diff --git a/compiler/rustc_codegen_cranelift/src/base.rs b/compiler/rustc_codegen_cranelift/src/base.rs index d57f662fc1938..27bb19c8d53c5 100644 --- a/compiler/rustc_codegen_cranelift/src/base.rs +++ b/compiler/rustc_codegen_cranelift/src/base.rs @@ -8,6 +8,7 @@ use rustc_ast::InlineAsmOptions; use rustc_codegen_ssa::base::is_call_from_compiler_builtins_to_upstream_monomorphization; use rustc_data_structures::profiling::SelfProfilerRef; use rustc_errors::DiagCtxtHandle; +use rustc_hir::attrs::lang_items::LangItem; use rustc_index::IndexVec; use rustc_middle::ty::TypeVisitableExt; use rustc_middle::ty::adjustment::PointerCoercion; @@ -390,7 +391,7 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) { codegen_panic_inner( fx, - rustc_hir::LangItem::PanicBoundsCheck, + LangItem::PanicBoundsCheck, &[index, len, location], *unwind, source_info.span, @@ -403,7 +404,7 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) { codegen_panic_inner( fx, - rustc_hir::LangItem::PanicMisalignedPointerDereference, + LangItem::PanicMisalignedPointerDereference, &[required, found, location], *unwind, source_info.span, @@ -414,7 +415,7 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) { codegen_panic_inner( fx, - rustc_hir::LangItem::PanicNullPointerDereference, + LangItem::PanicNullPointerDereference, &[location], *unwind, source_info.span, @@ -425,7 +426,7 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) { codegen_panic_inner( fx, - rustc_hir::LangItem::PanicNullReferenceConstructed, + LangItem::PanicNullReferenceConstructed, &[location], *unwind, source_info.span, @@ -437,7 +438,7 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) { codegen_panic_inner( fx, - rustc_hir::LangItem::PanicInvalidEnumConstruction, + LangItem::PanicInvalidEnumConstruction, &[source, location], *unwind, source_info.span, @@ -1082,7 +1083,7 @@ pub(crate) fn codegen_panic_nounwind<'tcx>( codegen_panic_inner( fx, - rustc_hir::LangItem::PanicNounwind, + LangItem::PanicNounwind, &args, UnwindAction::Terminate(UnwindTerminateReason::Abi), span, @@ -1099,7 +1100,7 @@ pub(crate) fn codegen_unwind_terminate<'tcx>( fn codegen_panic_inner<'tcx>( fx: &mut FunctionCx<'_, '_, 'tcx>, - lang_item: rustc_hir::LangItem, + lang_item: LangItem, args: &[Value], unwind: UnwindAction, span: Span, diff --git a/compiler/rustc_codegen_cranelift/src/inline_asm.rs b/compiler/rustc_codegen_cranelift/src/inline_asm.rs index 0b8eb75972ec0..1bb33e292c7d9 100644 --- a/compiler/rustc_codegen_cranelift/src/inline_asm.rs +++ b/compiler/rustc_codegen_cranelift/src/inline_asm.rs @@ -5,7 +5,7 @@ use std::fmt::Write; use cranelift_codegen::isa::CallConv; use rustc_abi::CanonAbi; use rustc_ast::ast::{InlineAsmOptions, InlineAsmTemplatePiece}; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty::layout::FnAbiOf; use rustc_span::sym; use rustc_target::asm::*; diff --git a/compiler/rustc_codegen_cranelift/src/main_shim.rs b/compiler/rustc_codegen_cranelift/src/main_shim.rs index 109933f4d8556..b69db582a04ca 100644 --- a/compiler/rustc_codegen_cranelift/src/main_shim.rs +++ b/compiler/rustc_codegen_cranelift/src/main_shim.rs @@ -1,5 +1,5 @@ use cranelift_frontend::{FunctionBuilder, FunctionBuilderContext}; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty::{AssocTag, GenericArg, Unnormalized}; use rustc_session::config::EntryFnType; use rustc_span::{DUMMY_SP, Ident}; diff --git a/compiler/rustc_codegen_llvm/src/consts.rs b/compiler/rustc_codegen_llvm/src/consts.rs index ee752373ceca4..5ecd5c19b6f8e 100644 --- a/compiler/rustc_codegen_llvm/src/consts.rs +++ b/compiler/rustc_codegen_llvm/src/consts.rs @@ -3,8 +3,8 @@ use std::ops::Range; use rustc_abi::{Align, ExternAbi, HasDataLayout, Primitive, Scalar, Size, WrappingRange}; use rustc_codegen_ssa::common; use rustc_codegen_ssa::traits::*; -use rustc_hir::LangItem; use rustc_hir::attrs::Linkage; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::{DefId, LOCAL_CRATE}; use rustc_middle::middle::codegen_fn_attrs::{CodegenFnAttrFlags, CodegenFnAttrs}; diff --git a/compiler/rustc_codegen_ssa/src/base.rs b/compiler/rustc_codegen_ssa/src/base.rs index 40ff5fa58de69..0468e3de18d8b 100644 --- a/compiler/rustc_codegen_ssa/src/base.rs +++ b/compiler/rustc_codegen_ssa/src/base.rs @@ -13,9 +13,9 @@ use rustc_data_structures::fx::{FxHashMap, FxIndexMap, FxIndexSet}; use rustc_data_structures::profiling::{get_resident_set_size, print_time_passes_entry}; use rustc_data_structures::sync::{IntoDynSyncSend, par_map}; use rustc_data_structures::unord::UnordMap; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{DebuggerVisualizerType, EiiDecl, EiiImpl, OptimizeAttr}; use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE}; -use rustc_hir::lang_items::LangItem; use rustc_hir::{ItemId, Target, find_attr}; use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrs; use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerFile; diff --git a/compiler/rustc_codegen_ssa/src/common.rs b/compiler/rustc_codegen_ssa/src/common.rs index 777f3f6b53fd4..e9024b7dbe934 100644 --- a/compiler/rustc_codegen_ssa/src/common.rs +++ b/compiler/rustc_codegen_ssa/src/common.rs @@ -1,7 +1,7 @@ #![allow(non_camel_case_types)] -use rustc_hir::LangItem; use rustc_hir::attrs::PeImportNameType; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::mir::interpret::{GlobalAlloc, PointerArithmetic, Scalar}; use rustc_middle::ty::layout::TyAndLayout; use rustc_middle::ty::{self, Instance, ScalarInt, TyCtxt}; diff --git a/compiler/rustc_codegen_ssa/src/mir/block.rs b/compiler/rustc_codegen_ssa/src/mir/block.rs index aab4259b6b41d..7f907bc630b2f 100644 --- a/compiler/rustc_codegen_ssa/src/mir/block.rs +++ b/compiler/rustc_codegen_ssa/src/mir/block.rs @@ -9,7 +9,7 @@ use rustc_ast as ast; use rustc_ast::{InlineAsmOptions, InlineAsmTemplatePiece}; use rustc_data_structures::packed::Pu128; use rustc_hir::attrs::AttributeKind; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint_defs::builtin::TAIL_CALL_TRACK_CALLER; use rustc_middle::mir::interpret::{CTFE_ALLOC_SALT, Scalar}; use rustc_middle::mir::{self, AssertKind, InlineAsmMacro, SwitchTargets, UnwindTerminateReason}; diff --git a/compiler/rustc_codegen_ssa/src/mir/operand.rs b/compiler/rustc_codegen_ssa/src/mir/operand.rs index 1dbbc3fd28fb9..c1a1b2db6fa9d 100644 --- a/compiler/rustc_codegen_ssa/src/mir/operand.rs +++ b/compiler/rustc_codegen_ssa/src/mir/operand.rs @@ -5,7 +5,7 @@ use rustc_abi as abi; use rustc_abi::{ Align, BackendRepr, FIRST_VARIANT, FieldIdx, Primitive, Size, TagEncoding, VariantIdx, Variants, }; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::mir::interpret::{Pointer, Scalar, alloc_range}; use rustc_middle::mir::{self, ConstValue}; use rustc_middle::ty::layout::{LayoutOf, TyAndLayout}; diff --git a/compiler/rustc_codegen_ssa/src/size_of_val.rs b/compiler/rustc_codegen_ssa/src/size_of_val.rs index 52ffc321cbb6f..3c4369330da59 100644 --- a/compiler/rustc_codegen_ssa/src/size_of_val.rs +++ b/compiler/rustc_codegen_ssa/src/size_of_val.rs @@ -1,7 +1,7 @@ //! Computing the size and alignment of a value. use rustc_abi::{Align, WrappingRange}; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::bug; use rustc_middle::ty::print::{with_no_trimmed_paths, with_no_visible_paths}; use rustc_middle::ty::{self, Ty}; diff --git a/compiler/rustc_const_eval/src/check_consts/check.rs b/compiler/rustc_const_eval/src/check_consts/check.rs index ee2157b5a2b0f..7648bf4eb241d 100644 --- a/compiler/rustc_const_eval/src/check_consts/check.rs +++ b/compiler/rustc_const_eval/src/check_consts/check.rs @@ -6,9 +6,10 @@ use std::ops::Deref; use std::{assert_matches, mem}; use rustc_errors::{Diag, ErrorGuaranteed}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem, find_attr}; +use rustc_hir::{self as hir, find_attr}; use rustc_index::bit_set::DenseBitSet; use rustc_infer::infer::TyCtxtInferExt; use rustc_middle::mir::visit::Visitor; diff --git a/compiler/rustc_const_eval/src/check_consts/ops.rs b/compiler/rustc_const_eval/src/check_consts/ops.rs index 76c0c5f0d3bdf..0ce87d0ddc922 100644 --- a/compiler/rustc_const_eval/src/check_consts/ops.rs +++ b/compiler/rustc_const_eval/src/check_consts/ops.rs @@ -1,9 +1,10 @@ //! Concrete error types for all operations which may be invalid in a certain const context. -use hir::{ConstContext, LangItem}; +use hir::ConstContext; use rustc_errors::codes::*; use rustc_errors::{Applicability, Diag, MultiSpan, msg}; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_infer::infer::TyCtxtInferExt; use rustc_infer::traits::{ImplSource, Obligation, ObligationCause}; diff --git a/compiler/rustc_const_eval/src/check_consts/qualifs.rs b/compiler/rustc_const_eval/src/check_consts/qualifs.rs index fa54d1ed4e562..b2b8a567860e0 100644 --- a/compiler/rustc_const_eval/src/check_consts/qualifs.rs +++ b/compiler/rustc_const_eval/src/check_consts/qualifs.rs @@ -6,7 +6,7 @@ // having basically only two use-cases that act in different ways. use rustc_errors::ErrorGuaranteed; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::TyCtxtInferExt; use rustc_middle::mir::*; use rustc_middle::ty::{self, AdtDef, Ty, TypingMode}; diff --git a/compiler/rustc_const_eval/src/const_eval/machine.rs b/compiler/rustc_const_eval/src/const_eval/machine.rs index 3f52fbecb0950..6f4919cbe507f 100644 --- a/compiler/rustc_const_eval/src/const_eval/machine.rs +++ b/compiler/rustc_const_eval/src/const_eval/machine.rs @@ -5,8 +5,9 @@ use std::{fmt, mem}; use rustc_abi::{Align, FIRST_VARIANT, FieldIdx, Size, VariantIdx}; use rustc_ast::Mutability; use rustc_data_structures::fx::{FxHashMap, FxIndexMap, IndexEntry}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::{self as hir, CRATE_HIR_ID, LangItem, find_attr}; +use rustc_hir::{self as hir, CRATE_HIR_ID, find_attr}; use rustc_middle::mir::AssertMessage; use rustc_middle::mir::interpret::ReportedErrorInfo; use rustc_middle::query::TyCtxtAt; diff --git a/compiler/rustc_const_eval/src/const_eval/type_info.rs b/compiler/rustc_const_eval/src/const_eval/type_info.rs index 7c0fef3734975..d77e43b9858af 100644 --- a/compiler/rustc_const_eval/src/const_eval/type_info.rs +++ b/compiler/rustc_const_eval/src/const_eval/type_info.rs @@ -4,7 +4,7 @@ use std::borrow::Cow; use rustc_abi::{ExternAbi, FieldIdx}; use rustc_ast::Mutability; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::span_bug; use rustc_middle::ty::layout::TyAndLayout; use rustc_middle::ty::{self, Const, FnHeader, FnSigKind, FnSigTys, ScalarInt, Ty, TyCtxt}; diff --git a/compiler/rustc_const_eval/src/interpret/intern.rs b/compiler/rustc_const_eval/src/interpret/intern.rs index ecc00547e4599..49152f4c40ae2 100644 --- a/compiler/rustc_const_eval/src/interpret/intern.rs +++ b/compiler/rustc_const_eval/src/interpret/intern.rs @@ -16,8 +16,8 @@ use hir::def::DefKind; use rustc_ast::Mutability; use rustc_data_structures::fx::{FxHashSet, FxIndexMap}; +use rustc_hir as hir; use rustc_hir::definitions::{DefPathData, PerParentDisambiguatorState}; -use rustc_hir::{self as hir}; use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrs; use rustc_middle::mir::interpret::{ AllocBytes, ConstAllocation, CtfeProvenance, InterpResult, Provenance, diff --git a/compiler/rustc_const_eval/src/util/caller_location.rs b/compiler/rustc_const_eval/src/util/caller_location.rs index 18464df1e03f1..09d613bc7841a 100644 --- a/compiler/rustc_const_eval/src/util/caller_location.rs +++ b/compiler/rustc_const_eval/src/util/caller_location.rs @@ -1,5 +1,5 @@ use rustc_abi::FieldIdx; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty::{self, TyCtxt}; use rustc_middle::{bug, mir}; use rustc_span::Symbol; diff --git a/compiler/rustc_data_structures/src/profiling.rs b/compiler/rustc_data_structures/src/profiling.rs index cab57edb89461..00fb424cadfd1 100644 --- a/compiler/rustc_data_structures/src/profiling.rs +++ b/compiler/rustc_data_structures/src/profiling.rs @@ -955,30 +955,25 @@ fn get_thread_id() -> u32 { cfg_select! { windows => { pub fn get_resident_set_size() -> Option { - use windows::{ - Win32::System::ProcessStatus::{K32GetProcessMemoryInfo, PROCESS_MEMORY_COUNTERS}, - Win32::System::Threading::GetCurrentProcess, + use windows::Win32::System::ProcessStatus::{ + K32GetProcessMemoryInfo, PROCESS_MEMORY_COUNTERS, }; + use windows::Win32::System::Threading::GetCurrentProcess; let mut pmc = PROCESS_MEMORY_COUNTERS::default(); let pmc_size = size_of_val(&pmc); - unsafe { - K32GetProcessMemoryInfo( - GetCurrentProcess(), - &mut pmc, - pmc_size as u32, - ) - } - .ok() - .ok()?; + unsafe { K32GetProcessMemoryInfo(GetCurrentProcess(), &mut pmc, pmc_size as u32) } + .ok() + .ok()?; Some(pmc.WorkingSetSize) } } target_os = "macos" => { pub fn get_resident_set_size() -> Option { - use libc::{c_int, c_void, getpid, proc_pidinfo, proc_taskinfo, PROC_PIDTASKINFO}; use std::mem; + + use libc::{PROC_PIDTASKINFO, c_int, c_void, getpid, proc_pidinfo, proc_taskinfo}; const PROC_TASKINFO_SIZE: c_int = size_of::() as c_int; unsafe { @@ -986,17 +981,13 @@ cfg_select! { let info_ptr = &mut info as *mut proc_taskinfo as *mut c_void; let pid = getpid() as c_int; let ret = proc_pidinfo(pid, PROC_PIDTASKINFO, 0, info_ptr, PROC_TASKINFO_SIZE); - if ret == PROC_TASKINFO_SIZE { - Some(info.pti_resident_size as usize) - } else { - None - } + if ret == PROC_TASKINFO_SIZE { Some(info.pti_resident_size as usize) } else { None } } } } unix => { pub fn get_resident_set_size() -> Option { - use libc::{sysconf, _SC_PAGESIZE}; + use libc::{_SC_PAGESIZE, sysconf}; let field = 1; let contents = fs::read("/proc/self/statm").ok()?; let contents = String::from_utf8(contents).ok()?; diff --git a/compiler/rustc_data_structures/src/sharded.rs b/compiler/rustc_data_structures/src/sharded.rs index 7be6b8dc41d9a..adb4516e7a54d 100644 --- a/compiler/rustc_data_structures/src/sharded.rs +++ b/compiler/rustc_data_structures/src/sharded.rs @@ -201,7 +201,7 @@ impl ShardedHashMap { Entry::Vacant(e) => { e.insert((key, value)); } - } + }, _ => { shard.insert_unique(hash, (key, value), |(k, _)| make_hash(k)); } diff --git a/compiler/rustc_hir/src/lib.rs b/compiler/rustc_hir/src/lib.rs index b073ed4d8ed12..3885e28133087 100644 --- a/compiler/rustc_hir/src/lib.rs +++ b/compiler/rustc_hir/src/lib.rs @@ -39,10 +39,9 @@ pub use { attrs::target::{self, MethodKind, Target}, attrs::{ AttrArgs, AttrItem, AttrPath, Attribute, ConstStability, DefaultBodyStability, - HashIgnoredAttrId, LangItem, LanguageItems, PartialConstStability, Stability, - StabilityLevel, StableSince, UnstableReason, VERSION_PLACEHOLDER, + HashIgnoredAttrId, PartialConstStability, Stability, StabilityLevel, StableSince, + UnstableReason, VERSION_PLACEHOLDER, }, - attrs::{diagnostic_items, lang_items, weak_lang_items}, }; pub use crate::arena::Arena; diff --git a/compiler/rustc_hir_analysis/src/check/check.rs b/compiler/rustc_hir_analysis/src/check/check.rs index f7d6af3c65dda..d98125f7cd9f9 100644 --- a/compiler/rustc_hir_analysis/src/check/check.rs +++ b/compiler/rustc_hir_analysis/src/check/check.rs @@ -7,8 +7,9 @@ use rustc_errors::codes::*; use rustc_errors::{Diag, DiagCtxtHandle, Diagnostic, EmissionGuarantee, Level, MultiSpan}; use rustc_hir as hir; use rustc_hir::attrs::ReprAttr::ReprPacked; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind}; -use rustc_hir::{LangItem, Node, find_attr, intravisit}; +use rustc_hir::{Node, find_attr, intravisit}; use rustc_infer::infer::{RegionVariableOrigin, TyCtxtInferExt}; use rustc_infer::traits::{Obligation, ObligationCauseCode, TraitErrors, WellFormedLoc}; use rustc_lint_defs::builtin::UNSUPPORTED_CALLING_CONVENTIONS; @@ -1377,7 +1378,7 @@ fn check_impl_items_against_trait<'tcx>( // instead of `Drop::drop` is unstable that might be confusing. EvalResult::Deny { .. } if !tcx.features().pin_ergonomics() - && tcx.is_lang_item(trait_ref.def_id, hir::LangItem::Drop) + && tcx.is_lang_item(trait_ref.def_id, LangItem::Drop) && tcx.item_name(trait_item_id) == sym::drop => { missing_items.push(tcx.associated_item(trait_item_id)); diff --git a/compiler/rustc_hir_analysis/src/check/intrinsic.rs b/compiler/rustc_hir_analysis/src/check/intrinsic.rs index 67fddd87fbb1d..3fea9d44946f6 100644 --- a/compiler/rustc_hir_analysis/src/check/intrinsic.rs +++ b/compiler/rustc_hir_analysis/src/check/intrinsic.rs @@ -1,7 +1,8 @@ //! Type-checking for the `#[rustc_intrinsic]` intrinsics that the compiler exposes. use rustc_errors::DiagMessage; -use rustc_hir::{self as hir, LangItem}; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::traits::{ObligationCause, ObligationCauseCode}; use rustc_middle::ty::{self, Const, Ty, TyCtxt}; use rustc_span::def_id::LocalDefId; @@ -639,9 +640,8 @@ pub(crate) fn check_intrinsic_type( } sym::discriminant_value => { - let assoc_items = tcx.associated_item_def_ids( - tcx.require_lang_item(hir::LangItem::DiscriminantKind, span), - ); + let assoc_items = tcx + .associated_item_def_ids(tcx.require_lang_item(LangItem::DiscriminantKind, span)); let discriminant_def_id = assoc_items[0]; let br = ty::BoundRegion { var: ty::BoundVar::ZERO, kind: ty::BoundRegionKind::Anon }; diff --git a/compiler/rustc_hir_analysis/src/check/mod.rs b/compiler/rustc_hir_analysis/src/check/mod.rs index de80d32b88578..e9bc2a2d281d4 100644 --- a/compiler/rustc_hir_analysis/src/check/mod.rs +++ b/compiler/rustc_hir_analysis/src/check/mod.rs @@ -78,7 +78,7 @@ pub use check::{check_abi, check_custom_abi}; use rustc_abi::VariantIdx; use rustc_data_structures::fx::{FxHashSet, FxIndexMap}; use rustc_errors::{ErrorGuaranteed, pluralize, struct_span_code_err}; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{DefId, LocalDefId}; use rustc_hir::intravisit::Visitor; use rustc_index::bit_set::DenseBitSet; diff --git a/compiler/rustc_hir_analysis/src/check/wfcheck.rs b/compiler/rustc_hir_analysis/src/check/wfcheck.rs index 553ee4b9c5a02..9a498837b1f4d 100644 --- a/compiler/rustc_hir_analysis/src/check/wfcheck.rs +++ b/compiler/rustc_hir_analysis/src/check/wfcheck.rs @@ -8,10 +8,10 @@ use rustc_data_structures::fx::{FxHashSet, FxIndexMap, FxIndexSet}; use rustc_errors::codes::*; use rustc_errors::{Applicability, ErrorGuaranteed, msg, pluralize, struct_span_code_err}; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{EiiDecl, EiiImpl, EiiImplResolution}; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::lang_items::LangItem; use rustc_hir::{AmbigArg, ItemKind, find_attr}; use rustc_infer::infer::TyCtxtInferExt; use rustc_infer::infer::outlives::env::OutlivesEnvironment; @@ -1655,13 +1655,13 @@ fn check_fn_or_method<'tcx>( ObligationCause::new(span, wfcx.body_def_id, ObligationCauseCode::RustCall), wfcx.param_env, *ty, - tcx.require_lang_item(hir::LangItem::Tuple, span), + tcx.require_lang_item(LangItem::Tuple, span), ); wfcx.register_bound( ObligationCause::new(span, wfcx.body_def_id, ObligationCauseCode::RustCall), wfcx.param_env, *ty, - tcx.require_lang_item(hir::LangItem::Sized, span), + tcx.require_lang_item(LangItem::Sized, span), ); } else { tcx.dcx().span_err( diff --git a/compiler/rustc_hir_analysis/src/coherence/builtin.rs b/compiler/rustc_hir_analysis/src/coherence/builtin.rs index 8ba8962bc2e6e..3b57f45e684f7 100644 --- a/compiler/rustc_hir_analysis/src/coherence/builtin.rs +++ b/compiler/rustc_hir_analysis/src/coherence/builtin.rs @@ -7,8 +7,8 @@ use rustc_data_structures::fx::FxHashSet; use rustc_errors::{ErrorGuaranteed, MultiSpan}; use rustc_hir as hir; use rustc_hir::ItemKind; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::lang_items::LangItem; use rustc_infer::infer::{self, InferCtxt, RegionResolutionError, SubregionOrigin, TyCtxtInferExt}; use rustc_infer::traits::{Obligation, TraitErrors}; use rustc_middle::ty::adjustment::CoerceUnsizedInfo; diff --git a/compiler/rustc_hir_analysis/src/coherence/builtin/coerce_shared.rs b/compiler/rustc_hir_analysis/src/coherence/builtin/coerce_shared.rs index 596d7151dd245..bd7130ee48bc8 100644 --- a/compiler/rustc_hir_analysis/src/coherence/builtin/coerce_shared.rs +++ b/compiler/rustc_hir_analysis/src/coherence/builtin/coerce_shared.rs @@ -1,8 +1,8 @@ use rustc_errors::ErrorGuaranteed; use rustc_hir as hir; use rustc_hir::ItemKind; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::lang_items::LangItem; use rustc_infer::infer::{InferCtxt, TyCtxtInferExt}; use rustc_infer::traits::{Obligation, TraitErrors}; use rustc_middle::ty::relate::solver_relating::RelateExt; diff --git a/compiler/rustc_hir_analysis/src/coherence/mod.rs b/compiler/rustc_hir_analysis/src/coherence/mod.rs index 8391a47902e42..894cd584ae41d 100644 --- a/compiler/rustc_hir_analysis/src/coherence/mod.rs +++ b/compiler/rustc_hir_analysis/src/coherence/mod.rs @@ -7,7 +7,7 @@ use rustc_errors::codes::*; use rustc_errors::struct_span_code_err; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{DefId, LocalDefId}; use rustc_middle::query::Providers; use rustc_middle::ty::{self, TyCtxt, TypeVisitableExt, elaborate}; diff --git a/compiler/rustc_hir_analysis/src/coherence/unsafety.rs b/compiler/rustc_hir_analysis/src/coherence/unsafety.rs index 8114106a2a411..7fcf8ddceea5c 100644 --- a/compiler/rustc_hir_analysis/src/coherence/unsafety.rs +++ b/compiler/rustc_hir_analysis/src/coherence/unsafety.rs @@ -3,7 +3,8 @@ use rustc_errors::codes::*; use rustc_errors::struct_span_code_err; -use rustc_hir::{LangItem, Safety}; +use rustc_hir::Safety; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty::ImplPolarity::*; use rustc_middle::ty::print::PrintTraitRefExt as _; use rustc_middle::ty::{ImplTraitHeader, TraitDef, TyCtxt}; diff --git a/compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs b/compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs index 18147afff15ce..613202ef35345 100644 --- a/compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs +++ b/compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs @@ -4,6 +4,7 @@ use rustc_data_structures::fx::{FxIndexMap, FxIndexSet}; use rustc_errors::codes::*; use rustc_errors::struct_span_code_err; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::{PolyTraitRef, find_attr}; @@ -110,13 +111,13 @@ fn collect_sizedness_bounds<'tcx>( context: ImpliedBoundsContext<'tcx>, span: Span, ) -> CollectedSizednessBounds { - let sized_did = tcx.require_lang_item(hir::LangItem::Sized, span); + let sized_did = tcx.require_lang_item(LangItem::Sized, span); let sized = collect_bounds(hir_bounds, context, sized_did); - let meta_sized_did = tcx.require_lang_item(hir::LangItem::MetaSized, span); + let meta_sized_did = tcx.require_lang_item(LangItem::MetaSized, span); let meta_sized = collect_bounds(hir_bounds, context, meta_sized_did); - let pointee_sized_did = tcx.require_lang_item(hir::LangItem::PointeeSized, span); + let pointee_sized_did = tcx.require_lang_item(LangItem::PointeeSized, span); let pointee_sized = collect_bounds(hir_bounds, context, pointee_sized_did); CollectedSizednessBounds { sized, meta_sized, pointee_sized } @@ -160,8 +161,8 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ { return; } - let meta_sized_did = tcx.require_lang_item(hir::LangItem::MetaSized, span); - let pointee_sized_did = tcx.require_lang_item(hir::LangItem::PointeeSized, span); + let meta_sized_did = tcx.require_lang_item(LangItem::MetaSized, span); + let pointee_sized_did = tcx.require_lang_item(LangItem::PointeeSized, span); // If adding sizedness bounds to a trait, then there are some relevant early exits match context { @@ -200,7 +201,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ { | ImpliedBoundsContext::AssociatedTypeOrImplTrait => { // If there are no explicit sizedness bounds on a parameter then add a default // `Sized` bound. - let sized_did = tcx.require_lang_item(hir::LangItem::Sized, span); + let sized_did = tcx.require_lang_item(LangItem::Sized, span); add_trait_bound(tcx, bounds, self_ty, sized_did, span); } } @@ -225,7 +226,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ { /// Doesn't add the bound if the HIR bounds contain any of `Trait`, `?Trait` or `!Trait`. pub(crate) fn add_default_trait( &self, - trait_: hir::LangItem, + trait_: LangItem, bounds: &mut Vec<(ty::Clause<'tcx>, Span)>, self_ty: Ty<'tcx>, hir_bounds: &[hir::GenericBound<'tcx>], @@ -268,7 +269,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ { let tcx = self.tcx(); if let Res::Def(DefKind::Trait, def_id) = trait_ref.path.res - && (tcx.is_lang_item(def_id, hir::LangItem::Sized) || tcx.is_default_trait(def_id)) + && (tcx.is_lang_item(def_id, LangItem::Sized) || tcx.is_default_trait(def_id)) { return; } diff --git a/compiler/rustc_hir_analysis/src/hir_ty_lowering/dyn_trait.rs b/compiler/rustc_hir_analysis/src/hir_ty_lowering/dyn_trait.rs index 720dcf89523b5..3d8c23ebdf8d3 100644 --- a/compiler/rustc_hir_analysis/src/hir_ty_lowering/dyn_trait.rs +++ b/compiler/rustc_hir_analysis/src/hir_ty_lowering/dyn_trait.rs @@ -5,9 +5,10 @@ use rustc_errors::{ Applicability, Diag, DiagCtxtHandle, Diagnostic, EmissionGuarantee, Level, StashKey, Suggestions, struct_span_code_err, }; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, HirId, LangItem}; +use rustc_hir::{self as hir, HirId}; use rustc_lint_defs::builtin::{BARE_TRAIT_OBJECTS, UNUSED_ASSOCIATED_TYPE_BOUNDS}; use rustc_middle::ty::elaborate::ClauseWithSupertraitSpan; use rustc_middle::ty::{ diff --git a/compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs b/compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs index 953c6a469d11c..2f2f8d715b3ab 100644 --- a/compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs +++ b/compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs @@ -31,6 +31,7 @@ use rustc_errors::{ Applicability, Diag, DiagCtxtHandle, ErrorGuaranteed, FatalError, StashKey, struct_span_code_err, }; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; use rustc_hir::def_id::{DefId, LocalDefId}; use rustc_hir::{self as hir, AnonConst, GenericArg, GenericArgs, HirId}; @@ -983,7 +984,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ { // non-global where-clauses being preferred over item bounds (where `PointeeSized` // bounds would be proven) -- which can result in errors when a `PointeeSized` // supertrait / bound / predicate is added to some items. - tcx.is_lang_item(trait_def_id, hir::LangItem::PointeeSized) + tcx.is_lang_item(trait_def_id, LangItem::PointeeSized) } hir::BoundPolarity::Negative(_) => false, hir::BoundPolarity::Maybe(_) => { @@ -1054,7 +1055,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ { // This may have performance implications, so please check perf when // removing it. // This was added in . - if tcx.is_lang_item(trait_def_id, rustc_hir::LangItem::Sized) { + if tcx.is_lang_item(trait_def_id, LangItem::Sized) { bounds.insert(0, bound); } else { bounds.push(bound); diff --git a/compiler/rustc_hir_typeck/src/callee.rs b/compiler/rustc_hir_typeck/src/callee.rs index d2430a06a0072..e250ec4c7af40 100644 --- a/compiler/rustc_hir_typeck/src/callee.rs +++ b/compiler/rustc_hir_typeck/src/callee.rs @@ -4,9 +4,10 @@ use rustc_abi::{CanonAbi, ExternAbi}; use rustc_ast::util::parser::ExprPrecedence; use rustc_data_structures::fx::{FxHashMap, FxIndexSet}; use rustc_errors::{Applicability, Diag, ErrorGuaranteed, StashKey, msg}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{self, CtorKind, Namespace, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, HirId, LangItem, find_attr}; +use rustc_hir::{self as hir, HirId, find_attr}; use rustc_hir_analysis::autoderef::Autoderef; use rustc_infer::infer::{BoundRegionConversionTime, DefineOpaqueTypes}; use rustc_infer::traits::{Obligation, ObligationCause, ObligationCauseCode}; @@ -636,7 +637,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { { self.register_bound( ty, - self.tcx.require_lang_item(hir::LangItem::Tuple, sp), + self.tcx.require_lang_item(LangItem::Tuple, sp), self.cause(sp, ObligationCauseCode::RustCall), ); self.require_type_is_sized(ty, sp, ObligationCauseCode::RustCall); diff --git a/compiler/rustc_hir_typeck/src/check.rs b/compiler/rustc_hir_typeck/src/check.rs index 1780430567a80..60fc0b8f9b214 100644 --- a/compiler/rustc_hir_typeck/src/check.rs +++ b/compiler/rustc_hir_typeck/src/check.rs @@ -1,8 +1,8 @@ use std::cell::RefCell; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; -use rustc_hir::lang_items::LangItem; use rustc_hir_analysis::check::check_function_signature; use rustc_infer::infer::RegionVariableOrigin; use rustc_infer::traits::WellFormedLoc; @@ -177,7 +177,7 @@ fn check_panic_info_fn(tcx: TyCtxt<'_>, fn_id: LocalDefId, fn_sig: ty::FnSig<'_> tcx.dcx().span_err(span, "should have no const parameters"); } - let panic_info_did = tcx.require_lang_item(hir::LangItem::PanicInfo, span); + let panic_info_did = tcx.require_lang_item(LangItem::PanicInfo, span); // build type `for<'a, 'b> fn(&'a PanicInfo<'b>) -> !` let panic_info_ty = tcx diff --git a/compiler/rustc_hir_typeck/src/closure.rs b/compiler/rustc_hir_typeck/src/closure.rs index a8c32f19c6a13..a9ce46b68527f 100644 --- a/compiler/rustc_hir_typeck/src/closure.rs +++ b/compiler/rustc_hir_typeck/src/closure.rs @@ -6,7 +6,7 @@ use std::ops::ControlFlow; use rustc_abi::ExternAbi; use rustc_errors::ErrorGuaranteed; use rustc_hir as hir; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir_analysis::hir_ty_lowering::HirTyLowerer; use rustc_infer::infer::{BoundRegionConversionTime, DefineOpaqueTypes, InferOk, InferResult}; use rustc_infer::traits::{ObligationCauseCode, PredicateObligations}; @@ -136,12 +136,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { Ty::new_adt( tcx, - tcx.adt_def(tcx.require_lang_item(hir::LangItem::Poll, expr_span)), + tcx.adt_def(tcx.require_lang_item(LangItem::Poll, expr_span)), tcx.mk_args(&[Ty::new_adt( tcx, - tcx.adt_def( - tcx.require_lang_item(hir::LangItem::Option, expr_span), - ), + tcx.adt_def(tcx.require_lang_item(LangItem::Option, expr_span)), tcx.mk_args(&[yield_ty.into()]), ) .into()]), diff --git a/compiler/rustc_hir_typeck/src/coercion.rs b/compiler/rustc_hir_typeck/src/coercion.rs index f0f61edaa8c94..6aa88ee627e83 100644 --- a/compiler/rustc_hir_typeck/src/coercion.rs +++ b/compiler/rustc_hir_typeck/src/coercion.rs @@ -39,9 +39,10 @@ use std::ops::{ControlFlow, Deref}; use rustc_errors::codes::*; use rustc_errors::{Applicability, Diag, struct_span_code_err}; +use rustc_hir as hir; use rustc_hir::attrs::InlineAttr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::{self as hir, LangItem}; use rustc_hir_analysis::hir_ty_lowering::HirTyLowerer; use rustc_infer::infer::relate::RelateResult; use rustc_infer::infer::{DefineOpaqueTypes, InferOk, InferResult, RegionVariableOrigin}; @@ -832,7 +833,7 @@ impl<'f, 'tcx> Coerce<'f, 'tcx> { ) -> PredicateObligation<'tcx> { let pred = ty::TraitRef::new( self.tcx, - self.tcx.require_lang_item(hir::LangItem::Unpin, self.cause.span), + self.tcx.require_lang_item(LangItem::Unpin, self.cause.span), [ty], ); let cause = self.cause(self.cause.span, ObligationCauseCode::Coercion { source, target }); @@ -2103,7 +2104,7 @@ impl<'tcx> CoerceMany<'tcx> { fcx.param_env, ty::TraitRef::new( fcx.tcx, - fcx.tcx.require_lang_item(hir::LangItem::Sized, DUMMY_SP), + fcx.tcx.require_lang_item(LangItem::Sized, DUMMY_SP), [sig.output()], ), )) diff --git a/compiler/rustc_hir_typeck/src/expr.rs b/compiler/rustc_hir_typeck/src/expr.rs index bfdd99b6277ba..afb340ec8d86d 100644 --- a/compiler/rustc_hir_typeck/src/expr.rs +++ b/compiler/rustc_hir_typeck/src/expr.rs @@ -18,9 +18,9 @@ use rustc_errors::{ struct_span_code_err, }; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::lang_items::LangItem; use rustc_hir::{ExprKind, HirId, QPath, find_attr, is_range_literal}; use rustc_hir_analysis::NoVariantNamed; use rustc_hir_analysis::diagnostics::NoFieldOnType; diff --git a/compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs b/compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs index 5faa3dfa494cb..8ff4c3bf28c34 100644 --- a/compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs +++ b/compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs @@ -7,10 +7,10 @@ use rustc_data_structures::thin_vec::ThinVec; use rustc_errors::{ Applicability, Diag, DiagCtxtHandle, Diagnostic, ErrorGuaranteed, Level, MultiSpan, }; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorOf, DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::intravisit::VisitorExt; -use rustc_hir::lang_items::LangItem; use rustc_hir::{self as hir, AmbigArg, ExprKind, GenericArg, HirId, Node, QPath, intravisit}; use rustc_hir_analysis::hir_ty_lowering::errors::GenericsArgsErrExtend; use rustc_hir_analysis::hir_ty_lowering::generics::{ diff --git a/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs b/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs index b9262e40f6f31..799ac7fd549e6 100644 --- a/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs +++ b/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs @@ -9,10 +9,11 @@ use rustc_errors::codes::*; use rustc_errors::{Applicability, Diag, ErrorGuaranteed, MultiSpan, a_or_an, listify, pluralize}; use rustc_hir as hir; use rustc_hir::attrs::DivergingBlockBehavior; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::intravisit::Visitor; -use rustc_hir::{Expr, ExprKind, FnRetTy, HirId, LangItem, Node, QPath, is_range_literal}; +use rustc_hir::{Expr, ExprKind, FnRetTy, HirId, Node, QPath, is_range_literal}; use rustc_hir_analysis::check::potentially_plural_count; use rustc_hir_analysis::hir_ty_lowering::{HirTyLowerer, ResolvedStructPath}; use rustc_index::IndexVec; @@ -1033,7 +1034,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { ast::LitKind::CStr(_, _) => Ty::new_imm_ref( tcx, tcx.lifetimes.re_static, - tcx.type_of(tcx.require_lang_item(hir::LangItem::CStr, lit.span)).skip_binder(), + tcx.type_of(tcx.require_lang_item(LangItem::CStr, lit.span)).skip_binder(), ), ast::LitKind::Err(guar) => Ty::new_error(tcx, guar), } @@ -2359,10 +2360,10 @@ impl<'a, 'tcx> FnCallDiagCtxt<'a, 'tcx> { fn detect_dotdot(&self, err: &mut Diag<'_>, ty: Ty<'tcx>, expr: &hir::Expr<'tcx>) { if let ty::Adt(adt, _) = ty.kind() - && self.tcx().is_lang_item(adt.did(), hir::LangItem::RangeFull) + && self.tcx().is_lang_item(adt.did(), LangItem::RangeFull) && is_range_literal(expr) && let hir::ExprKind::Struct(&path, [], _) = expr.kind - && self.tcx().qpath_is_lang_item(path, hir::LangItem::RangeFull) + && self.tcx().qpath_is_lang_item(path, LangItem::RangeFull) { // We have `Foo(a, .., c)`, where the user might be trying to use the "rest" syntax // from default field values, which is not supported on tuples. diff --git a/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs b/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs index a09da3cec2f92..2a9c3bc73be2b 100644 --- a/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs +++ b/compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs @@ -7,9 +7,9 @@ use itertools::Itertools; use rustc_ast::util::parser::ExprPrecedence; use rustc_data_structures::packed::Pu128; use rustc_errors::{Applicability, Diag, MultiSpan, listify, msg}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; use rustc_hir::intravisit::Visitor; -use rustc_hir::lang_items::LangItem; use rustc_hir::{ self as hir, Arm, CoroutineDesugaring, CoroutineKind, CoroutineSource, Expr, ExprKind, GenericBound, HirId, LoopSource, Node, PatExpr, PatExprKind, Path, QPath, Stmt, StmtKind, diff --git a/compiler/rustc_hir_typeck/src/inline_asm.rs b/compiler/rustc_hir_typeck/src/inline_asm.rs index b720a75303c47..cfe64fce180e9 100644 --- a/compiler/rustc_hir_typeck/src/inline_asm.rs +++ b/compiler/rustc_hir_typeck/src/inline_asm.rs @@ -2,8 +2,9 @@ use rustc_abi::FieldIdx; use rustc_ast::InlineAsmTemplatePiece; use rustc_data_structures::fx::FxIndexSet; use rustc_errors::{Diag, DiagCtxtHandle, Diagnostic, Level}; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem}; use rustc_middle::bug; use rustc_middle::ty::{ self, Article, FloatTy, IntTy, Ty, TyCtxt, TypeVisitableExt, UintTy, Unnormalized, diff --git a/compiler/rustc_hir_typeck/src/method/confirm.rs b/compiler/rustc_hir_typeck/src/method/confirm.rs index 05463cd9ae3f7..e31692492c263 100644 --- a/compiler/rustc_hir_typeck/src/method/confirm.rs +++ b/compiler/rustc_hir_typeck/src/method/confirm.rs @@ -3,6 +3,7 @@ use std::ops::Deref; use rustc_hir as hir; use rustc_hir::GenericArg; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_hir_analysis::hir_ty_lowering::generics::{ check_generic_arg_count_for_value_path, lower_generic_args, @@ -257,7 +258,7 @@ impl<'a, 'tcx> ConfirmContext<'a, 'tcx> { let region = self.next_region_var(RegionVariableOrigin::Autoref(self.span)); target = match target.kind() { - ty::Adt(pin, args) if self.tcx.is_lang_item(pin.did(), hir::LangItem::Pin) => { + ty::Adt(pin, args) if self.tcx.is_lang_item(pin.did(), LangItem::Pin) => { let inner_ty = match args[0].expect_ty().kind() { ty::Ref(_, ty, _) => *ty, _ => bug!("Expected a reference type for argument to Pin"), diff --git a/compiler/rustc_hir_typeck/src/method/prelude_edition_lints.rs b/compiler/rustc_hir_typeck/src/method/prelude_edition_lints.rs index 515a72f5041cb..87a64e4227b1d 100644 --- a/compiler/rustc_hir_typeck/src/method/prelude_edition_lints.rs +++ b/compiler/rustc_hir_typeck/src/method/prelude_edition_lints.rs @@ -5,6 +5,7 @@ use hir::{HirId, ItemKind}; use rustc_ast::join_path_idents; use rustc_errors::{Applicability, Diag, DiagCtxtHandle, Diagnostic, Level}; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::{ARRAY_INTO_ITER, BOXED_SLICE_INTO_ITER}; use rustc_middle::span_bug; use rustc_middle::ty::{self, Ty, TyCtxt}; @@ -176,7 +177,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { // We check that the self type is `Pin<&mut _>` to avoid false positives for this common name. if !span.at_least_rust_2024() && let ty::Adt(adt_def, args) = self_ty.kind() - && self.tcx.is_lang_item(adt_def.did(), hir::LangItem::Pin) + && self.tcx.is_lang_item(adt_def.did(), LangItem::Pin) && let ty::Ref(_, _, ty::Mutability::Mut) = args[0].as_type().unwrap().kind() => { diff --git a/compiler/rustc_hir_typeck/src/method/probe.rs b/compiler/rustc_hir_typeck/src/method/probe.rs index 68f85d942ce2e..b2e0a3bd7a195 100644 --- a/compiler/rustc_hir_typeck/src/method/probe.rs +++ b/compiler/rustc_hir_typeck/src/method/probe.rs @@ -6,6 +6,7 @@ use std::ops::Deref; use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::sso::SsoHashSet; use rustc_errors::{Applicability, Diag, DiagCtxtHandle, Diagnostic, Level}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::{self as hir, ExprKind, HirId, Node, find_attr}; use rustc_hir_analysis::autoderef::{self, Autoderef}; @@ -1580,7 +1581,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> { ty::Adt(def, args) if self.tcx.features().pin_ergonomics() - && self.tcx.is_lang_item(def.did(), hir::LangItem::Pin) => + && self.tcx.is_lang_item(def.did(), LangItem::Pin) => { // make sure this is a pinned reference (and not a `Pin` or something) if let ty::Ref(_, _, mutbl) = args[0].expect_ty().kind() { @@ -1649,7 +1650,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> { // make sure self is a Pin<&mut T> let inner_ty = match self_ty.kind() { - ty::Adt(def, args) if self.tcx.is_lang_item(def.did(), hir::LangItem::Pin) => { + ty::Adt(def, args) if self.tcx.is_lang_item(def.did(), LangItem::Pin) => { match args[0].expect_ty().kind() { ty::Ref(_, ty, hir::Mutability::Mut) => *ty, _ => { diff --git a/compiler/rustc_hir_typeck/src/method/suggest.rs b/compiler/rustc_hir_typeck/src/method/suggest.rs index f4c084022a845..a22b6f746a952 100644 --- a/compiler/rustc_hir_typeck/src/method/suggest.rs +++ b/compiler/rustc_hir_typeck/src/method/suggest.rs @@ -17,10 +17,10 @@ use rustc_errors::{ Applicability, Diag, MultiSpan, StashKey, StringPart, listify, pluralize, struct_span_code_err, }; use rustc_hir::attrs::diagnostic::CustomDiagnostic; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::intravisit::{self, Visitor}; -use rustc_hir::lang_items::LangItem; use rustc_hir::{ self as hir, ExprKind, HirId, Node, PathSegment, QPath, find_attr, is_range_literal, }; @@ -3812,8 +3812,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { return; }; let is_inclusive = match lang_item { - hir::LangItem::RangeTo => false, - hir::LangItem::RangeToInclusive | hir::LangItem::RangeInclusiveCopy => true, + LangItem::RangeTo => false, + LangItem::RangeToInclusive | LangItem::RangeInclusiveCopy => true, _ => return, }; diff --git a/compiler/rustc_hir_typeck/src/pat.rs b/compiler/rustc_hir_typeck/src/pat.rs index 01c48c0ae790c..f7ba6a78c65bd 100644 --- a/compiler/rustc_hir_typeck/src/pat.rs +++ b/compiler/rustc_hir_typeck/src/pat.rs @@ -9,12 +9,13 @@ use rustc_errors::{ Applicability, Diag, DiagCtxtHandle, Diagnostic, ErrorGuaranteed, Level, MultiSpan, pluralize, struct_span_code_err, }; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::pat_util::EnumerateAndAdjustIterator; use rustc_hir::{ - self as hir, BindingMode, ByRef, ExprKind, HirId, LangItem, Mutability, Pat, PatExpr, - PatExprKind, PatKind, expr_needs_parens, + self as hir, BindingMode, ByRef, ExprKind, HirId, Mutability, Pat, PatExpr, PatExprKind, + PatKind, expr_needs_parens, }; use rustc_hir_analysis::autoderef::report_autoderef_recursion_limit_error; use rustc_infer::infer::RegionVariableOrigin; @@ -1212,7 +1213,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { { self.register_bound( expected, - self.tcx.require_lang_item(hir::LangItem::Unpin, pat.span), + self.tcx.require_lang_item(LangItem::Unpin, pat.span), self.misc(pat.span), ) } @@ -2752,14 +2753,14 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { let tcx = self.tcx; self.register_bound( source_ty, - tcx.require_lang_item(hir::LangItem::DerefPure, span), + tcx.require_lang_item(LangItem::DerefPure, span), self.misc(span), ); // The expected type for the deref pat's inner pattern is `::Target`. let target_ty = Ty::new_projection( tcx, ty::IsRigid::No, - tcx.require_lang_item(hir::LangItem::DerefTarget, span), + tcx.require_lang_item(LangItem::DerefTarget, span), [source_ty], ); let target_ty = self.normalize(span, Unnormalized::new_wip(target_ty)); @@ -2780,7 +2781,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { for mutably_derefed_ty in derefed_tys { self.register_bound( mutably_derefed_ty, - self.tcx.require_lang_item(hir::LangItem::DerefMut, span), + self.tcx.require_lang_item(LangItem::DerefMut, span), self.misc(span), ); } diff --git a/compiler/rustc_hir_typeck/src/upvar.rs b/compiler/rustc_hir_typeck/src/upvar.rs index d75d346e712e0..91771fb37d18a 100644 --- a/compiler/rustc_hir_typeck/src/upvar.rs +++ b/compiler/rustc_hir_typeck/src/upvar.rs @@ -36,6 +36,7 @@ use rustc_abi::FIRST_VARIANT; use rustc_data_structures::fx::{FxIndexMap, FxIndexSet}; use rustc_data_structures::unord::{ExtendUnord, UnordSet}; use rustc_errors::{Applicability, Diag, DiagCtxtHandle, Diagnostic, Level, MultiSpan}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::LocalDefId; use rustc_hir::intravisit::{self, Visitor}; use rustc_hir::{self as hir, HirId, find_attr}; @@ -1637,7 +1638,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { }; let is_drop_defined_for_ty = |ty: Ty<'tcx>| { - let drop_trait = self.tcx.require_lang_item(hir::LangItem::Drop, closure_span); + let drop_trait = self.tcx.require_lang_item(LangItem::Drop, closure_span); self.infcx .type_implements_trait(drop_trait, [ty], self.tcx.param_env(closure_def_id)) .must_apply_modulo_regions() diff --git a/compiler/rustc_lint/src/builtin.rs b/compiler/rustc_lint/src/builtin.rs index 35b0785c7847d..627fb962d5dbf 100644 --- a/compiler/rustc_lint/src/builtin.rs +++ b/compiler/rustc_lint/src/builtin.rs @@ -24,6 +24,7 @@ use rustc_ast_pretty::pprust::expr_to_string; use rustc_attr_parsing::AttributeParser; use rustc_errors::{Applicability, Diagnostic, msg}; use rustc_feature::GateIssue; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{AttributeKind, DocAttribute}; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{CRATE_DEF_ID, DefId, LocalDefId}; @@ -555,8 +556,7 @@ fn type_implements_negative_copy_modulo_regions<'tcx>( typing_env: ty::TypingEnv<'tcx>, ) -> bool { let (infcx, param_env) = tcx.infer_ctxt().build_with_typing_env(typing_env); - let trait_ref = - ty::TraitRef::new(tcx, tcx.require_lang_item(hir::LangItem::Copy, DUMMY_SP), [ty]); + let trait_ref = ty::TraitRef::new(tcx, tcx.require_lang_item(LangItem::Copy, DUMMY_SP), [ty]); let pred = ty::TraitPredicate { trait_ref, polarity: ty::PredicatePolarity::Negative }; let obligation = traits::Obligation { cause: traits::ObligationCause::dummy(), diff --git a/compiler/rustc_lint/src/c_void_returns.rs b/compiler/rustc_lint/src/c_void_returns.rs index b9d9e9ef54c4d..c3c15c60cadbf 100644 --- a/compiler/rustc_lint/src/c_void_returns.rs +++ b/compiler/rustc_lint/src/c_void_returns.rs @@ -1,8 +1,9 @@ use rustc_abi::ExternAbi; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::Res; use rustc_hir::def_id::LocalDefId; use rustc_hir::intravisit::FnKind; -use rustc_hir::{self as hir, LangItem}; use rustc_session::{declare_lint, declare_lint_pass}; use rustc_span::Span; diff --git a/compiler/rustc_lint/src/dangling.rs b/compiler/rustc_lint/src/dangling.rs index 54356422a11ad..de061ceb6fd8d 100644 --- a/compiler/rustc_lint/src/dangling.rs +++ b/compiler/rustc_lint/src/dangling.rs @@ -1,8 +1,9 @@ use rustc_ast::visit::{visit_opt, walk_list}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::Res; use rustc_hir::def_id::LocalDefId; use rustc_hir::intravisit::{FnKind, Visitor, walk_expr}; -use rustc_hir::{Block, Body, Expr, ExprKind, FnDecl, FnRetTy, LangItem, TyKind, find_attr}; +use rustc_hir::{Block, Body, Expr, ExprKind, FnDecl, FnRetTy, TyKind, find_attr}; use rustc_middle::ty::{self, Ty, TyCtxt}; use rustc_session::{declare_lint, impl_lint_pass}; use rustc_span::{Span, sym}; diff --git a/compiler/rustc_lint/src/deref_into_dyn_supertrait.rs b/compiler/rustc_lint/src/deref_into_dyn_supertrait.rs index caaf115c9133a..5fb4f5278938f 100644 --- a/compiler/rustc_lint/src/deref_into_dyn_supertrait.rs +++ b/compiler/rustc_lint/src/deref_into_dyn_supertrait.rs @@ -1,4 +1,5 @@ -use rustc_hir::{self as hir, LangItem}; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty; use rustc_session::{declare_lint, declare_lint_pass}; use rustc_span::{Ident, sym}; diff --git a/compiler/rustc_lint/src/for_loops_over_fallibles.rs b/compiler/rustc_lint/src/for_loops_over_fallibles.rs index 24f6be087fefa..9da3861adb943 100644 --- a/compiler/rustc_lint/src/for_loops_over_fallibles.rs +++ b/compiler/rustc_lint/src/for_loops_over_fallibles.rs @@ -1,5 +1,6 @@ use hir::{Expr, Pat}; -use rustc_hir::{self as hir, LangItem}; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::TyCtxtInferExt; use rustc_infer::traits::ObligationCause; use rustc_middle::ty; diff --git a/compiler/rustc_lint/src/multiple_supertrait_upcastable.rs b/compiler/rustc_lint/src/multiple_supertrait_upcastable.rs index 766365134a3f4..5999bce2fe435 100644 --- a/compiler/rustc_lint/src/multiple_supertrait_upcastable.rs +++ b/compiler/rustc_lint/src/multiple_supertrait_upcastable.rs @@ -1,4 +1,5 @@ use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty::Unnormalized; use rustc_session::{declare_lint, declare_lint_pass}; @@ -49,7 +50,7 @@ impl<'tcx> LateLintPass<'tcx> for MultipleSupertraitUpcastable { .iter_identity_copied() .map(Unnormalized::skip_norm_wip) .filter_map(|(clause, _)| clause.as_trait_clause()) - .filter(|pred| !cx.tcx.is_lang_item(pred.def_id(), hir::LangItem::MetaSized)) + .filter(|pred| !cx.tcx.is_lang_item(pred.def_id(), LangItem::MetaSized)) .filter(|pred| !cx.tcx.is_default_trait(pred.def_id())); if direct_super_traits_iter.count() > 1 { cx.emit_span_lint( diff --git a/compiler/rustc_lint/src/non_fmt_panic.rs b/compiler/rustc_lint/src/non_fmt_panic.rs index 055d2c1702406..8722bcd570682 100644 --- a/compiler/rustc_lint/src/non_fmt_panic.rs +++ b/compiler/rustc_lint/src/non_fmt_panic.rs @@ -1,7 +1,8 @@ use rustc_ast as ast; use rustc_errors::{Applicability, Diag, DiagCtxtHandle, Diagnostic, Level, msg}; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem}; use rustc_infer::infer::TyCtxtInferExt; use rustc_middle::{bug, ty}; use rustc_parse_format::{ParseMode, Parser, Piece}; diff --git a/compiler/rustc_lint/src/shadowed_into_iter.rs b/compiler/rustc_lint/src/shadowed_into_iter.rs index c03e7396fd2b7..4732fda76b33a 100644 --- a/compiler/rustc_lint/src/shadowed_into_iter.rs +++ b/compiler/rustc_lint/src/shadowed_into_iter.rs @@ -1,4 +1,5 @@ -use rustc_hir::{self as hir, LangItem}; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty::{self, Ty}; use rustc_session::lint::fcw; use rustc_session::{declare_lint, impl_lint_pass}; diff --git a/compiler/rustc_lint/src/traits.rs b/compiler/rustc_lint/src/traits.rs index 9ffc3246a5f38..4b68de5cc69f3 100644 --- a/compiler/rustc_lint/src/traits.rs +++ b/compiler/rustc_lint/src/traits.rs @@ -1,4 +1,5 @@ -use rustc_hir::{self as hir, AmbigArg, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{self as hir, AmbigArg}; use rustc_session::{declare_lint, declare_lint_pass}; use rustc_span::sym; diff --git a/compiler/rustc_lint/src/types.rs b/compiler/rustc_lint/src/types.rs index 44167af19f1e7..49a14c2676c10 100644 --- a/compiler/rustc_lint/src/types.rs +++ b/compiler/rustc_lint/src/types.rs @@ -3,7 +3,8 @@ use std::iter; use rustc_abi::{BackendRepr, TagEncoding, Variants, WrappingRange}; use rustc_ast as ast; use rustc_hir as hir; -use rustc_hir::{Expr, ExprKind, HirId, LangItem, find_attr}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, HirId, find_attr}; use rustc_middle::bug; use rustc_middle::ty::layout::{LayoutOf, SizeSkeleton}; use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt, Unnormalized}; diff --git a/compiler/rustc_lint/src/unused.rs b/compiler/rustc_lint/src/unused.rs index 7dea17ac55140..0236ac75c2d64 100644 --- a/compiler/rustc_lint/src/unused.rs +++ b/compiler/rustc_lint/src/unused.rs @@ -2,7 +2,7 @@ use rustc_ast::util::{classify, parser}; use rustc_ast::{self as ast, ExprKind, FnRetTy, ForLoop, HasAttrs as _, StmtKind}; use rustc_data_structures::fx::FxHashMap; use rustc_errors::MultiSpan; -use rustc_hir::{self as hir}; +use rustc_hir as hir; use rustc_middle::ty::{self, adjustment}; use rustc_session::{declare_lint, declare_lint_pass, impl_lint_pass}; use rustc_span::edition::Edition::Edition2015; diff --git a/compiler/rustc_lint/src/unused/must_use.rs b/compiler/rustc_lint/src/unused/must_use.rs index 3f10b521883ef..dcbffa394a1a0 100644 --- a/compiler/rustc_lint/src/unused/must_use.rs +++ b/compiler/rustc_lint/src/unused/must_use.rs @@ -1,9 +1,10 @@ use std::iter; use rustc_errors::pluralize; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem, find_attr}; +use rustc_hir::{self as hir, find_attr}; use rustc_infer::traits::util::elaborate; use rustc_middle::ty::{self, Ty, Unnormalized}; use rustc_session::{declare_lint, declare_lint_pass}; diff --git a/compiler/rustc_metadata/src/rmeta/decoder.rs b/compiler/rustc_metadata/src/rmeta/decoder.rs index 09d6290fcd2fc..3a7cffb5989fc 100644 --- a/compiler/rustc_metadata/src/rmeta/decoder.rs +++ b/compiler/rustc_metadata/src/rmeta/decoder.rs @@ -17,10 +17,10 @@ use rustc_expand::base::{SyntaxExtension, SyntaxExtensionKind}; use rustc_expand::proc_macro::{AttrProcMacro, BangProcMacro, DeriveProcMacro}; use rustc_hir::Safety; use rustc_hir::attrs::CanonicalSymbols; +use rustc_hir::attrs::diagnostic_items::DiagnosticItems; use rustc_hir::def::Res; use rustc_hir::def_id::{CRATE_DEF_INDEX, LOCAL_CRATE}; use rustc_hir::definitions::{DefPath, DefPathData}; -use rustc_hir::diagnostic_items::DiagnosticItems; use rustc_index::Idx; use rustc_middle::middle::lib_features::LibFeatures; use rustc_middle::mir::interpret::{AllocDecodingSession, AllocDecodingState}; diff --git a/compiler/rustc_metadata/src/rmeta/mod.rs b/compiler/rustc_metadata/src/rmeta/mod.rs index f4180af492345..3273013466245 100644 --- a/compiler/rustc_metadata/src/rmeta/mod.rs +++ b/compiler/rustc_metadata/src/rmeta/mod.rs @@ -13,10 +13,10 @@ use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::svh::Svh; use rustc_hir as hir; use rustc_hir::attrs::StrippedCfgItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind, DocLinkResMap, MacroKinds}; use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, DefIndex, DefPathHash, StableCrateId}; use rustc_hir::definitions::DefKey; -use rustc_hir::lang_items::LangItem; use rustc_hir::{PreciseCapturingArgKind, attrs}; use rustc_index::IndexVec; use rustc_index::bit_set::DenseBitSet; diff --git a/compiler/rustc_metadata/src/rmeta/parameterized.rs b/compiler/rustc_metadata/src/rmeta/parameterized.rs index 25cb620ee1d80..75b86f8dda274 100644 --- a/compiler/rustc_metadata/src/rmeta/parameterized.rs +++ b/compiler/rustc_metadata/src/rmeta/parameterized.rs @@ -91,7 +91,6 @@ trivially_parameterized_over_tcx! { rustc_hir::CoroutineKind, rustc_hir::DefaultBodyStability, rustc_hir::Defaultness, - rustc_hir::LangItem, rustc_hir::OpaqueTyOrigin, rustc_hir::PreciseCapturingArgKind, rustc_hir::Safety, @@ -100,6 +99,7 @@ trivially_parameterized_over_tcx! { rustc_hir::attrs::EiiDecl, rustc_hir::attrs::EiiImpl, rustc_hir::attrs::StrippedCfgItem, + rustc_hir::attrs::lang_items::LangItem, rustc_hir::def::DefKind, rustc_hir::def::DocLinkResMap, rustc_hir::def_id::DefId, diff --git a/compiler/rustc_middle/src/hir/mod.rs b/compiler/rustc_middle/src/hir/mod.rs index 13bda2991fa92..5099859218187 100644 --- a/compiler/rustc_middle/src/hir/mod.rs +++ b/compiler/rustc_middle/src/hir/mod.rs @@ -11,6 +11,7 @@ use rustc_data_structures::sorted_map::SortedMap; use rustc_data_structures::stable_hash::{StableHash, StableHasher}; use rustc_data_structures::steal::Steal; use rustc_data_structures::sync::{DynSend, DynSync, try_par_for_each_in}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{DefId, LocalDefId, LocalDefIdMap, LocalModId}; use rustc_hir::lints::DelayedLints; diff --git a/compiler/rustc_middle/src/middle/lang_items.rs b/compiler/rustc_middle/src/middle/lang_items.rs index b6db67342a072..829df12ff543c 100644 --- a/compiler/rustc_middle/src/middle/lang_items.rs +++ b/compiler/rustc_middle/src/middle/lang_items.rs @@ -7,7 +7,7 @@ //! * Traits that represent operators; e.g., `Add`, `Sub`, `Index`. //! * Functions called by the compiler itself. -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_span::Span; use rustc_target::spec::PanicStrategy; diff --git a/compiler/rustc_middle/src/mir/syntax.rs b/compiler/rustc_middle/src/mir/syntax.rs index b005cf0c8d10f..4e2d16625266c 100644 --- a/compiler/rustc_middle/src/mir/syntax.rs +++ b/compiler/rustc_middle/src/mir/syntax.rs @@ -1684,12 +1684,14 @@ pub enum BinOp { /// The `<=>` operator (three-way comparison, like `Ord::cmp`) /// /// This is supported only on the integer types and `char`, always returning - /// [`rustc_hir::LangItem::OrderingEnum`] (aka [`std::cmp::Ordering`]). + /// [`LangItem::OrderingEnum`] (aka [`std::cmp::Ordering`]). /// /// [`Rvalue::BinaryOp`]`(BinOp::Cmp, A, B)` returns /// - `Ordering::Less` (`-1_i8`, as a Scalar) if `A < B` /// - `Ordering::Equal` (`0_i8`, as a Scalar) if `A == B` /// - `Ordering::Greater` (`+1_i8`, as a Scalar) if `A > B` + /// + /// [`LangItem::OrderingEnum`]: rustc_hir::attrs::lang_items::LangItem Cmp, /// The `ptr.offset` operator Offset, diff --git a/compiler/rustc_middle/src/mir/terminator.rs b/compiler/rustc_middle/src/mir/terminator.rs index ed86b192f6dcc..2f800c38cd4ac 100644 --- a/compiler/rustc_middle/src/mir/terminator.rs +++ b/compiler/rustc_middle/src/mir/terminator.rs @@ -4,8 +4,8 @@ use std::slice; use rustc_ast::InlineAsmOptions; use rustc_data_structures::packed::Pu128; -use rustc_hir::LangItem; use rustc_hir::attrs::AttributeKind; +use rustc_hir::attrs::lang_items::LangItem; use rustc_macros::{StableHash, TyDecodable, TyEncodable, TypeFoldable, TypeVisitable}; use smallvec::{SmallVec, smallvec}; use thin_vec::ThinVec; diff --git a/compiler/rustc_middle/src/queries.rs b/compiler/rustc_middle/src/queries.rs index f90274460e379..ca1cd2f45975f 100644 --- a/compiler/rustc_middle/src/queries.rs +++ b/compiler/rustc_middle/src/queries.rs @@ -60,10 +60,10 @@ use rustc_data_structures::svh::Svh; use rustc_data_structures::unord::{UnordMap, UnordSet}; use rustc_errors::{ErrorGuaranteed, catch_fatal_errors}; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::{LangItem, LanguageItems}; use rustc_hir::attrs::{CanonicalSymbols, EiiDecl, EiiImpl, StrippedCfgItem}; use rustc_hir::def::{DefKind, DocLinkResMap}; use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, LocalDefId, LocalDefIdSet, LocalModId}; -use rustc_hir::lang_items::{LangItem, LanguageItems}; use rustc_hir::{ItemLocalId, PreciseCapturingArgKind}; use rustc_index::IndexVec; use rustc_lint_defs::LintId; @@ -2274,7 +2274,7 @@ rustc_queries! { } /// Returns all diagnostic items defined in all crates. - query all_diagnostic_items(_: ()) -> &'tcx rustc_hir::diagnostic_items::DiagnosticItems { + query all_diagnostic_items(_: ()) -> &'tcx rustc_hir::attrs::diagnostic_items::DiagnosticItems { arena_cache eval_always desc { "calculating the diagnostic items map" } @@ -2294,7 +2294,7 @@ rustc_queries! { } /// Returns the diagnostic items defined in a crate. - query diagnostic_items(_: CrateNum) -> &'tcx rustc_hir::diagnostic_items::DiagnosticItems { + query diagnostic_items(_: CrateNum) -> &'tcx rustc_hir::attrs::diagnostic_items::DiagnosticItems { arena_cache desc { "calculating the diagnostic items map in a crate" } separate_provide_extern diff --git a/compiler/rustc_middle/src/ty/adjustment.rs b/compiler/rustc_middle/src/ty/adjustment.rs index 7174427e517dd..00efbe912b883 100644 --- a/compiler/rustc_middle/src/ty/adjustment.rs +++ b/compiler/rustc_middle/src/ty/adjustment.rs @@ -1,7 +1,7 @@ use rustc_abi::FieldIdx; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::lang_items::LangItem; use rustc_macros::{StableHash, TyDecodable, TyEncodable, TypeFoldable, TypeVisitable}; use rustc_span::Span; diff --git a/compiler/rustc_middle/src/ty/adt.rs b/compiler/rustc_middle/src/ty/adt.rs index e141ae49bcb90..0eea804b7cb53 100644 --- a/compiler/rustc_middle/src/ty/adt.rs +++ b/compiler/rustc_middle/src/ty/adt.rs @@ -11,9 +11,10 @@ use rustc_data_structures::stable_hash::{ StableHash, StableHashControls, StableHashCtxt, StableHasher, }; use rustc_errors::ErrorGuaranteed; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem, find_attr}; +use rustc_hir::{self as hir, find_attr}; use rustc_index::{IndexSlice, IndexVec}; use rustc_macros::{StableHash, TyDecodable, TyEncodable}; use rustc_session::DataTypeKind; diff --git a/compiler/rustc_middle/src/ty/consts/lit.rs b/compiler/rustc_middle/src/ty/consts/lit.rs index 4d8fcdcd5204a..08dadf6ad9f5f 100644 --- a/compiler/rustc_middle/src/ty/consts/lit.rs +++ b/compiler/rustc_middle/src/ty/consts/lit.rs @@ -1,5 +1,6 @@ use rustc_ast::{LitFloatType, LitIntType, LitKind}; use rustc_hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_macros::StableHash; use crate::ty::{self, Ty, TyCtxt}; @@ -43,7 +44,7 @@ pub fn const_lit_matches_ty<'tcx>( (LitKind::Byte(..), ty::Uint(ty::UintTy::U8)) => true, (LitKind::CStr(..), ty::Ref(_, inner_ty, _)) if matches!(inner_ty.kind(), ty::Adt(def, _) - if tcx.is_lang_item(def.did(), rustc_hir::LangItem::CStr)) => + if tcx.is_lang_item(def.did(), LangItem::CStr)) => { true } diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 3d146508ec287..136a9e6ca464e 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs @@ -28,11 +28,11 @@ use rustc_data_structures::sync::{ }; use rustc_data_structures::{Limit, defer}; use rustc_errors::{Applicability, Diag, DiagCtxtHandle, Diagnostic, MultiSpan}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE, LocalDefId}; use rustc_hir::definitions::{DefPathData, Definitions, PerParentDisambiguatorState}; use rustc_hir::intravisit::VisitorExt; -use rustc_hir::lang_items::LangItem; use rustc_hir::{self as hir, CRATE_HIR_ID, HirId, Node, TraitCandidate, find_attr}; use rustc_index::IndexVec; use rustc_macros::Diagnostic; @@ -896,7 +896,7 @@ impl<'tcx> TyCtxt<'tcx> { } /// Traits added on all bounds by default, excluding `Sized` which is treated separately. - pub fn default_traits(self) -> &'static [rustc_hir::LangItem] { + pub fn default_traits(self) -> &'static [LangItem] { if self.sess.opts.unstable_opts.experimental_default_bounds { &[ LangItem::DefaultTrait1, @@ -986,14 +986,14 @@ impl<'tcx> TyCtxt<'tcx> { } /// Obtain all lang items of this crate and all dependencies (recursively) - pub fn lang_items(self) -> &'tcx rustc_hir::lang_items::LanguageItems { + pub fn lang_items(self) -> &'tcx rustc_hir::attrs::lang_items::LanguageItems { self.get_lang_items(()) } /// Gets a `Ty` representing the [`LangItem::OrderingEnum`] #[track_caller] pub fn ty_ordering_enum(self, span: Span) -> Ty<'tcx> { - let ordering_enum = self.require_lang_item(hir::LangItem::OrderingEnum, span); + let ordering_enum = self.require_lang_item(LangItem::OrderingEnum, span); self.type_of(ordering_enum).no_bound_vars().unwrap() } diff --git a/compiler/rustc_middle/src/ty/context/impl_interner.rs b/compiler/rustc_middle/src/ty/context/impl_interner.rs index ecc8d8867a279..1cce69353c14a 100644 --- a/compiler/rustc_middle/src/ty/context/impl_interner.rs +++ b/compiler/rustc_middle/src/ty/context/impl_interner.rs @@ -6,9 +6,10 @@ use rustc_data_structures::Limit; use rustc_data_structures::intern::Interned; use rustc_errors::ErrorGuaranteed; use rustc_hir as hir; +use rustc_hir::CRATE_HIR_ID; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind, Namespace}; use rustc_hir::def_id::{DefId, LOCAL_CRATE, LocalDefId}; -use rustc_hir::{CRATE_HIR_ID, LangItem}; use rustc_span::{DUMMY_SP, Span, Symbol}; use rustc_type_ir::lang_items::{SolverAdtLangItem, SolverProjectionLangItem, SolverTraitLangItem}; use rustc_type_ir::{ diff --git a/compiler/rustc_middle/src/ty/diagnostics.rs b/compiler/rustc_middle/src/ty/diagnostics.rs index 31caaee970715..94a6ae918a703 100644 --- a/compiler/rustc_middle/src/ty/diagnostics.rs +++ b/compiler/rustc_middle/src/ty/diagnostics.rs @@ -5,9 +5,10 @@ use std::ops::ControlFlow; use rustc_data_structures::fx::FxIndexMap; use rustc_errors::{Applicability, Diag, DiagArgValue, IntoDiagArg, listify, pluralize}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Namespace}; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, AmbigArg, LangItem, PredicateOrigin, WherePredicateKind}; +use rustc_hir::{self as hir, AmbigArg, PredicateOrigin, WherePredicateKind}; use rustc_span::{BytePos, Span}; use rustc_type_ir::TyKind::*; diff --git a/compiler/rustc_middle/src/ty/instance.rs b/compiler/rustc_middle/src/ty/instance.rs index 9e11bc83ac7cd..dcd0ee601aa9d 100644 --- a/compiler/rustc_middle/src/ty/instance.rs +++ b/compiler/rustc_middle/src/ty/instance.rs @@ -3,9 +3,9 @@ use std::{assert_matches, fmt}; use rustc_data_structures::fx::FxHashMap; use rustc_errors::ErrorGuaranteed; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, DefKind, Namespace}; use rustc_hir::def_id::{CrateNum, DefId}; -use rustc_hir::lang_items::LangItem; use rustc_macros::{Lift, StableHash, TyDecodable, TyEncodable}; use rustc_span::def_id::LOCAL_CRATE; use rustc_span::{DUMMY_SP, Span}; @@ -866,22 +866,22 @@ impl<'tcx> Instance<'tcx> { coroutine_kind, hir::CoroutineKind::Desugared(hir::CoroutineDesugaring::Async, _) ); - hir::LangItem::FuturePoll + LangItem::FuturePoll } else if tcx.is_lang_item(trait_id, LangItem::Iterator) { assert_matches!( coroutine_kind, hir::CoroutineKind::Desugared(hir::CoroutineDesugaring::Gen, _) ); - hir::LangItem::IteratorNext + LangItem::IteratorNext } else if tcx.is_lang_item(trait_id, LangItem::AsyncIterator) { assert_matches!( coroutine_kind, hir::CoroutineKind::Desugared(hir::CoroutineDesugaring::AsyncGen, _) ); - hir::LangItem::AsyncIteratorPollNext + LangItem::AsyncIteratorPollNext } else if tcx.is_lang_item(trait_id, LangItem::Coroutine) { assert_matches!(coroutine_kind, hir::CoroutineKind::Coroutine(_)); - hir::LangItem::CoroutineResume + LangItem::CoroutineResume } else { return None; }; diff --git a/compiler/rustc_middle/src/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs index 41672a7b92710..562a40f182312 100644 --- a/compiler/rustc_middle/src/ty/layout.rs +++ b/compiler/rustc_middle/src/ty/layout.rs @@ -11,7 +11,7 @@ use rustc_errors::{ Diag, DiagArgValue, DiagCtxtHandle, Diagnostic, EmissionGuarantee, IntoDiagArg, Level, }; use rustc_hir as hir; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_macros::{StableHash, TyDecodable, TyEncodable, extension}; use rustc_session::config::OptLevel; diff --git a/compiler/rustc_middle/src/ty/mod.rs b/compiler/rustc_middle/src/ty/mod.rs index f5905cdefdec6..5328b29561e07 100644 --- a/compiler/rustc_middle/src/ty/mod.rs +++ b/compiler/rustc_middle/src/ty/mod.rs @@ -38,10 +38,11 @@ use rustc_data_structures::steal::Steal; use rustc_data_structures::unord::{UnordMap, UnordSet}; use rustc_errors::{Diag, ErrorGuaranteed, LintBuffer}; use rustc_hir::attrs::StrippedCfgItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, CtorOf, DefKind, DocLinkResMap, LifetimeRes, Res}; use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, LocalDefId, LocalDefIdMap}; use rustc_hir::definitions::PerParentDisambiguatorState; -use rustc_hir::{self as hir, LangItem, MissingLifetimeKind, attrs as attr, find_attr}; +use rustc_hir::{self as hir, MissingLifetimeKind, attrs as attr, find_attr}; use rustc_index::IndexVec; use rustc_index::bit_set::BitMatrix; use rustc_macros::{ diff --git a/compiler/rustc_middle/src/ty/print/pretty.rs b/compiler/rustc_middle/src/ty/print/pretty.rs index 0d1d09d70572c..85a18775cb873 100644 --- a/compiler/rustc_middle/src/ty/print/pretty.rs +++ b/compiler/rustc_middle/src/ty/print/pretty.rs @@ -10,7 +10,7 @@ use rustc_data_structures::Limit; use rustc_data_structures::fx::{FxIndexMap, IndexEntry}; use rustc_data_structures::unord::UnordMap; use rustc_hir as hir; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{self, CtorKind, DefKind, Namespace}; use rustc_hir::def_id::{DefIdMap, DefIdSet, LOCAL_CRATE, ModId}; use rustc_hir::definitions::{DefKey, DefPathDataName}; diff --git a/compiler/rustc_middle/src/ty/sty.rs b/compiler/rustc_middle/src/ty/sty.rs index 0e1519f5a27f9..054d4e18d3b70 100644 --- a/compiler/rustc_middle/src/ty/sty.rs +++ b/compiler/rustc_middle/src/ty/sty.rs @@ -10,7 +10,7 @@ use hir::def::{CtorKind, DefKind}; use rustc_abi::{FIRST_VARIANT, FieldIdx, NumScalableVectors, ScalableElt, VariantIdx}; use rustc_errors::{ErrorGuaranteed, MultiSpan}; use rustc_hir as hir; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_macros::{StableHash, TyDecodable, TyEncodable, TypeFoldable, extension}; use rustc_span::{DUMMY_SP, Span, Symbol, kw, sym}; @@ -1734,7 +1734,7 @@ impl<'tcx> Ty<'tcx> { ty::Param(_) | ty::Alias(..) | ty::Infer(ty::TyVar(_)) => { let assoc_items = tcx.associated_item_def_ids( - tcx.require_lang_item(hir::LangItem::DiscriminantKind, DUMMY_SP), + tcx.require_lang_item(LangItem::DiscriminantKind, DUMMY_SP), ); Ty::new_projection_from_args( tcx, diff --git a/compiler/rustc_mir_build/src/builder/expr/as_constant.rs b/compiler/rustc_mir_build/src/builder/expr/as_constant.rs index caf4f8d295c8a..6e09c365dbf7c 100644 --- a/compiler/rustc_mir_build/src/builder/expr/as_constant.rs +++ b/compiler/rustc_mir_build/src/builder/expr/as_constant.rs @@ -2,7 +2,7 @@ use rustc_abi::Size; use rustc_ast as ast; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::mir::interpret::{CTFE_ALLOC_SALT, Scalar}; use rustc_middle::mir::*; use rustc_middle::thir::*; diff --git a/compiler/rustc_mir_build/src/builder/expr/into.rs b/compiler/rustc_mir_build/src/builder/expr/into.rs index bdf45e0c85cb5..977c126e588e3 100644 --- a/compiler/rustc_mir_build/src/builder/expr/into.rs +++ b/compiler/rustc_mir_build/src/builder/expr/into.rs @@ -5,7 +5,7 @@ use rustc_ast::{AsmMacro, InlineAsmOptions}; use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::stack::ensure_sufficient_stack; use rustc_hir as hir; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::mir::*; use rustc_middle::span_bug; use rustc_middle::thir::*; diff --git a/compiler/rustc_mir_build/src/builder/matches/mod.rs b/compiler/rustc_mir_build/src/builder/matches/mod.rs index 109f4de2698a4..22da174c5ca77 100644 --- a/compiler/rustc_mir_build/src/builder/matches/mod.rs +++ b/compiler/rustc_mir_build/src/builder/matches/mod.rs @@ -13,7 +13,8 @@ use itertools::Itertools; use rustc_abi::{FIRST_VARIANT, FieldIdx, VariantIdx}; use rustc_data_structures::fx::FxIndexMap; use rustc_data_structures::stack::ensure_sufficient_stack; -use rustc_hir::{BindingMode, ByRef, LangItem, LetStmt, LocalSource, Node}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{BindingMode, ByRef, LetStmt, LocalSource, Node}; use rustc_middle::middle::region::{self, TempLifetime}; use rustc_middle::mir::*; use rustc_middle::thir::{self, *}; diff --git a/compiler/rustc_mir_build/src/builder/matches/test.rs b/compiler/rustc_mir_build/src/builder/matches/test.rs index 1c234bb8d70dc..6c499315143c3 100644 --- a/compiler/rustc_mir_build/src/builder/matches/test.rs +++ b/compiler/rustc_mir_build/src/builder/matches/test.rs @@ -8,7 +8,8 @@ use std::sync::Arc; use rustc_data_structures::fx::FxIndexMap; -use rustc_hir::{LangItem, RangeEnd}; +use rustc_hir::RangeEnd; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::bug; use rustc_middle::mir::*; use rustc_middle::ty::util::IntTypeExt; diff --git a/compiler/rustc_mir_build/src/check_tail_calls.rs b/compiler/rustc_mir_build/src/check_tail_calls.rs index e148620cc62e2..057e9e727a39e 100644 --- a/compiler/rustc_mir_build/src/check_tail_calls.rs +++ b/compiler/rustc_mir_build/src/check_tail_calls.rs @@ -1,7 +1,7 @@ use rustc_abi::ExternAbi; use rustc_data_structures::stack::ensure_sufficient_stack; use rustc_errors::Applicability; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::CRATE_DEF_ID; use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags; diff --git a/compiler/rustc_mir_build/src/check_unsafety.rs b/compiler/rustc_mir_build/src/check_unsafety.rs index 69590fc351320..0ca3e26d9867f 100644 --- a/compiler/rustc_mir_build/src/check_unsafety.rs +++ b/compiler/rustc_mir_build/src/check_unsafety.rs @@ -4,6 +4,7 @@ use std::mem; use rustc_ast::AsmMacro; use rustc_data_structures::stack::ensure_sufficient_stack; use rustc_errors::DiagArgValue; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::{self as hir, BindingMode, ByRef, HirId, Mutability, find_attr}; use rustc_middle::middle::codegen_fn_attrs::{TargetFeature, TargetFeatureKind}; @@ -459,7 +460,7 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for UnsafetyVisitor<'a, 'tcx> { ); } if let Some(trait_did) = self.tcx.trait_of_assoc(func_did) - && self.tcx.is_lang_item(trait_did, hir::LangItem::Drop) + && self.tcx.is_lang_item(trait_did, LangItem::Drop) { self.requires_unsafe(expr.span, CallDropExplicitly(func_did)); } diff --git a/compiler/rustc_mir_build/src/thir/constant.rs b/compiler/rustc_mir_build/src/thir/constant.rs index 019af24613541..bf1dacceee46b 100644 --- a/compiler/rustc_mir_build/src/thir/constant.rs +++ b/compiler/rustc_mir_build/src/thir/constant.rs @@ -1,6 +1,6 @@ use rustc_abi::Size; use rustc_ast::{self as ast, UintTy}; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::bug; use rustc_middle::ty::{self, LitToConstInput, ScalarInt, Ty, TyCtxt, TypeVisitableExt as _}; use tracing::trace; diff --git a/compiler/rustc_mir_build/src/thir/cx/expr.rs b/compiler/rustc_mir_build/src/thir/cx/expr.rs index fcf2432b4d8dc..8e93c50f82005 100644 --- a/compiler/rustc_mir_build/src/thir/cx/expr.rs +++ b/compiler/rustc_mir_build/src/thir/cx/expr.rs @@ -4,9 +4,10 @@ use rustc_ast::UnsafeBinderCastKind; use rustc_data_structures::stack::ensure_sufficient_stack; use rustc_data_structures::thin_vec::ThinVec; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{AttributeKind, HasAttrs}; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; -use rustc_hir::{HirId, LangItem, find_attr}; +use rustc_hir::{HirId, find_attr}; use rustc_index::Idx; use rustc_middle::hir::place::{ Place as HirPlace, PlaceBase as HirPlaceBase, ProjectionKind as HirProjectionKind, @@ -279,7 +280,7 @@ impl<'tcx> ThirBuildCx<'tcx> { }); // kind = Pin { pointer } - let pin_did = self.tcx.require_lang_item(rustc_hir::LangItem::Pin, span); + let pin_did = self.tcx.require_lang_item(LangItem::Pin, span); let args = self.tcx.mk_args(&[new_pin_target.into()]); let kind = ExprKind::Adt(Box::new(AdtExpr { adt_def: self.tcx.adt_def(pin_did), @@ -547,7 +548,7 @@ impl<'tcx> ThirBuildCx<'tcx> { // Make `&pin mut $expr` and `&pin const $expr` into // `Pin { __pointer: &mut { $expr } }` and `Pin { __pointer: &$expr }`. hir::ExprKind::AddrOf(hir::BorrowKind::Pin, mutbl, arg_expr) => match expr_ty.kind() { - &ty::Adt(adt_def, args) if tcx.is_lang_item(adt_def.did(), hir::LangItem::Pin) => { + &ty::Adt(adt_def, args) if tcx.is_lang_item(adt_def.did(), LangItem::Pin) => { let ty = args.type_at(0); let arg_ty = self.typeck_results.expr_ty(arg_expr); let mut arg = self.mirror_expr(arg_expr); diff --git a/compiler/rustc_mir_build/src/thir/cx/mod.rs b/compiler/rustc_mir_build/src/thir/cx/mod.rs index 8e654032e8b71..aad87a99c0036 100644 --- a/compiler/rustc_mir_build/src/thir/cx/mod.rs +++ b/compiler/rustc_mir_build/src/thir/cx/mod.rs @@ -4,9 +4,9 @@ use rustc_data_structures::steal::Steal; use rustc_errors::ErrorGuaranteed; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::lang_items::LangItem; use rustc_hir::{self as hir, HirId, find_attr}; use rustc_middle::bug; use rustc_middle::thir::*; diff --git a/compiler/rustc_mir_build/src/thir/pattern/const_to_pat.rs b/compiler/rustc_mir_build/src/thir/pattern/const_to_pat.rs index 143df22452987..0230840ef2fb8 100644 --- a/compiler/rustc_mir_build/src/thir/pattern/const_to_pat.rs +++ b/compiler/rustc_mir_build/src/thir/pattern/const_to_pat.rs @@ -5,6 +5,7 @@ use rustc_apfloat::Float; use rustc_data_structures::fx::FxHashSet; use rustc_errors::{Diag, msg}; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::find_attr; use rustc_index::Idx; use rustc_infer::infer::TyCtxtInferExt; @@ -615,9 +616,8 @@ fn type_has_partial_eq_impl<'tcx>( // (If there isn't, then we can safely issue a hard // error, because that's never worked, due to compiler // using `PartialEq::eq` in this scenario in the past.) - let partial_eq_trait_id = tcx.require_lang_item(hir::LangItem::PartialEq, DUMMY_SP); - let structural_partial_eq_trait_id = - tcx.require_lang_item(hir::LangItem::StructuralPeq, DUMMY_SP); + let partial_eq_trait_id = tcx.require_lang_item(LangItem::PartialEq, DUMMY_SP); + let structural_partial_eq_trait_id = tcx.require_lang_item(LangItem::StructuralPeq, DUMMY_SP); // This *could* accept a type that isn't actually `PartialEq`, because region bounds get // ignored. However that should be pretty much impossible since consts that do not depend on diff --git a/compiler/rustc_mir_transform/src/check_alignment.rs b/compiler/rustc_mir_transform/src/check_alignment.rs index ee4fe5b2005c7..eeb96d109545e 100644 --- a/compiler/rustc_mir_transform/src/check_alignment.rs +++ b/compiler/rustc_mir_transform/src/check_alignment.rs @@ -1,5 +1,5 @@ use rustc_abi::Align; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_index::IndexVec; use rustc_middle::mir::interpret::Scalar; use rustc_middle::mir::visit::PlaceContext; diff --git a/compiler/rustc_mir_transform/src/check_call_recursion.rs b/compiler/rustc_mir_transform/src/check_call_recursion.rs index 1a3f8fcf5f678..493d9d40f47e1 100644 --- a/compiler/rustc_mir_transform/src/check_call_recursion.rs +++ b/compiler/rustc_mir_transform/src/check_call_recursion.rs @@ -3,7 +3,7 @@ use std::ops::ControlFlow; use rustc_data_structures::graph::iterate::{ NodeStatus, TriColorDepthFirstSearch, TriColorVisitor, }; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_middle::mir::{self, BasicBlock, BasicBlocks, Body, Terminator, TerminatorKind}; use rustc_middle::ty::{self, GenericArg, GenericArgs, Instance, Ty, TyCtxt, Unnormalized}; diff --git a/compiler/rustc_mir_transform/src/check_enums.rs b/compiler/rustc_mir_transform/src/check_enums.rs index 438463d199c66..3233d7022c520 100644 --- a/compiler/rustc_mir_transform/src/check_enums.rs +++ b/compiler/rustc_mir_transform/src/check_enums.rs @@ -1,6 +1,6 @@ use rustc_abi::{Scalar, Size, TagEncoding, Variants, WrappingRange}; use rustc_data_structures::thin_vec::ThinVec; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_index::IndexVec; use rustc_middle::bug; use rustc_middle::mir::visit::Visitor; diff --git a/compiler/rustc_mir_transform/src/check_null.rs b/compiler/rustc_mir_transform/src/check_null.rs index 03208458f2907..7b4ccb11c7cf4 100644 --- a/compiler/rustc_mir_transform/src/check_null.rs +++ b/compiler/rustc_mir_transform/src/check_null.rs @@ -1,4 +1,4 @@ -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_index::IndexVec; use rustc_middle::mir::visit::{MutatingUseContext, NonMutatingUseContext, PlaceContext}; use rustc_middle::mir::*; diff --git a/compiler/rustc_mir_transform/src/check_pointers.rs b/compiler/rustc_mir_transform/src/check_pointers.rs index 0a87e0ed5c78e..a8c2626757e05 100644 --- a/compiler/rustc_mir_transform/src/check_pointers.rs +++ b/compiler/rustc_mir_transform/src/check_pointers.rs @@ -1,5 +1,5 @@ use rustc_data_structures::thin_vec::ThinVec; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_index::IndexVec; use rustc_middle::mir::visit::{MutatingUseContext, NonMutatingUseContext, PlaceContext, Visitor}; use rustc_middle::mir::*; diff --git a/compiler/rustc_mir_transform/src/coroutine/by_move_body.rs b/compiler/rustc_mir_transform/src/coroutine/by_move_body.rs index 259b4b813f6a1..88ffe5861a697 100644 --- a/compiler/rustc_mir_transform/src/coroutine/by_move_body.rs +++ b/compiler/rustc_mir_transform/src/coroutine/by_move_body.rs @@ -70,10 +70,10 @@ use rustc_abi::{FieldIdx, VariantIdx}; use rustc_data_structures::steal::Steal; use rustc_data_structures::unord::UnordMap; +use rustc_hir as hir; use rustc_hir::def::DefKind; use rustc_hir::def_id::{DefId, LocalDefId}; use rustc_hir::definitions::PerParentDisambiguatorState; -use rustc_hir::{self as hir}; use rustc_middle::bug; use rustc_middle::hir::place::{Projection, ProjectionKind}; use rustc_middle::mir::visit::MutVisitor; diff --git a/compiler/rustc_mir_transform/src/coroutine/layout.rs b/compiler/rustc_mir_transform/src/coroutine/layout.rs index 850b933a9f0bc..b460c1e82b7e9 100644 --- a/compiler/rustc_mir_transform/src/coroutine/layout.rs +++ b/compiler/rustc_mir_transform/src/coroutine/layout.rs @@ -26,6 +26,7 @@ use itertools::izip; use rustc_abi::{FieldIdx, VariantIdx}; use rustc_data_structures::fx::FxHashSet; use rustc_errors::pluralize; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{self as hir, find_attr}; use rustc_index::bit_set::{BitMatrix, DenseBitSet}; use rustc_index::{Idx, IndexVec}; @@ -504,7 +505,7 @@ fn check_field_tys_sized<'tcx>( ), param_env, field_ty.ty, - tcx.require_lang_item(hir::LangItem::Sized, field_ty.source_info.span), + tcx.require_lang_item(LangItem::Sized, field_ty.source_info.span), ); } diff --git a/compiler/rustc_mir_transform/src/coroutine/mod.rs b/compiler/rustc_mir_transform/src/coroutine/mod.rs index 6d9d0d35d3ed6..c5c65553dae8c 100644 --- a/compiler/rustc_mir_transform/src/coroutine/mod.rs +++ b/compiler/rustc_mir_transform/src/coroutine/mod.rs @@ -64,7 +64,7 @@ pub(super) use layout::mir_coroutine_witnesses; use layout::{CoroutineSavedLocals, compute_layout, locals_live_across_suspend_points}; use rustc_abi::{FieldIdx, VariantIdx}; use rustc_data_structures::thin_vec::ThinVec; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{self as hir, CoroutineDesugaring, CoroutineKind}; use rustc_index::bit_set::{BitMatrix, DenseBitSet, GrowableBitSet}; use rustc_index::{Idx, IndexVec, indexvec}; diff --git a/compiler/rustc_mir_transform/src/elaborate_drop.rs b/compiler/rustc_mir_transform/src/elaborate_drop.rs index 4a309607fdf4e..492759d666c83 100644 --- a/compiler/rustc_mir_transform/src/elaborate_drop.rs +++ b/compiler/rustc_mir_transform/src/elaborate_drop.rs @@ -3,7 +3,7 @@ use std::{fmt, iter, mem}; use itertools::Itertools; use rustc_abi::{FIRST_VARIANT, FieldIdx, VariantIdx}; use rustc_data_structures::thin_vec::ThinVec; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{CoroutineDesugaring, CoroutineKind}; use rustc_index::Idx; use rustc_middle::mir::*; diff --git a/compiler/rustc_mir_transform/src/inline.rs b/compiler/rustc_mir_transform/src/inline.rs index 765fd8984b446..47df95a37a60f 100644 --- a/compiler/rustc_mir_transform/src/inline.rs +++ b/compiler/rustc_mir_transform/src/inline.rs @@ -5,6 +5,7 @@ use std::{debug_assert_matches, iter}; use rustc_abi::{ExternAbi, FieldIdx}; use rustc_data_structures::thin_vec::ThinVec; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{InlineAttr, OptimizeAttr}; use rustc_hir::def::DefKind; use rustc_hir::def_id::DefId; @@ -774,9 +775,7 @@ fn check_mir_is_available<'tcx, I: Inliner<'tcx>>( } if let Some(callee_def_id) = callee_def_id.as_local() - && !inliner - .tcx() - .is_lang_item(inliner.tcx().parent(caller_def_id), rustc_hir::LangItem::FnOnce) + && !inliner.tcx().is_lang_item(inliner.tcx().parent(caller_def_id), LangItem::FnOnce) { // If we know for sure that the function we're calling will itself try to // call us, then we avoid inlining that function. diff --git a/compiler/rustc_mir_transform/src/instsimplify.rs b/compiler/rustc_mir_transform/src/instsimplify.rs index 9d92ac29870b5..8f8b4aec7cbbc 100644 --- a/compiler/rustc_mir_transform/src/instsimplify.rs +++ b/compiler/rustc_mir_transform/src/instsimplify.rs @@ -1,7 +1,8 @@ //! Performs various peephole optimizations. use rustc_abi::{ExternAbi, Integer}; -use rustc_hir::{LangItem, find_attr}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::find_attr; use rustc_index::IndexVec; use rustc_middle::bug; use rustc_middle::mir::visit::MutVisitor; diff --git a/compiler/rustc_mir_transform/src/shim.rs b/compiler/rustc_mir_transform/src/shim.rs index 9743d7b552862..0561c04bc1db3 100644 --- a/compiler/rustc_mir_transform/src/shim.rs +++ b/compiler/rustc_mir_transform/src/shim.rs @@ -3,8 +3,8 @@ use std::{assert_matches, fmt, iter}; use rustc_abi::{ExternAbi, FIRST_VARIANT, FieldIdx, VariantIdx}; use rustc_data_structures::thin_vec::ThinVec; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::lang_items::LangItem; use rustc_index::{Idx, IndexVec}; use rustc_middle::mir::visit::{MutVisitor, PlaceContext}; use rustc_middle::mir::*; diff --git a/compiler/rustc_mir_transform/src/shim/async_destructor_ctor.rs b/compiler/rustc_mir_transform/src/shim/async_destructor_ctor.rs index 085a978b9956d..1d91bc1cab988 100644 --- a/compiler/rustc_mir_transform/src/shim/async_destructor_ctor.rs +++ b/compiler/rustc_mir_transform/src/shim/async_destructor_ctor.rs @@ -1,5 +1,5 @@ +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::lang_items::LangItem; use rustc_hir::{CoroutineDesugaring, CoroutineKind, CoroutineSource}; use rustc_index::{Idx, IndexVec}; use rustc_middle::mir::{ diff --git a/compiler/rustc_mir_transform/src/sroa.rs b/compiler/rustc_mir_transform/src/sroa.rs index b16336fb9150c..a2bda3032f567 100644 --- a/compiler/rustc_mir_transform/src/sroa.rs +++ b/compiler/rustc_mir_transform/src/sroa.rs @@ -1,6 +1,6 @@ use rustc_abi::FieldIdx; use rustc_data_structures::flat_map_in_place::FlatMapInPlace; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_index::IndexVec; use rustc_index::bit_set::{DenseBitSet, GrowableBitSet}; use rustc_middle::bug; diff --git a/compiler/rustc_mir_transform/src/validate.rs b/compiler/rustc_mir_transform/src/validate.rs index b4eb90f4507c9..8fe2263a7c1af 100644 --- a/compiler/rustc_mir_transform/src/validate.rs +++ b/compiler/rustc_mir_transform/src/validate.rs @@ -2,8 +2,8 @@ use rustc_abi::{ExternAbi, FIRST_VARIANT, Size}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; -use rustc_hir::LangItem; use rustc_hir::attrs::InlineAttr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_index::IndexVec; use rustc_index::bit_set::DenseBitSet; use rustc_infer::infer::TyCtxtInferExt; diff --git a/compiler/rustc_monomorphize/src/collector.rs b/compiler/rustc_monomorphize/src/collector.rs index fae1ee7256683..105c8e0ed7388 100644 --- a/compiler/rustc_monomorphize/src/collector.rs +++ b/compiler/rustc_monomorphize/src/collector.rs @@ -214,9 +214,9 @@ use rustc_data_structures::sync::{Lock, par_for_each_in}; use rustc_data_structures::unord::{UnordMap, UnordSet}; use rustc_hir as hir; use rustc_hir::attrs::InlineAttr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::{DefId, DefIdMap, LocalDefId}; -use rustc_hir::lang_items::LangItem; use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags; use rustc_middle::mir::interpret::{AllocId, ErrorHandled, GlobalAlloc, Scalar}; use rustc_middle::mir::visit::Visitor as MirVisitor; diff --git a/compiler/rustc_monomorphize/src/lib.rs b/compiler/rustc_monomorphize/src/lib.rs index 0b5a3d1f267da..c72ee9dd23393 100644 --- a/compiler/rustc_monomorphize/src/lib.rs +++ b/compiler/rustc_monomorphize/src/lib.rs @@ -4,7 +4,7 @@ #![feature(once_cell_get_mut)] // tidy-alphabetical-end -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::query::TyCtxtAt; use rustc_middle::ty::adjustment::CustomCoerceUnsized; use rustc_middle::ty::{self, Ty}; diff --git a/compiler/rustc_monomorphize/src/partitioning.rs b/compiler/rustc_monomorphize/src/partitioning.rs index 5cfae525d7e5e..cdd18654f0930 100644 --- a/compiler/rustc_monomorphize/src/partitioning.rs +++ b/compiler/rustc_monomorphize/src/partitioning.rs @@ -102,7 +102,7 @@ use rustc_data_structures::either::Either; use rustc_data_structures::fx::{FxIndexMap, FxIndexSet}; use rustc_data_structures::sync::par_join; use rustc_data_structures::unord::{UnordMap, UnordSet}; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{InlineAttr, Linkage}; use rustc_hir::def::DefKind; use rustc_hir::def_id::{DefId, DefIdSet, LOCAL_CRATE}; diff --git a/compiler/rustc_passes/src/check_attr.rs b/compiler/rustc_passes/src/check_attr.rs index d29d5280e77e9..44c34a2abddd1 100644 --- a/compiler/rustc_passes/src/check_attr.rs +++ b/compiler/rustc_passes/src/check_attr.rs @@ -15,6 +15,7 @@ use rustc_data_structures::thin_vec::ThinVec; use rustc_errors::{DiagCtxtHandle, IntoDiagArg, MultiSpan, msg}; use rustc_feature::BUILTIN_ATTRIBUTE_MAP; use rustc_hir::attrs::diagnostic::Directive; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{ AttributeKind, DocAttribute, DocInline, EiiDecl, EiiImpl, EiiImplResolution, InlineAttr, OptimizeAttr, ReprAttr, @@ -1130,7 +1131,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> { && let hir::ItemKind::Impl(impl_) = item.kind && let Some(of_trait) = impl_.of_trait && let Some(def_id) = of_trait.trait_ref.trait_def_id() - && self.tcx.is_lang_item(def_id, hir::LangItem::Drop) + && self.tcx.is_lang_item(def_id, LangItem::Drop) { return; } diff --git a/compiler/rustc_passes/src/diagnostic_items.rs b/compiler/rustc_passes/src/diagnostic_items.rs index e950a26af91a3..74cd94259f4b4 100644 --- a/compiler/rustc_passes/src/diagnostic_items.rs +++ b/compiler/rustc_passes/src/diagnostic_items.rs @@ -9,7 +9,7 @@ //! //! * Compiler internal types like `Ty` and `TyCtxt` -use rustc_hir::diagnostic_items::DiagnosticItems; +use rustc_hir::attrs::diagnostic_items::DiagnosticItems; use rustc_hir::{CRATE_OWNER_ID, OwnerId, find_attr}; use rustc_middle::query::{LocalCrate, Providers}; use rustc_middle::ty::TyCtxt; diff --git a/compiler/rustc_passes/src/lang_items.rs b/compiler/rustc_passes/src/lang_items.rs index bf8f071c822d3..d26069b07b854 100644 --- a/compiler/rustc_passes/src/lang_items.rs +++ b/compiler/rustc_passes/src/lang_items.rs @@ -9,9 +9,9 @@ use rustc_ast as ast; use rustc_ast::visit; +use rustc_hir::Target; +use rustc_hir::attrs::lang_items::{GenericRequirement, LangItem, LanguageItems}; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::lang_items::GenericRequirement; -use rustc_hir::{LangItem, LanguageItems, Target}; use rustc_middle::query::Providers; use rustc_middle::ty::{ResolverAstLowering, TyCtxt}; use rustc_session::cstore::ExternCrate; diff --git a/compiler/rustc_passes/src/weak_lang_items.rs b/compiler/rustc_passes/src/weak_lang_items.rs index 6c151378d2e73..3d451fde8adb8 100644 --- a/compiler/rustc_passes/src/weak_lang_items.rs +++ b/compiler/rustc_passes/src/weak_lang_items.rs @@ -1,8 +1,8 @@ //! Validity checking for weak lang items use rustc_data_structures::fx::FxHashSet; -use rustc_hir::lang_items::{self, LangItem}; -use rustc_hir::weak_lang_items::WEAK_LANG_ITEMS; +use rustc_hir::attrs::lang_items::{self, LangItem}; +use rustc_hir::attrs::weak_lang_items::WEAK_LANG_ITEMS; use rustc_middle::middle::lang_items::required; use rustc_middle::ty::TyCtxt; use rustc_session::config::CrateType; diff --git a/compiler/rustc_public_bridge/src/context/impls.rs b/compiler/rustc_public_bridge/src/context/impls.rs index f648a85249dfc..345e83ca21b69 100644 --- a/compiler/rustc_public_bridge/src/context/impls.rs +++ b/compiler/rustc_public_bridge/src/context/impls.rs @@ -5,8 +5,9 @@ use std::iter; use rustc_abi::{Endian, Layout, ReprOptions}; +use rustc_hir::Attribute; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; -use rustc_hir::{Attribute, LangItem}; use rustc_middle::mir::interpret::{AllocId, ConstAllocation, ErrorHandled, GlobalAlloc, Scalar}; use rustc_middle::mir::{BinOp, Body, Const as MirConst, ConstValue, UnOp}; use rustc_middle::ty::layout::{FnAbiOf, LayoutOf}; diff --git a/compiler/rustc_sanitizers/src/cfi/typeid/itanium_cxx_abi/transform.rs b/compiler/rustc_sanitizers/src/cfi/typeid/itanium_cxx_abi/transform.rs index 6bc1647c4b05b..1d4accd8ad3b6 100644 --- a/compiler/rustc_sanitizers/src/cfi/typeid/itanium_cxx_abi/transform.rs +++ b/compiler/rustc_sanitizers/src/cfi/typeid/itanium_cxx_abi/transform.rs @@ -6,7 +6,8 @@ use std::iter; -use rustc_hir::{self as hir, LangItem, find_attr}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{self as hir, find_attr}; use rustc_middle::bug; use rustc_middle::ty::{ self, AssocContainer, ExistentialPredicateStableCmpExt as _, Instance, IntTy, List, TraitRef, diff --git a/compiler/rustc_span/src/analyze_source_file.rs b/compiler/rustc_span/src/analyze_source_file.rs index bb2cda77dffff..59cda1238cc77 100644 --- a/compiler/rustc_span/src/analyze_source_file.rs +++ b/compiler/rustc_span/src/analyze_source_file.rs @@ -193,7 +193,7 @@ cfg_select! { assert!(intra_chunk_offset == 0); // Check for newlines in the chunk - let newlines_test = lsx_vseqi_b::<{b'\n' as i32}>(chunk); + let newlines_test = lsx_vseqi_b::<{ b'\n' as i32 }>(chunk); let newlines_mask = lsx_vmskltz_b(newlines_test); let mut newlines_mask = lsx_vpickve2gr_w::<0>(newlines_mask); diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/note_and_explain.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/note_and_explain.rs index 7fcc53c2b4348..c28970829f0a4 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/note_and_explain.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/note_and_explain.rs @@ -1,7 +1,8 @@ use rustc_errors::Applicability::{MachineApplicable, MaybeIncorrect}; use rustc_errors::{Diag, MultiSpan, pluralize}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; -use rustc_hir::{self as hir, LangItem, find_attr}; +use rustc_hir::{self as hir, find_attr}; use rustc_middle::traits::{ObligationCause, ObligationCauseCode}; use rustc_middle::ty::error::{ExpectedFound, TypeError}; use rustc_middle::ty::fast_reject::DeepRejectCtxt; diff --git a/compiler/rustc_trait_selection/src/error_reporting/traits/ambiguity.rs b/compiler/rustc_trait_selection/src/error_reporting/traits/ambiguity.rs index 3ef350613ee16..ec855b4debd04 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/traits/ambiguity.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/traits/ambiguity.rs @@ -2,7 +2,7 @@ use std::ops::ControlFlow; use rustc_errors::{Applicability, Diag, E0283, E0284, E0790, MultiSpan, struct_span_code_err}; use rustc_hir as hir; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{CRATE_DEF_ID, DefId}; use rustc_hir::intravisit::Visitor as _; diff --git a/compiler/rustc_trait_selection/src/error_reporting/traits/call_kind.rs b/compiler/rustc_trait_selection/src/error_reporting/traits/call_kind.rs index bdd22f89923f9..3b1feeaa1424a 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/traits/call_kind.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/traits/call_kind.rs @@ -2,9 +2,9 @@ //! as well as errors when attempting to call a non-const function in a const //! context. +use rustc_hir::attrs::lang_items::{self, LangItem}; use rustc_hir::def::DefKind; use rustc_hir::def_id::DefId; -use rustc_hir::{LangItem, lang_items}; use rustc_middle::ty::{ self, AssocContainer, GenericArgsRef, Instance, Ty, TyCtxt, TypingEnv, Unnormalized, }; diff --git a/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs b/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs index 95054de6d0734..d90c3e81b68ea 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs @@ -14,9 +14,10 @@ use rustc_errors::{ pluralize, struct_span_code_err, }; use rustc_hir::attrs::diagnostic::CustomDiagnostic; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{DefId, LOCAL_CRATE, LocalDefId}; use rustc_hir::intravisit::Visitor; -use rustc_hir::{self as hir, LangItem, Node, expr_needs_parens, find_attr}; +use rustc_hir::{self as hir, Node, expr_needs_parens, find_attr}; use rustc_infer::infer::{InferOk, TypeTrace}; use rustc_infer::traits::solve::Goal; use rustc_infer::traits::{ImplSource, TraitErrors}; diff --git a/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs b/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs index d2e8f136d7491..15f82012b75ab 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs @@ -13,10 +13,10 @@ use rustc_errors::{ Applicability, Diag, EmissionGuarantee, MultiSpan, Style, SuggestionStyle, pluralize, struct_span_code_err, }; +use rustc_hir::attrs::lang_items::{self, LangItem}; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::intravisit::{Visitor, VisitorExt}; -use rustc_hir::lang_items::LangItem; use rustc_hir::{ self as hir, AmbigArg, CoroutineDesugaring, CoroutineKind, CoroutineSource, Expr, HirId, Node, expr_needs_parens, @@ -822,7 +822,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> { && let Some(rhs_ty) = typeck_results.expr_ty_opt(rhs) && let trait_pred = predicate.unwrap_or(trait_pred) // Only run this code on binary operators - && hir::lang_items::BINARY_OPERATORS + && lang_items::BINARY_OPERATORS .iter() .filter_map(|&op| self.tcx.lang_items().get(op)) .any(|op| { diff --git a/compiler/rustc_trait_selection/src/infer.rs b/compiler/rustc_trait_selection/src/infer.rs index a633f5de16c6f..f0fb44523d651 100644 --- a/compiler/rustc_trait_selection/src/infer.rs +++ b/compiler/rustc_trait_selection/src/infer.rs @@ -1,7 +1,7 @@ use std::fmt::Debug; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::lang_items::LangItem; pub use rustc_infer::infer::*; use rustc_infer::traits::TraitErrors; use rustc_macros::extension; diff --git a/compiler/rustc_trait_selection/src/solve/delegate.rs b/compiler/rustc_trait_selection/src/solve/delegate.rs index bb1e6c168c47b..edfc988dca71f 100644 --- a/compiler/rustc_trait_selection/src/solve/delegate.rs +++ b/compiler/rustc_trait_selection/src/solve/delegate.rs @@ -2,7 +2,7 @@ use std::collections::hash_map::Entry; use std::ops::Deref; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::{CRATE_DEF_ID, DefId}; use rustc_infer::infer::canonical::query_response::make_query_region_constraints; use rustc_infer::infer::canonical::{ diff --git a/compiler/rustc_trait_selection/src/solve/fulfill/derive_errors.rs b/compiler/rustc_trait_selection/src/solve/fulfill/derive_errors.rs index 18c228d5ddc55..a25848b30e2fc 100644 --- a/compiler/rustc_trait_selection/src/solve/fulfill/derive_errors.rs +++ b/compiler/rustc_trait_selection/src/solve/fulfill/derive_errors.rs @@ -1,6 +1,6 @@ use std::ops::ControlFlow; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::InferCtxt; use rustc_infer::traits::solve::{CandidateSource, GoalSource, MaybeCause}; use rustc_infer::traits::{ diff --git a/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs b/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs index 3c5d473dcc045..6d86a2cce6400 100644 --- a/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs +++ b/compiler/rustc_trait_selection/src/traits/dyn_compatibility.rs @@ -7,8 +7,9 @@ use std::ops::ControlFlow; use rustc_errors::FatalError; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem}; use rustc_middle::query::Providers; use rustc_middle::ty::{ self, EarlyBinder, GenericArgs, Ty, TyCtxt, TypeFoldable, TypeFolder, TypeSuperFoldable, diff --git a/compiler/rustc_trait_selection/src/traits/effects.rs b/compiler/rustc_trait_selection/src/traits/effects.rs index 567845a34bd8b..c0a18f9d14fcb 100644 --- a/compiler/rustc_trait_selection/src/traits/effects.rs +++ b/compiler/rustc_trait_selection/src/traits/effects.rs @@ -1,4 +1,5 @@ -use rustc_hir::{self as hir, LangItem}; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::{BoundRegionConversionTime, DefineOpaqueTypes}; use rustc_infer::traits::{ ImplDerivedHostCause, ImplSource, Obligation, ObligationCause, ObligationCauseCode, diff --git a/compiler/rustc_trait_selection/src/traits/misc.rs b/compiler/rustc_trait_selection/src/traits/misc.rs index c5c4288ea64b2..97f6e2ed0b122 100644 --- a/compiler/rustc_trait_selection/src/traits/misc.rs +++ b/compiler/rustc_trait_selection/src/traits/misc.rs @@ -1,8 +1,8 @@ //! Miscellaneous type-system utilities that are too small to deserve their own modules. -use hir::LangItem; use rustc_ast::Mutability; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::{RegionResolutionError, TyCtxtInferExt}; use rustc_infer::traits::TraitErrors; use rustc_middle::bug; @@ -69,16 +69,8 @@ pub fn type_allowed_to_implement_copy<'tcx>( _ => return Err(CopyImplementationError::NotAnAdt), }; - all_fields_implement_trait( - tcx, - param_env, - self_type, - adt, - args, - parent_cause, - hir::LangItem::Copy, - ) - .map_err(CopyImplementationError::InfringingFields)?; + all_fields_implement_trait(tcx, param_env, self_type, adt, args, parent_cause, LangItem::Copy) + .map_err(CopyImplementationError::InfringingFields)?; if let Some(did) = adt.destructor(tcx).map(|dtor| dtor.did) { return Err(CopyImplementationError::HasDestructor(did)); diff --git a/compiler/rustc_trait_selection/src/traits/project.rs b/compiler/rustc_trait_selection/src/traits/project.rs index 71cbe0a28c780..72954c0818415 100644 --- a/compiler/rustc_trait_selection/src/traits/project.rs +++ b/compiler/rustc_trait_selection/src/traits/project.rs @@ -5,8 +5,8 @@ use std::ops::ControlFlow; use rustc_data_structures::sso::SsoHashSet; use rustc_data_structures::stack::ensure_sufficient_stack; use rustc_errors::ErrorGuaranteed; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::lang_items::LangItem; use rustc_infer::infer::DefineOpaqueTypes; use rustc_infer::infer::resolve::OpportunisticRegionResolver; use rustc_infer::traits::{ObligationCauseCode, PredicateObligations}; diff --git a/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs b/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs index 84b51f42c411e..db863cb42f63e 100644 --- a/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs +++ b/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs @@ -8,9 +8,9 @@ use std::ops::ControlFlow; -use hir::LangItem; use hir::def_id::DefId; use rustc_data_structures::fx::{FxHashSet, FxIndexSet}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{self as hir, CoroutineDesugaring, CoroutineKind}; use rustc_infer::traits::{Obligation, PolyTraitObligation, PredicateObligation, SelectionError}; use rustc_middle::ty::fast_reject::DeepRejectCtxt; diff --git a/compiler/rustc_trait_selection/src/traits/select/confirmation.rs b/compiler/rustc_trait_selection/src/traits/select/confirmation.rs index 83387e4b7331e..d04f4ea587dc5 100644 --- a/compiler/rustc_trait_selection/src/traits/select/confirmation.rs +++ b/compiler/rustc_trait_selection/src/traits/select/confirmation.rs @@ -10,7 +10,7 @@ use std::ops::ControlFlow; use rustc_data_structures::stack::ensure_sufficient_stack; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::{BoundRegionConversionTime, DefineOpaqueTypes, InferOk}; use rustc_infer::traits::ObligationCauseCode; use rustc_middle::traits::{BuiltinImplSource, SignatureMismatchData}; diff --git a/compiler/rustc_trait_selection/src/traits/select/mod.rs b/compiler/rustc_trait_selection/src/traits/select/mod.rs index ea71d3f7da234..4af20d1ad59a2 100644 --- a/compiler/rustc_trait_selection/src/traits/select/mod.rs +++ b/compiler/rustc_trait_selection/src/traits/select/mod.rs @@ -11,8 +11,9 @@ use hir::def::DefKind; use rustc_data_structures::fx::{FxIndexMap, FxIndexSet}; use rustc_data_structures::stack::ensure_sufficient_stack; use rustc_errors::{Diag, EmissionGuarantee}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem, find_attr}; +use rustc_hir::{self as hir, find_attr}; use rustc_infer::infer::BoundRegionConversionTime::{self, HigherRankedType}; use rustc_infer::infer::DefineOpaqueTypes; use rustc_infer::infer::at::ToTrace; diff --git a/compiler/rustc_trait_selection/src/traits/util.rs b/compiler/rustc_trait_selection/src/traits/util.rs index 019214c210e7d..e611b4fc6b6ac 100644 --- a/compiler/rustc_trait_selection/src/traits/util.rs +++ b/compiler/rustc_trait_selection/src/traits/util.rs @@ -1,7 +1,7 @@ use std::collections::VecDeque; use rustc_data_structures::fx::FxHashSet; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_infer::infer::InferCtxt; use rustc_infer::traits::PolyTraitObligation; diff --git a/compiler/rustc_trait_selection/src/traits/wf.rs b/compiler/rustc_trait_selection/src/traits/wf.rs index 1b2e19fd05316..28efd58ca48fd 100644 --- a/compiler/rustc_trait_selection/src/traits/wf.rs +++ b/compiler/rustc_trait_selection/src/traits/wf.rs @@ -6,7 +6,7 @@ use std::iter; use rustc_hir as hir; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::traits::{ObligationCauseCode, PredicateObligations}; use rustc_middle::bug; use rustc_middle::ty::{ diff --git a/compiler/rustc_transmute/src/lib.rs b/compiler/rustc_transmute/src/lib.rs index e504ce0051398..0c031d978d6ac 100644 --- a/compiler/rustc_transmute/src/lib.rs +++ b/compiler/rustc_transmute/src/lib.rs @@ -89,7 +89,7 @@ pub enum Reason { #[cfg(feature = "rustc")] mod rustc { - use rustc_hir::lang_items::LangItem; + use rustc_hir::attrs::lang_items::LangItem; use rustc_middle::ty::{Const, Region, Ty, TyCtxt}; use super::*; diff --git a/compiler/rustc_ty_utils/src/abi.rs b/compiler/rustc_ty_utils/src/abi.rs index ad8918f70a582..1f2c054c9323a 100644 --- a/compiler/rustc_ty_utils/src/abi.rs +++ b/compiler/rustc_ty_utils/src/abi.rs @@ -2,7 +2,7 @@ use std::{assert_matches, iter}; use rustc_abi::Primitive::Pointer; use rustc_abi::{Align, BackendRepr, ExternAbi, PointerKind, Scalar, Size}; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{self as hir, find_attr}; use rustc_middle::bug; use rustc_middle::middle::deduced_param_attrs::DeducedParamAttrs; diff --git a/compiler/rustc_ty_utils/src/common_traits.rs b/compiler/rustc_ty_utils/src/common_traits.rs index a3f1be77f47a6..4d25a2886fa27 100644 --- a/compiler/rustc_ty_utils/src/common_traits.rs +++ b/compiler/rustc_ty_utils/src/common_traits.rs @@ -1,6 +1,6 @@ //! Queries for checking whether a type implements one of a few common traits. -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::TyCtxtInferExt; use rustc_middle::query::Providers; use rustc_middle::ty::{self, Ty, TyCtxt}; diff --git a/compiler/rustc_ty_utils/src/instance.rs b/compiler/rustc_ty_utils/src/instance.rs index 3862f043fea09..c0f476a7feaca 100644 --- a/compiler/rustc_ty_utils/src/instance.rs +++ b/compiler/rustc_ty_utils/src/instance.rs @@ -1,5 +1,5 @@ use rustc_errors::ErrorGuaranteed; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_hir::def_id::DefId; use rustc_infer::infer::TyCtxtInferExt; diff --git a/compiler/rustc_ty_utils/src/structural_match.rs b/compiler/rustc_ty_utils/src/structural_match.rs index a3b9d49b30900..85d13cfda743b 100644 --- a/compiler/rustc_ty_utils/src/structural_match.rs +++ b/compiler/rustc_ty_utils/src/structural_match.rs @@ -1,4 +1,4 @@ -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_infer::infer::TyCtxtInferExt; use rustc_middle::query::Providers; use rustc_middle::ty::{self, Ty, TyCtxt, TypingMode}; diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 9186b76f5d2b2..343a93ba0e3f6 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -39,10 +39,11 @@ use rustc_data_structures::thin_vec::ThinVec; use rustc_errors::codes::*; use rustc_errors::{FatalError, struct_span_code_err}; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{AttributeKind, DocAttribute, DocInline}; use rustc_hir::def::{CtorKind, DefKind, MacroKinds, Res}; use rustc_hir::def_id::{DefId, DefIdMap, DefIdSet, LOCAL_CRATE, LocalDefId}; -use rustc_hir::{LangItem, PredicateOrigin, find_attr}; +use rustc_hir::{PredicateOrigin, find_attr}; use rustc_hir_analysis::{lower_const_arg_for_rustdoc, lower_ty}; use rustc_middle::metadata::Reexport; use rustc_middle::middle::resolve_bound_vars as rbv; diff --git a/src/librustdoc/clean/simplify.rs b/src/librustdoc/clean/simplify.rs index a3732fb727dbd..98c09d1134fe6 100644 --- a/src/librustdoc/clean/simplify.rs +++ b/src/librustdoc/clean/simplify.rs @@ -14,6 +14,7 @@ use rustc_data_structures::fx::FxIndexMap; use rustc_data_structures::thin_vec::ThinVec; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_middle::ty::{TyCtxt, Unnormalized}; @@ -161,8 +162,8 @@ pub(crate) fn sizedness_bounds(cx: &mut DocContext<'_>, generics: &mut clean::Ge let Some(param_sizedness) = type_params.get_mut(param) else { return true }; let sizedness = match cx.tcx.as_lang_item(trait_ref.trait_.def_id()) { - Some(hir::LangItem::Sized) => Sizedness::Sized, - Some(hir::LangItem::MetaSized) => Sizedness::MetaSized, + Some(LangItem::Sized) => Sizedness::Sized, + Some(LangItem::MetaSized) => Sizedness::MetaSized, _ => return true, }; diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 56a73955abce0..201ae46fdeb28 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -11,10 +11,10 @@ use rustc_ast as ast; use rustc_data_structures::fx::{FxHashSet, FxIndexMap, FxIndexSet}; use rustc_data_structures::thin_vec::ThinVec; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::attrs::{AttributeKind, DeprecatedSince, Deprecation, DocAttribute}; use rustc_hir::def::{CtorKind, DefKind, MacroKinds, Res}; use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE, LocalDefId}; -use rustc_hir::lang_items::LangItem; use rustc_hir::{Attribute, BodyId, ConstStability, Mutability, Stability, StableSince, find_attr}; use rustc_index::IndexVec; use rustc_metadata::rendered_const; diff --git a/src/tools/clippy/clippy_lints/src/assert_is_empty.rs b/src/tools/clippy/clippy_lints/src/assert_is_empty.rs index cfaa3c6fd64e9..e9d07e04dfeb6 100644 --- a/src/tools/clippy/clippy_lints/src/assert_is_empty.rs +++ b/src/tools/clippy/clippy_lints/src/assert_is_empty.rs @@ -6,7 +6,8 @@ use clippy_utils::sugg::Sugg; use clippy_utils::sym; use clippy_utils::ty::implements_trait; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem, UnOp}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, UnOp}; use rustc_lint::{LateContext, LateLintPass, LintContext as _}; use rustc_middle::ty::{self, Ty}; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/box_default.rs b/src/tools/clippy/clippy_lints/src/box_default.rs index e509d2bf34083..18f1f633f89a6 100644 --- a/src/tools/clippy/clippy_lints/src/box_default.rs +++ b/src/tools/clippy/clippy_lints/src/box_default.rs @@ -4,9 +4,10 @@ use clippy_utils::res::{MaybeDef as _, MaybeResPath as _}; use clippy_utils::ty::expr_sig; use clippy_utils::{is_default_equivalent, sym}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::Res; use rustc_hir::intravisit::{InferKind, Visitor, VisitorExt as _, walk_ty}; -use rustc_hir::{AmbigArg, Block, Expr, ExprKind, HirId, LangItem, LetStmt, Node, QPath, Ty, TyKind}; +use rustc_hir::{AmbigArg, Block, Expr, ExprKind, HirId, LetStmt, Node, QPath, Ty, TyKind}; use rustc_lint::{LateContext, LateLintPass, LintContext as _}; use rustc_session::declare_lint_pass; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/cloned_ref_to_slice_refs.rs b/src/tools/clippy/clippy_lints/src/cloned_ref_to_slice_refs.rs index bc1e21c99faa2..3b4ac62abd605 100644 --- a/src/tools/clippy/clippy_lints/src/cloned_ref_to_slice_refs.rs +++ b/src/tools/clippy/clippy_lints/src/cloned_ref_to_slice_refs.rs @@ -9,7 +9,8 @@ use clippy_utils::visitors::is_const_evaluatable; use clippy_utils::{is_in_const_context, is_mutable, sym}; use rustc_ast::Mutability; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, HirId, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, HirId}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::ty; use rustc_middle::ty::adjustment::{Adjust, DerefAdjustKind, OverloadedDeref}; diff --git a/src/tools/clippy/clippy_lints/src/collection_is_never_read.rs b/src/tools/clippy/clippy_lints/src/collection_is_never_read.rs index 5c70b0d880914..365e03725b6f7 100644 --- a/src/tools/clippy/clippy_lints/src/collection_is_never_read.rs +++ b/src/tools/clippy/clippy_lints/src/collection_is_never_read.rs @@ -3,7 +3,8 @@ use clippy_utils::res::{MaybeDef as _, MaybeResPath as _}; use clippy_utils::visitors::{Visitable, for_each_expr}; use clippy_utils::{get_enclosing_block, sym}; use core::ops::ControlFlow; -use rustc_hir::{Body, ExprKind, HirId, LangItem, LetStmt, Node, PatKind}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Body, ExprKind, HirId, LetStmt, Node, PatKind}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/drop_forget_ref.rs b/src/tools/clippy/clippy_lints/src/drop_forget_ref.rs index 080569c813911..e50bfc8fa9627 100644 --- a/src/tools/clippy/clippy_lints/src/drop_forget_ref.rs +++ b/src/tools/clippy/clippy_lints/src/drop_forget_ref.rs @@ -2,7 +2,8 @@ use clippy_utils::diagnostics::span_lint_and_then; use clippy_utils::is_must_use_func_call; use clippy_utils::res::MaybeDef as _; use clippy_utils::ty::{is_copy, opt_must_use_path}; -use rustc_hir::{Arm, Expr, ExprKind, LangItem, Node}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Arm, Expr, ExprKind, Node}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::declare_lint_pass; use rustc_span::sym; diff --git a/src/tools/clippy/clippy_lints/src/format_args.rs b/src/tools/clippy/clippy_lints/src/format_args.rs index 69fdf84dfe7d9..9fc535464c795 100644 --- a/src/tools/clippy/clippy_lints/src/format_args.rs +++ b/src/tools/clippy/clippy_lints/src/format_args.rs @@ -23,7 +23,8 @@ use rustc_data_structures::fx::FxHashMap; use rustc_errors::Applicability; use rustc_errors::SuggestionStyle::{CompletelyHidden, ShowCode}; use rustc_hir::attrs::RustcVersion; -use rustc_hir::{Expr, ExprKind, LangItem, find_attr}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, find_attr}; use rustc_lint::{LateContext, LateLintPass, LintContext as _}; use rustc_middle::ty::adjustment::{Adjust, Adjustment, DerefAdjustKind}; use rustc_middle::ty::{self, GenericArg, List, TraitRef, Ty, TyCtxt, Unnormalized, Upcast as _}; diff --git a/src/tools/clippy/clippy_lints/src/format_push_string.rs b/src/tools/clippy/clippy_lints/src/format_push_string.rs index 9a092729762dd..e4af0ecf1b851 100644 --- a/src/tools/clippy/clippy_lints/src/format_push_string.rs +++ b/src/tools/clippy/clippy_lints/src/format_push_string.rs @@ -4,7 +4,8 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::source::{snippet_with_applicability, snippet_with_context}; use clippy_utils::{std_or_core, sym}; use rustc_errors::Applicability; -use rustc_hir::{AssignOpKind, Expr, ExprKind, LangItem, MatchSource}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{AssignOpKind, Expr, ExprKind, MatchSource}; use rustc_lint::{LateContext, LateLintPass, LintContext as _}; use rustc_session::impl_lint_pass; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/from_str_radix_10.rs b/src/tools/clippy/clippy_lints/src/from_str_radix_10.rs index 5540c50906e2b..02f125eb96850 100644 --- a/src/tools/clippy/clippy_lints/src/from_str_radix_10.rs +++ b/src/tools/clippy/clippy_lints/src/from_str_radix_10.rs @@ -3,7 +3,8 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::sugg::Sugg; use clippy_utils::{is_in_const_context, is_integer_literal, sym}; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem, PrimTy, QPath, TyKind, def}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, PrimTy, QPath, TyKind, def}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::ty::Ty; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/inherent_to_string.rs b/src/tools/clippy/clippy_lints/src/inherent_to_string.rs index e01200329e8e2..0e0e3645459a9 100644 --- a/src/tools/clippy/clippy_lints/src/inherent_to_string.rs +++ b/src/tools/clippy/clippy_lints/src/inherent_to_string.rs @@ -3,7 +3,8 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::ty::implements_trait; use clippy_utils::{return_ty, trait_ref_of_method}; use rustc_abi::ExternAbi; -use rustc_hir::{GenericParamKind, ImplItem, ImplItemKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{GenericParamKind, ImplItem, ImplItemKind}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::declare_lint_pass; use rustc_span::sym; diff --git a/src/tools/clippy/clippy_lints/src/large_futures.rs b/src/tools/clippy/clippy_lints/src/large_futures.rs index caa44d5ef1235..98516cfd4cb70 100644 --- a/src/tools/clippy/clippy_lints/src/large_futures.rs +++ b/src/tools/clippy/clippy_lints/src/large_futures.rs @@ -4,7 +4,8 @@ use clippy_utils::source::snippet; use clippy_utils::ty::implements_trait; use rustc_abi::Size; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem, MatchSource}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, MatchSource}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/lifetimes.rs b/src/tools/clippy/clippy_lints/src/lifetimes.rs index 8f2f8aaf7859f..9fe12ead9ab68 100644 --- a/src/tools/clippy/clippy_lints/src/lifetimes.rs +++ b/src/tools/clippy/clippy_lints/src/lifetimes.rs @@ -7,6 +7,7 @@ use rustc_ast::visit::{try_visit, walk_list}; use rustc_data_structures::fx::{FxHashSet, FxIndexMap, FxIndexSet}; use rustc_errors::Applicability; use rustc_hir::FnRetTy::Return; +use rustc_hir::attrs::lang_items; use rustc_hir::intravisit::{ IgnoreNested, NestedFilter, Visitor, VisitorExt as _, walk_fn_decl, walk_generic_args, walk_generic_param, walk_generics, walk_impl_item_ref, walk_param_bound, walk_poly_trait_ref, walk_trait_ref, walk_ty, walk_unambig_ty, @@ -16,7 +17,7 @@ use rustc_hir::{ AmbigArg, BodyId, FnDecl, FnPtrTy, FnSig, GenericArg, GenericArgs, GenericBound, GenericParam, GenericParamKind, Generics, HirId, Impl, ImplItem, ImplItemKind, Item, ItemKind, Lifetime, LifetimeKind, LifetimeParamKind, Node, PolyTraitRef, PredicateOrigin, TraitFn, TraitItem, TraitItemKind, TraitRef, Ty, TyKind, WhereBoundPredicate, - WherePredicate, WherePredicateKind, lang_items, + WherePredicate, WherePredicateKind, }; use rustc_lint::{LateContext, LateLintPass, LintContext as _}; use rustc_middle::hir::nested_filter as middle_nested_filter; diff --git a/src/tools/clippy/clippy_lints/src/loops/char_indices_as_byte_indices.rs b/src/tools/clippy/clippy_lints/src/loops/char_indices_as_byte_indices.rs index 9231f341b72aa..e89d4b139cb12 100644 --- a/src/tools/clippy/clippy_lints/src/loops/char_indices_as_byte_indices.rs +++ b/src/tools/clippy/clippy_lints/src/loops/char_indices_as_byte_indices.rs @@ -5,7 +5,8 @@ use clippy_utils::res::{MaybeDef as _, MaybeResPath as _}; use clippy_utils::visitors::for_each_expr; use clippy_utils::{eq_expr_value, higher, sym}; use rustc_errors::{Applicability, MultiSpan}; -use rustc_hir::{Expr, ExprKind, LangItem, Node, Pat, PatKind}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, Node, Pat, PatKind}; use rustc_lint::LateContext; use rustc_middle::ty::Ty; use rustc_span::{Span, Symbol}; diff --git a/src/tools/clippy/clippy_lints/src/loops/explicit_iter_loop.rs b/src/tools/clippy/clippy_lints/src/loops/explicit_iter_loop.rs index 37a0c4e13c0e2..cc458e54d16e9 100644 --- a/src/tools/clippy/clippy_lints/src/loops/explicit_iter_loop.rs +++ b/src/tools/clippy/clippy_lints/src/loops/explicit_iter_loop.rs @@ -9,6 +9,7 @@ use clippy_utils::ty::{ make_normalized_projection_with_regions, normalize_with_regions, }; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{Expr, Mutability}; use rustc_lint::LateContext; use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow, AutoBorrowMutability}; @@ -128,8 +129,7 @@ fn is_ref_iterable<'tcx>( let self_ty = typeck.expr_ty(self_arg); let self_is_copy = is_copy(cx, self_ty); - if self_ty.peel_refs().is_lang_item(cx, rustc_hir::LangItem::OwnedBox) && !msrv.meets(cx, msrvs::BOX_INTO_ITER) - { + if self_ty.peel_refs().is_lang_item(cx, LangItem::OwnedBox) && !msrv.meets(cx, msrvs::BOX_INTO_ITER) { return None; } diff --git a/src/tools/clippy/clippy_lints/src/manual_ignore_case_cmp.rs b/src/tools/clippy/clippy_lints/src/manual_ignore_case_cmp.rs index b214ace2e584f..5e761eedb3c93 100644 --- a/src/tools/clippy/clippy_lints/src/manual_ignore_case_cmp.rs +++ b/src/tools/clippy/clippy_lints/src/manual_ignore_case_cmp.rs @@ -6,7 +6,8 @@ use clippy_utils::sym; use rustc_ast::LitKind; use rustc_errors::Applicability; use rustc_hir::ExprKind::{Binary, Lit, MethodCall}; -use rustc_hir::{BinOpKind, Expr, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{BinOpKind, Expr}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::ty; use rustc_middle::ty::{Ty, UintTy}; diff --git a/src/tools/clippy/clippy_lints/src/manual_pop_if.rs b/src/tools/clippy/clippy_lints/src/manual_pop_if.rs index 359bb594e4a12..0b6f2002e9a4a 100644 --- a/src/tools/clippy/clippy_lints/src/manual_pop_if.rs +++ b/src/tools/clippy/clippy_lints/src/manual_pop_if.rs @@ -7,7 +7,8 @@ use clippy_utils::visitors::{for_each_expr_without_closures, is_local_used}; use clippy_utils::{eq_expr_value, is_else_clause, is_lang_item_or_ctor, span_contains_non_whitespace, sym}; use rustc_ast::LitKind; use rustc_errors::{Applicability, MultiSpan}; -use rustc_hir::{BlockCheckMode, Expr, ExprKind, LangItem, PatKind, StmtKind, UnsafeSource}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{BlockCheckMode, Expr, ExprKind, PatKind, StmtKind, UnsafeSource}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::ty::TyCtxt; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/manual_retain.rs b/src/tools/clippy/clippy_lints/src/manual_retain.rs index 780dfa30846e1..c8a1968266e34 100644 --- a/src/tools/clippy/clippy_lints/src/manual_retain.rs +++ b/src/tools/clippy/clippy_lints/src/manual_retain.rs @@ -7,6 +7,7 @@ use clippy_utils::{SpanlessEq, sym}; use rustc_errors::Applicability; use rustc_hir as hir; use rustc_hir::ExprKind::Assign; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::impl_lint_pass; @@ -189,7 +190,7 @@ fn check_to_owned( && let Some(chars_expr_def_id) = cx.typeck_results().type_dependent_def_id(chars_expr.hir_id) && cx.tcx.is_diagnostic_item(sym::str_chars, chars_expr_def_id) && let ty = cx.typeck_results().expr_ty(str_expr).peel_refs() - && ty.is_lang_item(cx, hir::LangItem::String) + && ty.is_lang_item(cx, LangItem::String) && SpanlessEq::new(cx).eq_expr(parent_expr_span.ctxt(), left_expr, str_expr) && let hir::ExprKind::MethodCall(_, _, [closure_expr], _) = filter_expr.kind && let hir::ExprKind::Closure(closure) = closure_expr.kind diff --git a/src/tools/clippy/clippy_lints/src/matches/manual_map.rs b/src/tools/clippy/clippy_lints/src/matches/manual_map.rs index 5e8d69a5b4e8b..f322b59c9174b 100644 --- a/src/tools/clippy/clippy_lints/src/matches/manual_map.rs +++ b/src/tools/clippy/clippy_lints/src/matches/manual_map.rs @@ -3,7 +3,7 @@ use super::manual_utils::{SomeExpr, check_with}; use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::{MaybeDef as _, MaybeQPath as _}; -use rustc_hir::LangItem::OptionSome; +use rustc_hir::attrs::lang_items::LangItem::OptionSome; use rustc_hir::{Arm, Block, BlockCheckMode, Expr, ExprKind, Pat, UnsafeSource}; use rustc_lint::LateContext; use rustc_span::SyntaxContext; diff --git a/src/tools/clippy/clippy_lints/src/matches/manual_ok_err.rs b/src/tools/clippy/clippy_lints/src/matches/manual_ok_err.rs index c599099d3ce42..7f3782ac7eb82 100644 --- a/src/tools/clippy/clippy_lints/src/matches/manual_ok_err.rs +++ b/src/tools/clippy/clippy_lints/src/matches/manual_ok_err.rs @@ -6,7 +6,7 @@ use clippy_utils::ty::{option_arg_ty, peel_and_count_ty_refs}; use clippy_utils::{as_some_expr, get_parent_expr, is_none_expr, peel_blocks, span_contains_comment}; use rustc_ast::{BindingMode, Mutability}; use rustc_errors::Applicability; -use rustc_hir::LangItem::ResultErr; +use rustc_hir::attrs::lang_items::LangItem::ResultErr; use rustc_hir::def::{DefKind, Res}; use rustc_hir::{Arm, Expr, ExprKind, Pat, PatExpr, PatExprKind, PatKind, Path, QPath}; use rustc_lint::LateContext; diff --git a/src/tools/clippy/clippy_lints/src/matches/manual_unwrap_or.rs b/src/tools/clippy/clippy_lints/src/matches/manual_unwrap_or.rs index a5c61fafb514c..cfa64bce80cb7 100644 --- a/src/tools/clippy/clippy_lints/src/matches/manual_unwrap_or.rs +++ b/src/tools/clippy/clippy_lints/src/matches/manual_unwrap_or.rs @@ -3,8 +3,9 @@ use clippy_utils::res::{MaybeDef as _, MaybeQPath as _, MaybeResPath as _}; use clippy_utils::source::{SpanExt as _, indent_of, reindent_multiline}; use rustc_ast::{BindingMode, ByRef}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::Res; -use rustc_hir::{Arm, Expr, ExprKind, HirId, LangItem, Pat, PatKind, QPath}; +use rustc_hir::{Arm, Expr, ExprKind, HirId, Pat, PatKind, QPath}; use rustc_lint::LateContext; use rustc_middle::ty::{GenericArgKind, Ty}; use rustc_span::sym; diff --git a/src/tools/clippy/clippy_lints/src/matches/match_str_case_mismatch.rs b/src/tools/clippy/clippy_lints/src/matches/match_str_case_mismatch.rs index 874feb9b4b189..e8c8eb7f37a96 100644 --- a/src/tools/clippy/clippy_lints/src/matches/match_str_case_mismatch.rs +++ b/src/tools/clippy/clippy_lints/src/matches/match_str_case_mismatch.rs @@ -5,8 +5,9 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::sym; use rustc_ast::ast::LitKind; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::intravisit::{Visitor, walk_expr}; -use rustc_hir::{Arm, Expr, ExprKind, LangItem, PatExpr, PatExprKind, PatKind}; +use rustc_hir::{Arm, Expr, ExprKind, PatExpr, PatExprKind, PatKind}; use rustc_lint::LateContext; use rustc_middle::ty; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/matches/redundant_pattern_match.rs b/src/tools/clippy/clippy_lints/src/matches/redundant_pattern_match.rs index 2a236cfa15979..037276f868e2b 100644 --- a/src/tools/clippy/clippy_lints/src/matches/redundant_pattern_match.rs +++ b/src/tools/clippy/clippy_lints/src/matches/redundant_pattern_match.rs @@ -7,7 +7,9 @@ use clippy_utils::visitors::{any_temporaries_need_ordered_drop, for_each_expr_wi use clippy_utils::{get_parent_expr, higher, is_expn_of, sym}; use rustc_ast::ast::LitKind; use rustc_errors::Applicability; -use rustc_hir::LangItem::{self, OptionNone, OptionSome, PollPending, PollReady, ResultErr, ResultOk}; +use rustc_hir::attrs::lang_items::LangItem::{ + self, OptionNone, OptionSome, PollPending, PollReady, ResultErr, ResultOk, +}; use rustc_hir::def::{DefKind, Res}; use rustc_hir::{Arm, BinOpKind, Expr, ExprKind, Node, Pat, PatExpr, PatExprKind, PatKind, QPath, UnOp}; use rustc_lint::LateContext; diff --git a/src/tools/clippy/clippy_lints/src/matches/try_err.rs b/src/tools/clippy/clippy_lints/src/matches/try_err.rs index 81dc46a2fa992..4781d65749634 100644 --- a/src/tools/clippy/clippy_lints/src/matches/try_err.rs +++ b/src/tools/clippy/clippy_lints/src/matches/try_err.rs @@ -4,8 +4,9 @@ use clippy_utils::res::{MaybeDef as _, MaybeQPath as _}; use clippy_utils::source::snippet_with_applicability; use clippy_utils::ty::option_arg_ty; use rustc_errors::Applicability; -use rustc_hir::LangItem::ResultErr; -use rustc_hir::{Expr, ExprKind, LangItem, MatchSource}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem::ResultErr; +use rustc_hir::{Expr, ExprKind, MatchSource}; use rustc_lint::LateContext; use rustc_middle::ty::{self, Ty}; use rustc_span::{hygiene, sym}; diff --git a/src/tools/clippy/clippy_lints/src/methods/bind_instead_of_map.rs b/src/tools/clippy/clippy_lints/src/methods/bind_instead_of_map.rs index 6390680c067cb..51edbfb8b1a11 100644 --- a/src/tools/clippy/clippy_lints/src/methods/bind_instead_of_map.rs +++ b/src/tools/clippy/clippy_lints/src/methods/bind_instead_of_map.rs @@ -5,8 +5,9 @@ use clippy_utils::source::{snippet, snippet_with_context}; use clippy_utils::visitors::find_all_ret_expressions; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_hir::QPath; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; -use rustc_hir::{LangItem, QPath}; use rustc_lint::LateContext; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/methods/bytes_count_to_len.rs b/src/tools/clippy/clippy_lints/src/methods/bytes_count_to_len.rs index abf551590573b..2611f94e5f791 100644 --- a/src/tools/clippy/clippy_lints/src/methods/bytes_count_to_len.rs +++ b/src/tools/clippy/clippy_lints/src/methods/bytes_count_to_len.rs @@ -3,6 +3,7 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::source::snippet_with_applicability; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use super::BYTES_COUNT_TO_LEN; @@ -17,7 +18,7 @@ pub(super) fn check<'tcx>( && let Some(impl_id) = cx.tcx.impl_of_assoc(bytes_id) && cx.tcx.type_of(impl_id).instantiate_identity().skip_norm_wip().is_str() && let ty = cx.typeck_results().expr_ty(bytes_recv).peel_refs() - && (ty.is_str() || ty.is_lang_item(cx, hir::LangItem::String)) + && (ty.is_str() || ty.is_lang_item(cx, LangItem::String)) { let mut applicability = Applicability::MachineApplicable; span_lint_and_sugg( diff --git a/src/tools/clippy/clippy_lints/src/methods/bytes_nth.rs b/src/tools/clippy/clippy_lints/src/methods/bytes_nth.rs index c0db96fd8becf..a98dd315c09ae 100644 --- a/src/tools/clippy/clippy_lints/src/methods/bytes_nth.rs +++ b/src/tools/clippy/clippy_lints/src/methods/bytes_nth.rs @@ -3,7 +3,8 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::source::snippet_with_applicability; use clippy_utils::sym; use rustc_errors::Applicability; -use rustc_hir::{Expr, LangItem}; +use rustc_hir::Expr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use crate::methods::method_call; diff --git a/src/tools/clippy/clippy_lints/src/methods/case_sensitive_file_extension_comparisons.rs b/src/tools/clippy/clippy_lints/src/methods/case_sensitive_file_extension_comparisons.rs index 894af02176954..5f90a68961fb5 100644 --- a/src/tools/clippy/clippy_lints/src/methods/case_sensitive_file_extension_comparisons.rs +++ b/src/tools/clippy/clippy_lints/src/methods/case_sensitive_file_extension_comparisons.rs @@ -5,7 +5,8 @@ use clippy_utils::source::{SpanExt as _, indent_of, reindent_multiline}; use clippy_utils::sym; use rustc_ast::ast::LitKind; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind}; use rustc_lint::LateContext; use rustc_span::{Span, Spanned}; diff --git a/src/tools/clippy/clippy_lints/src/methods/clear_with_drain.rs b/src/tools/clippy/clippy_lints/src/methods/clear_with_drain.rs index 6ef89788fbf82..ab967ba35cb81 100644 --- a/src/tools/clippy/clippy_lints/src/methods/clear_with_drain.rs +++ b/src/tools/clippy/clippy_lints/src/methods/clear_with_drain.rs @@ -2,7 +2,8 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::{MaybeDef as _, MaybeResPath as _}; use clippy_utils::{is_full_collection_range, sym}; use rustc_errors::Applicability; -use rustc_hir::{Expr, LangItem}; +use rustc_hir::Expr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/methods/clone_on_copy.rs b/src/tools/clippy/clippy_lints/src/methods/clone_on_copy.rs index f63ea13fd1c6d..fa0cb77136708 100644 --- a/src/tools/clippy/clippy_lints/src/methods/clone_on_copy.rs +++ b/src/tools/clippy/clippy_lints/src/methods/clone_on_copy.rs @@ -3,6 +3,7 @@ use clippy_utils::peel_hir_expr_refs; use clippy_utils::source::snippet_with_context; use clippy_utils::ty::is_copy; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{BindingMode, ByRef, Expr, ExprKind, MatchSource, Node, PatKind}; use rustc_lint::LateContext; use rustc_middle::ty; @@ -35,7 +36,7 @@ fn check_parent_is_suffix_expr(cx: &LateContext<'_>, expr: &Expr<'_>) -> ParentI if matches!( hir_callee.kind, ExprKind::Path(qpath) - if cx.tcx.qpath_is_lang_item(qpath, rustc_hir::LangItem::TryTraitBranch) + if cx.tcx.qpath_is_lang_item(qpath, LangItem::TryTraitBranch) ) { ParentIsSuffixExpr::Yes } else { diff --git a/src/tools/clippy/clippy_lints/src/methods/expect_fun_call.rs b/src/tools/clippy/clippy_lints/src/methods/expect_fun_call.rs index 609cab45d42d1..3c16464f83953 100644 --- a/src/tools/clippy/clippy_lints/src/methods/expect_fun_call.rs +++ b/src/tools/clippy/clippy_lints/src/methods/expect_fun_call.rs @@ -1,3 +1,4 @@ +use super::EXPECT_FUN_CALL; use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::macros::{FormatArgsStorage, format_args_inputs_span, root_macro_call_first_node}; use clippy_utils::res::MaybeDef as _; @@ -6,13 +7,12 @@ use clippy_utils::visitors::for_each_expr; use clippy_utils::{contains_return, is_inside_always_const_context, peel_blocks, sym}; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use rustc_span::Span; use std::borrow::Cow; use std::ops::ControlFlow; -use super::EXPECT_FUN_CALL; - /// Checks for the `EXPECT_FUN_CALL` lint. pub(super) fn check<'tcx>( cx: &LateContext<'tcx>, @@ -86,7 +86,7 @@ fn get_arg_root<'a>(cx: &LateContext<'_>, arg: &'a hir::Expr<'a>) -> &'a hir::Ex if (method_name.ident.name == sym::as_str || method_name.ident.name == sym::as_ref) && { let arg_type = cx.typeck_results().expr_ty(receiver); let base_type = arg_type.peel_refs(); - base_type.is_str() || base_type.is_lang_item(cx, hir::LangItem::String) + base_type.is_str() || base_type.is_lang_item(cx, LangItem::String) } { receiver } else { diff --git a/src/tools/clippy/clippy_lints/src/methods/extend_with_drain.rs b/src/tools/clippy/clippy_lints/src/methods/extend_with_drain.rs index af8128104f859..074dafae5846e 100644 --- a/src/tools/clippy/clippy_lints/src/methods/extend_with_drain.rs +++ b/src/tools/clippy/clippy_lints/src/methods/extend_with_drain.rs @@ -3,7 +3,8 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::source::snippet_with_applicability; use clippy_utils::sym; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind}; use rustc_lint::LateContext; use super::EXTEND_WITH_DRAIN; diff --git a/src/tools/clippy/clippy_lints/src/methods/format_collect.rs b/src/tools/clippy/clippy_lints/src/methods/format_collect.rs index b85e203e4d2e2..e075f06c08970 100644 --- a/src/tools/clippy/clippy_lints/src/methods/format_collect.rs +++ b/src/tools/clippy/clippy_lints/src/methods/format_collect.rs @@ -2,7 +2,8 @@ use super::FORMAT_COLLECT; use clippy_utils::diagnostics::span_lint_and_then; use clippy_utils::macros::{is_format_macro, root_macro_call_first_node}; use clippy_utils::res::MaybeDef as _; -use rustc_hir::{Expr, ExprKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind}; use rustc_lint::LateContext; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/methods/inefficient_to_string.rs b/src/tools/clippy/clippy_lints/src/methods/inefficient_to_string.rs index 8e9781f668995..bd8582ac014cf 100644 --- a/src/tools/clippy/clippy_lints/src/methods/inefficient_to_string.rs +++ b/src/tools/clippy/clippy_lints/src/methods/inefficient_to_string.rs @@ -6,6 +6,7 @@ use clippy_utils::sym; use clippy_utils::ty::peel_and_count_ty_refs; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use rustc_middle::ty::{self, Ty}; @@ -52,7 +53,7 @@ fn specializes_tostring(cx: &LateContext<'_>, ty: Ty<'_>) -> bool { return true; } - if ty.is_lang_item(cx, hir::LangItem::String) { + if ty.is_lang_item(cx, LangItem::String) { return true; } diff --git a/src/tools/clippy/clippy_lints/src/methods/iter_nth_zero.rs b/src/tools/clippy/clippy_lints/src/methods/iter_nth_zero.rs index 3417d689c7ff2..9c0d0a3e90631 100644 --- a/src/tools/clippy/clippy_lints/src/methods/iter_nth_zero.rs +++ b/src/tools/clippy/clippy_lints/src/methods/iter_nth_zero.rs @@ -3,9 +3,10 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::is_lang_item_or_ctor; use clippy_utils::res::{MaybeDef as _, MaybeTypeckRes as _}; use clippy_utils::source::snippet_with_applicability; -use hir::{LangItem, OwnerNode}; +use hir::OwnerNode; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use rustc_span::sym; diff --git a/src/tools/clippy/clippy_lints/src/methods/manual_clear.rs b/src/tools/clippy/clippy_lints/src/methods/manual_clear.rs index 025788b83b5b9..c38839582b112 100644 --- a/src/tools/clippy/clippy_lints/src/methods/manual_clear.rs +++ b/src/tools/clippy/clippy_lints/src/methods/manual_clear.rs @@ -2,7 +2,8 @@ use clippy_utils::diagnostics::span_lint_and_then; use clippy_utils::res::MaybeDef as _; use clippy_utils::{is_integer_literal, sym}; use rustc_errors::Applicability; -use rustc_hir::{Expr, LangItem}; +use rustc_hir::Expr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/methods/manual_ok_or.rs b/src/tools/clippy/clippy_lints/src/methods/manual_ok_or.rs index b010f7a8996fa..a3564706e6dcd 100644 --- a/src/tools/clippy/clippy_lints/src/methods/manual_ok_or.rs +++ b/src/tools/clippy/clippy_lints/src/methods/manual_ok_or.rs @@ -2,7 +2,7 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::{MaybeDef as _, MaybeQPath as _, MaybeResPath as _}; use clippy_utils::source::{SpanExt as _, indent_of, reindent_multiline}; use rustc_errors::Applicability; -use rustc_hir::LangItem::{ResultErr, ResultOk}; +use rustc_hir::attrs::lang_items::LangItem::{ResultErr, ResultOk}; use rustc_hir::{Expr, ExprKind, PatKind}; use rustc_lint::LateContext; use rustc_span::symbol::sym; diff --git a/src/tools/clippy/clippy_lints/src/methods/manual_str_repeat.rs b/src/tools/clippy/clippy_lints/src/methods/manual_str_repeat.rs index d04e224adf7af..80ee741fab35e 100644 --- a/src/tools/clippy/clippy_lints/src/methods/manual_str_repeat.rs +++ b/src/tools/clippy/clippy_lints/src/methods/manual_str_repeat.rs @@ -5,7 +5,8 @@ use clippy_utils::sugg::Sugg; use clippy_utils::sym; use rustc_ast::LitKind; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind}; use rustc_lint::LateContext; use rustc_middle::ty::{self, Ty}; use std::borrow::Cow; diff --git a/src/tools/clippy/clippy_lints/src/methods/map_clone.rs b/src/tools/clippy/clippy_lints/src/methods/map_clone.rs index f25cbb265c57f..1ecd63e62dfe0 100644 --- a/src/tools/clippy/clippy_lints/src/methods/map_clone.rs +++ b/src/tools/clippy/clippy_lints/src/methods/map_clone.rs @@ -5,8 +5,9 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::source::snippet_with_applicability; use clippy_utils::ty::{is_copy, should_call_clone_as_function}; use rustc_errors::Applicability; +use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, LangItem}; use rustc_lint::LateContext; use rustc_middle::mir::{Mutability, Pinnedness}; use rustc_middle::ty; diff --git a/src/tools/clippy/clippy_lints/src/methods/needless_as_bytes.rs b/src/tools/clippy/clippy_lints/src/methods/needless_as_bytes.rs index 6a20d401419ff..068d8d2a1d68e 100644 --- a/src/tools/clippy/clippy_lints/src/methods/needless_as_bytes.rs +++ b/src/tools/clippy/clippy_lints/src/methods/needless_as_bytes.rs @@ -2,7 +2,8 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::MaybeDef as _; use clippy_utils::sugg::Sugg; use rustc_errors::Applicability; -use rustc_hir::{Expr, LangItem}; +use rustc_hir::Expr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use rustc_span::{Span, Symbol}; diff --git a/src/tools/clippy/clippy_lints/src/methods/no_effect_replace.rs b/src/tools/clippy/clippy_lints/src/methods/no_effect_replace.rs index 667608cf992ef..be5e10be54a89 100644 --- a/src/tools/clippy/clippy_lints/src/methods/no_effect_replace.rs +++ b/src/tools/clippy/clippy_lints/src/methods/no_effect_replace.rs @@ -2,7 +2,8 @@ use clippy_utils::SpanlessEq; use clippy_utils::diagnostics::span_lint; use clippy_utils::res::MaybeDef as _; use rustc_ast::LitKind; -use rustc_hir::{ExprKind, LangItem}; +use rustc_hir::ExprKind; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use super::NO_EFFECT_REPLACE; diff --git a/src/tools/clippy/clippy_lints/src/methods/option_map_or_none.rs b/src/tools/clippy/clippy_lints/src/methods/option_map_or_none.rs index 98c8e15756931..ef6164654f2de 100644 --- a/src/tools/clippy/clippy_lints/src/methods/option_map_or_none.rs +++ b/src/tools/clippy/clippy_lints/src/methods/option_map_or_none.rs @@ -4,7 +4,7 @@ use clippy_utils::res::{MaybeDef as _, MaybeQPath as _}; use clippy_utils::source::snippet; use rustc_errors::Applicability; use rustc_hir as hir; -use rustc_hir::LangItem::OptionSome; +use rustc_hir::attrs::lang_items::LangItem::OptionSome; use rustc_lint::LateContext; use rustc_span::symbol::sym; diff --git a/src/tools/clippy/clippy_lints/src/methods/or_then_unwrap.rs b/src/tools/clippy/clippy_lints/src/methods/or_then_unwrap.rs index 3be6e8b62ec99..3f5b7d34f37e0 100644 --- a/src/tools/clippy/clippy_lints/src/methods/or_then_unwrap.rs +++ b/src/tools/clippy/clippy_lints/src/methods/or_then_unwrap.rs @@ -2,7 +2,7 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::{MaybeDef as _, MaybeQPath as _}; use clippy_utils::source::snippet_with_applicability; use rustc_errors::Applicability; -use rustc_hir::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{Expr, ExprKind}; use rustc_lint::LateContext; use rustc_span::{Span, sym}; diff --git a/src/tools/clippy/clippy_lints/src/methods/repeat_once.rs b/src/tools/clippy/clippy_lints/src/methods/repeat_once.rs index 6fe19a932d545..b7a8442d04c2a 100644 --- a/src/tools/clippy/clippy_lints/src/methods/repeat_once.rs +++ b/src/tools/clippy/clippy_lints/src/methods/repeat_once.rs @@ -3,7 +3,8 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::MaybeDef as _; use clippy_utils::source::snippet; use rustc_errors::Applicability; -use rustc_hir::{Expr, LangItem}; +use rustc_hir::Expr; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use super::REPEAT_ONCE; diff --git a/src/tools/clippy/clippy_lints/src/methods/result_map_or_else_none.rs b/src/tools/clippy/clippy_lints/src/methods/result_map_or_else_none.rs index 7cf30bb4e9c08..6b49cd4e132b4 100644 --- a/src/tools/clippy/clippy_lints/src/methods/result_map_or_else_none.rs +++ b/src/tools/clippy/clippy_lints/src/methods/result_map_or_else_none.rs @@ -4,7 +4,7 @@ use clippy_utils::source::snippet; use clippy_utils::{is_none_expr, peel_blocks}; use rustc_errors::Applicability; use rustc_hir as hir; -use rustc_hir::LangItem::OptionSome; +use rustc_hir::attrs::lang_items::LangItem::OptionSome; use rustc_lint::LateContext; use rustc_span::symbol::sym; diff --git a/src/tools/clippy/clippy_lints/src/methods/search_is_some.rs b/src/tools/clippy/clippy_lints/src/methods/search_is_some.rs index 9e9d53cabbb0d..fe743556e98a3 100644 --- a/src/tools/clippy/clippy_lints/src/methods/search_is_some.rs +++ b/src/tools/clippy/clippy_lints/src/methods/search_is_some.rs @@ -7,6 +7,7 @@ use hir::ExprKind; use rustc_errors::Applicability; use rustc_hir as hir; use rustc_hir::PatKind; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use rustc_span::{Span, Symbol}; @@ -101,7 +102,7 @@ pub(super) fn check<'tcx>( else if search_method == sym::find { let is_string_or_str_slice = |e| { let self_ty = cx.typeck_results().expr_ty(e).peel_refs(); - if self_ty.is_lang_item(cx, hir::LangItem::String) { + if self_ty.is_lang_item(cx, LangItem::String) { true } else { self_ty.is_str() diff --git a/src/tools/clippy/clippy_lints/src/methods/sliced_string_as_bytes.rs b/src/tools/clippy/clippy_lints/src/methods/sliced_string_as_bytes.rs index f581384ca5415..544989fb4bace 100644 --- a/src/tools/clippy/clippy_lints/src/methods/sliced_string_as_bytes.rs +++ b/src/tools/clippy/clippy_lints/src/methods/sliced_string_as_bytes.rs @@ -3,7 +3,8 @@ use clippy_utils::higher; use clippy_utils::res::MaybeDef as _; use clippy_utils::source::snippet_with_applicability; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind}; use rustc_lint::LateContext; use super::SLICED_STRING_AS_BYTES; diff --git a/src/tools/clippy/clippy_lints/src/methods/str_splitn.rs b/src/tools/clippy/clippy_lints/src/methods/str_splitn.rs index 6d319dcd1e678..249496ed52ca1 100644 --- a/src/tools/clippy/clippy_lints/src/methods/str_splitn.rs +++ b/src/tools/clippy/clippy_lints/src/methods/str_splitn.rs @@ -8,9 +8,8 @@ use clippy_utils::visitors::{Descend, for_each_expr}; use clippy_utils::{paths, sym}; use core::ops::ControlFlow; use rustc_errors::Applicability; -use rustc_hir::{ - BindingMode, Expr, ExprKind, HirId, LangItem, LetStmt, MatchSource, Node, Pat, PatKind, Stmt, StmtKind, -}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{BindingMode, Expr, ExprKind, HirId, LetStmt, MatchSource, Node, Pat, PatKind, Stmt, StmtKind}; use rustc_lint::LateContext; use rustc_middle::ty; use rustc_span::{Span, Symbol, SyntaxContext}; diff --git a/src/tools/clippy/clippy_lints/src/methods/string_extend_chars.rs b/src/tools/clippy/clippy_lints/src/methods/string_extend_chars.rs index f531abed813ce..6e318679fb248 100644 --- a/src/tools/clippy/clippy_lints/src/methods/string_extend_chars.rs +++ b/src/tools/clippy/clippy_lints/src/methods/string_extend_chars.rs @@ -4,13 +4,14 @@ use clippy_utils::source::snippet_with_applicability; use clippy_utils::{method_chain_args, sym}; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::LateContext; use super::STRING_EXTEND_CHARS; pub(super) fn check(cx: &LateContext<'_>, expr: &hir::Expr<'_>, recv: &hir::Expr<'_>, arg: &hir::Expr<'_>) { let obj_ty = cx.typeck_results().expr_ty(recv).peel_refs(); - if !obj_ty.is_lang_item(cx, hir::LangItem::String) { + if !obj_ty.is_lang_item(cx, LangItem::String) { return; } if let Some(arglists) = method_chain_args(arg, &[sym::chars]) { @@ -22,7 +23,7 @@ pub(super) fn check(cx: &LateContext<'_>, expr: &hir::Expr<'_>, recv: &hir::Expr } else { "" } - } else if self_ty.is_lang_item(cx, hir::LangItem::String) { + } else if self_ty.is_lang_item(cx, LangItem::String) { "&" } else { return; diff --git a/src/tools/clippy/clippy_lints/src/methods/unnecessary_join.rs b/src/tools/clippy/clippy_lints/src/methods/unnecessary_join.rs index 193406942f3f8..e8751646eabf1 100644 --- a/src/tools/clippy/clippy_lints/src/methods/unnecessary_join.rs +++ b/src/tools/clippy/clippy_lints/src/methods/unnecessary_join.rs @@ -2,7 +2,8 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::MaybeDef as _; use rustc_ast::ast::LitKind; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind}; use rustc_lint::LateContext; use rustc_middle::ty; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/methods/unnecessary_to_owned.rs b/src/tools/clippy/clippy_lints/src/methods/unnecessary_to_owned.rs index 2952d81a3b00c..8ae27b2342d18 100644 --- a/src/tools/clippy/clippy_lints/src/methods/unnecessary_to_owned.rs +++ b/src/tools/clippy/clippy_lints/src/methods/unnecessary_to_owned.rs @@ -8,9 +8,10 @@ use clippy_utils::ty::{get_iterator_item_ty, implements_trait, is_copy, peel_and use clippy_utils::visitors::find_all_ret_expressions; use clippy_utils::{fn_def_id, get_parent_expr, is_expr_temporary_value, return_ty, sym}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::{BorrowKind, Expr, ExprKind, ItemKind, LangItem, Node}; +use rustc_hir::{BorrowKind, Expr, ExprKind, ItemKind, Node}; use rustc_infer::infer::TyCtxtInferExt as _; use rustc_lint::LateContext; use rustc_middle::mir::Mutability; diff --git a/src/tools/clippy/clippy_lints/src/methods/useless_asref.rs b/src/tools/clippy/clippy_lints/src/methods/useless_asref.rs index 2eac3ffba3246..43fcc52ab7b3b 100644 --- a/src/tools/clippy/clippy_lints/src/methods/useless_asref.rs +++ b/src/tools/clippy/clippy_lints/src/methods/useless_asref.rs @@ -4,8 +4,9 @@ use clippy_utils::source::snippet_with_applicability; use clippy_utils::ty::{implements_trait, peel_and_count_ty_refs, should_call_clone_as_function}; use clippy_utils::{get_parent_expr, peel_blocks, strip_pat_refs}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; -use rustc_hir::{self as hir, LangItem, Node}; +use rustc_hir::{self as hir, Node}; use rustc_lint::LateContext; use rustc_middle::ty::adjustment::{Adjust, DerefAdjustKind}; use rustc_middle::ty::{Ty, TyCtxt, TypeSuperVisitable as _, TypeVisitable as _, TypeVisitor}; diff --git a/src/tools/clippy/clippy_lints/src/missing_fields_in_debug.rs b/src/tools/clippy/clippy_lints/src/missing_fields_in_debug.rs index 6497e3283b392..8019dbd60e828 100644 --- a/src/tools/clippy/clippy_lints/src/missing_fields_in_debug.rs +++ b/src/tools/clippy/clippy_lints/src/missing_fields_in_debug.rs @@ -6,8 +6,9 @@ use clippy_utils::sym; use clippy_utils::visitors::{Visitable, for_each_expr}; use rustc_ast::LitKind; use rustc_data_structures::fx::FxHashSet; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; -use rustc_hir::{Block, Expr, ExprKind, Impl, Item, ItemKind, LangItem, Node, QPath, TyKind, VariantData}; +use rustc_hir::{Block, Expr, ExprKind, Impl, Item, ItemKind, Node, QPath, TyKind, VariantData}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::ty::{Ty, TypeckResults}; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/needless_pass_by_value.rs b/src/tools/clippy/clippy_lints/src/needless_pass_by_value.rs index b0e11baa745a5..31e8e0bff15da 100644 --- a/src/tools/clippy/clippy_lints/src/needless_pass_by_value.rs +++ b/src/tools/clippy/clippy_lints/src/needless_pass_by_value.rs @@ -6,10 +6,11 @@ use clippy_utils::visitors::{Descend, for_each_expr_without_closures}; use clippy_utils::{is_self, peel_hir_ty_options, strip_pat_refs, sym}; use rustc_abi::ExternAbi; use rustc_errors::{Applicability, Diag}; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::intravisit::FnKind; use rustc_hir::{ - Attribute, BindingMode, Body, ExprKind, FnDecl, GenericArg, HirId, HirIdSet, Impl, ItemKind, LangItem, Mutability, - Node, PatKind, QPath, TyKind, + Attribute, BindingMode, Body, ExprKind, FnDecl, GenericArg, HirId, HirIdSet, Impl, ItemKind, Mutability, Node, + PatKind, QPath, TyKind, }; use rustc_hir_typeck::expr_use_visitor as euv; use rustc_lint::{LateContext, LateLintPass}; diff --git a/src/tools/clippy/clippy_lints/src/needless_question_mark.rs b/src/tools/clippy/clippy_lints/src/needless_question_mark.rs index 933700f5f9e18..a1a9fa30960cf 100644 --- a/src/tools/clippy/clippy_lints/src/needless_question_mark.rs +++ b/src/tools/clippy/clippy_lints/src/needless_question_mark.rs @@ -1,8 +1,9 @@ use clippy_utils::diagnostics::span_lint_hir_and_then; use clippy_utils::res::MaybeQPath as _; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; -use rustc_hir::{Block, Body, Expr, ExprKind, LangItem, MatchSource}; +use rustc_hir::{Block, Body, Expr, ExprKind, MatchSource}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/non_canonical_impls.rs b/src/tools/clippy/clippy_lints/src/non_canonical_impls.rs index 60408adc31b62..6e3787b5f312b 100644 --- a/src/tools/clippy/clippy_lints/src/non_canonical_impls.rs +++ b/src/tools/clippy/clippy_lints/src/non_canonical_impls.rs @@ -4,8 +4,9 @@ use clippy_utils::res::{MaybeDef as _, MaybeQPath as _}; use clippy_utils::ty::implements_trait; use clippy_utils::{is_from_proc_macro, is_lint_allowed, last_path_segment, std_or_core}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{Block, Body, Expr, ExprKind, ImplItem, ImplItemKind, Item, ItemKind, LangItem, Stmt, StmtKind, UnOp}; +use rustc_hir::{Block, Body, Expr, ExprKind, ImplItem, ImplItemKind, Item, ItemKind, Stmt, StmtKind, UnOp}; use rustc_lint::{LateContext, LateLintPass, LintContext as _}; use rustc_middle::ty::{TyCtxt, TypeckResults}; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/nonnull_unchecked_on_box_ptr.rs b/src/tools/clippy/clippy_lints/src/nonnull_unchecked_on_box_ptr.rs index 4ce51dffd6558..dd72f8339d329 100644 --- a/src/tools/clippy/clippy_lints/src/nonnull_unchecked_on_box_ptr.rs +++ b/src/tools/clippy/clippy_lints/src/nonnull_unchecked_on_box_ptr.rs @@ -6,7 +6,8 @@ use clippy_utils::source::snippet_with_context; use clippy_utils::sym; use clippy_utils::visitors::is_expr_unsafe; use rustc_errors::Applicability; -use rustc_hir::{Block, BlockCheckMode, Expr, ExprKind, LangItem, Node, UnsafeSource}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Block, BlockCheckMode, Expr, ExprKind, Node, UnsafeSource}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/option_if_let_else.rs b/src/tools/clippy/clippy_lints/src/option_if_let_else.rs index 2be50f811e88f..b3dedbc0127b9 100644 --- a/src/tools/clippy/clippy_lints/src/option_if_let_else.rs +++ b/src/tools/clippy/clippy_lints/src/option_if_let_else.rs @@ -10,7 +10,7 @@ use clippy_utils::{ }; use rustc_data_structures::fx::FxHashSet; use rustc_errors::Applicability; -use rustc_hir::LangItem::ResultErr; +use rustc_hir::attrs::lang_items::LangItem::ResultErr; use rustc_hir::def::Res; use rustc_hir::intravisit::{Visitor, walk_expr, walk_path}; use rustc_hir::{ diff --git a/src/tools/clippy/clippy_lints/src/pub_underscore_fields.rs b/src/tools/clippy/clippy_lints/src/pub_underscore_fields.rs index f5a52187540d1..7067340e6f030 100644 --- a/src/tools/clippy/clippy_lints/src/pub_underscore_fields.rs +++ b/src/tools/clippy/clippy_lints/src/pub_underscore_fields.rs @@ -4,7 +4,8 @@ use clippy_utils::attrs::is_doc_hidden; use clippy_utils::diagnostics::span_lint_hir_and_then; use clippy_utils::res::{MaybeDef as _, MaybeResPath as _}; use clippy_utils::sym::PhantomPinned; -use rustc_hir::{FieldDef, Item, ItemKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{FieldDef, Item, ItemKind}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/question_mark.rs b/src/tools/clippy/clippy_lints/src/question_mark.rs index c4a6b25e89cd5..872355837b8af 100644 --- a/src/tools/clippy/clippy_lints/src/question_mark.rs +++ b/src/tools/clippy/clippy_lints/src/question_mark.rs @@ -15,7 +15,7 @@ use clippy_utils::{ span_contains_cfg, span_contains_comment, sym, }; use rustc_errors::Applicability; -use rustc_hir::LangItem::{self, OptionNone, OptionSome, ResultErr, ResultOk}; +use rustc_hir::attrs::lang_items::LangItem::{self, OptionNone, OptionSome, ResultErr, ResultOk}; use rustc_hir::def::Res; use rustc_hir::{ Arm, BindingMode, Block, Body, ByRef, Expr, ExprKind, FnRetTy, HirId, LetStmt, MatchSource, Mutability, Node, Pat, diff --git a/src/tools/clippy/clippy_lints/src/ranges.rs b/src/tools/clippy/clippy_lints/src/ranges.rs index bd5d3c8980fdf..18b3ecb474bba 100644 --- a/src/tools/clippy/clippy_lints/src/ranges.rs +++ b/src/tools/clippy/clippy_lints/src/ranges.rs @@ -12,7 +12,8 @@ use clippy_utils::{ use rustc_ast::Mutability; use rustc_ast::ast::RangeLimits; use rustc_errors::Applicability; -use rustc_hir::{BinOpKind, Expr, ExprKind, HirId, LangItem, Node}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{BinOpKind, Expr, ExprKind, HirId, Node}; use rustc_lint::{LateContext, LateLintPass, Lint}; use rustc_middle::ty::{self, ClauseKind, GenericArgKind, PredicatePolarity, Ty}; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/redundant_clone.rs b/src/tools/clippy/clippy_lints/src/redundant_clone.rs index eeef64de2cef6..b28d5880ebd86 100644 --- a/src/tools/clippy/clippy_lints/src/redundant_clone.rs +++ b/src/tools/clippy/clippy_lints/src/redundant_clone.rs @@ -5,8 +5,9 @@ use clippy_utils::source::SpanExt as _; use clippy_utils::ty::{has_drop, is_copy, peel_and_count_ty_refs}; use clippy_utils::{fn_has_unsatisfiable_clauses, sym}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::intravisit::FnKind; -use rustc_hir::{Body, FnDecl, LangItem, def_id}; +use rustc_hir::{Body, FnDecl, def_id}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::mir; use rustc_middle::ty::{self, Ty}; diff --git a/src/tools/clippy/clippy_lints/src/redundant_slicing.rs b/src/tools/clippy/clippy_lints/src/redundant_slicing.rs index f0a0e4220444f..8780b420dcff2 100644 --- a/src/tools/clippy/clippy_lints/src/redundant_slicing.rs +++ b/src/tools/clippy/clippy_lints/src/redundant_slicing.rs @@ -5,7 +5,8 @@ use clippy_utils::source::snippet_with_context; use clippy_utils::ty::peel_and_count_ty_refs; use rustc_ast::util::parser::ExprPrecedence; use rustc_errors::Applicability; -use rustc_hir::{BorrowKind, Expr, ExprKind, LangItem, Mutability}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{BorrowKind, Expr, ExprKind, Mutability}; use rustc_lint::{LateContext, LateLintPass, Lint}; use rustc_middle::ty::adjustment::{Adjust, AutoBorrow, AutoBorrowMutability}; use rustc_middle::ty::{self, GenericArg, Ty, Unnormalized}; diff --git a/src/tools/clippy/clippy_lints/src/replace_box.rs b/src/tools/clippy/clippy_lints/src/replace_box.rs index 95f2f8da2c647..fbc81a1f81778 100644 --- a/src/tools/clippy/clippy_lints/src/replace_box.rs +++ b/src/tools/clippy/clippy_lints/src/replace_box.rs @@ -6,7 +6,8 @@ use clippy_utils::{is_default_equivalent_call, local_is_initialized}; use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::smallvec::SmallVec; use rustc_errors::Applicability; -use rustc_hir::{Body, BodyId, Expr, ExprKind, HirId, LangItem, QPath}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Body, BodyId, Expr, ExprKind, HirId, QPath}; use rustc_hir_typeck::expr_use_visitor::{Delegate, ExprUseVisitor, PlaceBase, PlaceWithHirId}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::hir::place::ProjectionKind; diff --git a/src/tools/clippy/clippy_lints/src/returns/needless_return.rs b/src/tools/clippy/clippy_lints/src/returns/needless_return.rs index ad81b5efcfe13..eab681a4cb720 100644 --- a/src/tools/clippy/clippy_lints/src/returns/needless_return.rs +++ b/src/tools/clippy/clippy_lints/src/returns/needless_return.rs @@ -6,8 +6,9 @@ use clippy_utils::{ }; use rustc_ast::MetaItemInner; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::intravisit::FnKind; -use rustc_hir::{Body, Expr, ExprKind, HirId, LangItem, MatchSource, StmtKind}; +use rustc_hir::{Body, Expr, ExprKind, HirId, MatchSource, StmtKind}; use rustc_lint::{LateContext, Level, LintContext as _}; use rustc_middle::ty::{self, Ty}; use rustc_span::{BytePos, Pos as _, Span}; diff --git a/src/tools/clippy/clippy_lints/src/returns/needless_return_with_question_mark.rs b/src/tools/clippy/clippy_lints/src/returns/needless_return_with_question_mark.rs index 40e66220a0c94..bf411d22b8cf7 100644 --- a/src/tools/clippy/clippy_lints/src/returns/needless_return_with_question_mark.rs +++ b/src/tools/clippy/clippy_lints/src/returns/needless_return_with_question_mark.rs @@ -2,7 +2,7 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::res::{MaybeDef as _, MaybeQPath as _}; use clippy_utils::{is_from_proc_macro, is_inside_let_else}; use rustc_errors::Applicability; -use rustc_hir::LangItem::ResultErr; +use rustc_hir::attrs::lang_items::LangItem::ResultErr; use rustc_hir::{Expr, ExprKind, HirId, MatchSource, Node, Stmt, StmtKind}; use rustc_lint::{LateContext, LintContext as _}; use rustc_middle::ty::adjustment::Adjust; diff --git a/src/tools/clippy/clippy_lints/src/same_length_and_capacity.rs b/src/tools/clippy/clippy_lints/src/same_length_and_capacity.rs index fcd23619f9ed2..c5f226bd2d6a7 100644 --- a/src/tools/clippy/clippy_lints/src/same_length_and_capacity.rs +++ b/src/tools/clippy/clippy_lints/src/same_length_and_capacity.rs @@ -1,7 +1,8 @@ use clippy_utils::diagnostics::span_lint_and_help; use clippy_utils::res::MaybeDef as _; use clippy_utils::{eq_expr_value, sym}; -use rustc_hir::{Expr, ExprKind, LangItem, QPath}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind, QPath}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::declare_lint_pass; use rustc_span::symbol::sym as rustc_sym; diff --git a/src/tools/clippy/clippy_lints/src/strings.rs b/src/tools/clippy/clippy_lints/src/strings.rs index 6cbbcc681f944..7d9068659b0a6 100644 --- a/src/tools/clippy/clippy_lints/src/strings.rs +++ b/src/tools/clippy/clippy_lints/src/strings.rs @@ -3,9 +3,10 @@ use clippy_utils::res::{MaybeDef as _, MaybeQPath as _}; use clippy_utils::source::{snippet, snippet_with_applicability, snippet_with_context}; use clippy_utils::{SpanlessEq, get_expr_use_or_unification_node, get_parent_expr, is_lint_allowed, method_calls, sym}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::{BinOpKind, BorrowKind, Expr, ExprKind, LangItem, Node}; +use rustc_hir::{BinOpKind, BorrowKind, Expr, ExprKind, Node}; use rustc_lint::{LateContext, LateLintPass, LintContext as _}; use rustc_middle::ty; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/strlen_on_c_strings.rs b/src/tools/clippy/clippy_lints/src/strlen_on_c_strings.rs index c784c1744743f..b995f1d84c6e8 100644 --- a/src/tools/clippy/clippy_lints/src/strlen_on_c_strings.rs +++ b/src/tools/clippy/clippy_lints/src/strlen_on_c_strings.rs @@ -6,7 +6,8 @@ use clippy_utils::source::snippet_with_context; use clippy_utils::visitors::is_expr_unsafe; use clippy_utils::{match_libc_symbol, sym}; use rustc_errors::Applicability; -use rustc_hir::{Block, BlockCheckMode, Expr, ExprKind, LangItem, Node, UnsafeSource}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Block, BlockCheckMode, Expr, ExprKind, Node, UnsafeSource}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/trait_bounds.rs b/src/tools/clippy/clippy_lints/src/trait_bounds.rs index 73d9849b6d8b7..0d8818978fd57 100644 --- a/src/tools/clippy/clippy_lints/src/trait_bounds.rs +++ b/src/tools/clippy/clippy_lints/src/trait_bounds.rs @@ -8,10 +8,11 @@ use itertools::Itertools as _; use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap, IndexEntry}; use rustc_data_structures::unhash::UnhashMap; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::Res; use rustc_hir::{ - AmbigArg, BoundPolarity, GenericBound, Generics, Item, ItemKind, LangItem, Node, Path, PathSegment, - PredicateOrigin, QPath, TraitBoundModifiers, TraitItem, TraitRef, Ty, TyKind, WherePredicateKind, + AmbigArg, BoundPolarity, GenericBound, Generics, Item, ItemKind, Node, Path, PathSegment, PredicateOrigin, QPath, + TraitBoundModifiers, TraitItem, TraitRef, Ty, TyKind, WherePredicateKind, }; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::impl_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/types/owned_cow.rs b/src/tools/clippy/clippy_lints/src/types/owned_cow.rs index 85a49253320eb..8bdb37f5451ae 100644 --- a/src/tools/clippy/clippy_lints/src/types/owned_cow.rs +++ b/src/tools/clippy/clippy_lints/src/types/owned_cow.rs @@ -4,6 +4,7 @@ use clippy_utils::source::snippet_opt; use clippy_utils::sym; use rustc_errors::Applicability; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_lint::LateContext; use rustc_span::Span; @@ -32,7 +33,7 @@ pub(super) fn check(cx: &LateContext<'_>, qpath: &hir::QPath<'_>, def_id: DefId) } fn replacement(cx: &LateContext<'_>, cty: &hir::Ty<'_>) -> Option<(Span, String)> { - if cty.basic_res().is_lang_item(cx, hir::LangItem::String) { + if cty.basic_res().is_lang_item(cx, LangItem::String) { return Some((cty.span, "str".into())); } if cty.basic_res().is_diag_item(cx, sym::Vec) { diff --git a/src/tools/clippy/clippy_lints/src/types/vec_box.rs b/src/tools/clippy/clippy_lints/src/types/vec_box.rs index 539fa8505a109..204d9f06cc87f 100644 --- a/src/tools/clippy/clippy_lints/src/types/vec_box.rs +++ b/src/tools/clippy/clippy_lints/src/types/vec_box.rs @@ -2,8 +2,9 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::last_path_segment; use clippy_utils::source::snippet; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{self as hir, GenericArg, LangItem, QPath, TyKind}; +use rustc_hir::{self as hir, GenericArg, QPath, TyKind}; use rustc_hir_analysis::lower_ty; use rustc_lint::LateContext; use rustc_middle::ty::TypeVisitableExt as _; diff --git a/src/tools/clippy/clippy_lints/src/unnecessary_owned_empty_strings.rs b/src/tools/clippy/clippy_lints/src/unnecessary_owned_empty_strings.rs index de24e7827593c..22f0a2d62b13b 100644 --- a/src/tools/clippy/clippy_lints/src/unnecessary_owned_empty_strings.rs +++ b/src/tools/clippy/clippy_lints/src/unnecessary_owned_empty_strings.rs @@ -3,7 +3,8 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::sym; use rustc_ast::ast::LitKind; use rustc_errors::Applicability; -use rustc_hir::{BorrowKind, Expr, ExprKind, LangItem, Mutability}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{BorrowKind, Expr, ExprKind, Mutability}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::ty; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_lints/src/unnecessary_wraps.rs b/src/tools/clippy/clippy_lints/src/unnecessary_wraps.rs index 39b17e58b8e2a..a4283fa018367 100644 --- a/src/tools/clippy/clippy_lints/src/unnecessary_wraps.rs +++ b/src/tools/clippy/clippy_lints/src/unnecessary_wraps.rs @@ -7,7 +7,7 @@ use clippy_utils::source::snippet; use clippy_utils::visitors::find_all_ret_expressions; use clippy_utils::{contains_return, return_ty}; use rustc_errors::Applicability; -use rustc_hir::LangItem::{OptionSome, ResultOk}; +use rustc_hir::attrs::lang_items::LangItem::{OptionSome, ResultOk}; use rustc_hir::intravisit::FnKind; use rustc_hir::{Body, ExprKind, FnDecl, Impl, ItemKind, Node}; use rustc_lint::{LateContext, LateLintPass}; diff --git a/src/tools/clippy/clippy_lints/src/unused_io_amount.rs b/src/tools/clippy/clippy_lints/src/unused_io_amount.rs index 3a9aa8e5788e2..3833d19bfb7a4 100644 --- a/src/tools/clippy/clippy_lints/src/unused_io_amount.rs +++ b/src/tools/clippy/clippy_lints/src/unused_io_amount.rs @@ -4,6 +4,7 @@ use clippy_utils::res::MaybeDef as _; use clippy_utils::{paths, peel_blocks, sym}; use hir::{ExprKind, HirId, PatKind}; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::declare_lint_pass; use rustc_span::Span; @@ -139,7 +140,7 @@ fn non_consuming_err_arm<'a>(cx: &LateContext<'a>, arm: &hir::Arm<'a>) -> bool { return cx .qpath_res(path, inner_pat.hir_id) .ctor_parent(cx) - .is_lang_item(cx, hir::LangItem::ResultErr); + .is_lang_item(cx, LangItem::ResultErr); } false @@ -206,7 +207,7 @@ fn is_ok_wild_or_dotdot_pattern<'a>(cx: &LateContext<'a>, pat: &hir::Pat<'a>) -> if let PatKind::TupleStruct(ref path, inner_pat, _) = pat.kind // we check against Result::Ok to avoid linting on Err(_) or something else. - && cx.qpath_res(path, pat.hir_id).ctor_parent(cx).is_lang_item(cx, hir::LangItem::ResultOk) + && cx.qpath_res(path, pat.hir_id).ctor_parent(cx).is_lang_item(cx, LangItem::ResultOk) { if matches!(inner_pat, []) { return true; @@ -259,7 +260,7 @@ fn unpack_call_chain<'a>(mut expr: &'a hir::Expr<'a>) -> &'a hir::Expr<'a> { fn unpack_try<'a>(cx: &LateContext<'_>, mut expr: &'a hir::Expr<'a>) -> &'a hir::Expr<'a> { while let ExprKind::Call(func, [arg_0]) = expr.kind && let ExprKind::Path(qpath) = func.kind - && cx.tcx.qpath_is_lang_item(qpath, hir::LangItem::TryTraitBranch) + && cx.tcx.qpath_is_lang_item(qpath, LangItem::TryTraitBranch) { expr = arg_0; } @@ -279,7 +280,7 @@ fn unpack_await<'a>(cx: &LateContext<'_>, expr: &'a hir::Expr<'a>) -> &'a hir::E if let ExprKind::Match(expr, _, hir::MatchSource::AwaitDesugar) = expr.kind && let ExprKind::Call(func, [arg_0]) = expr.kind && let ExprKind::Path(qpath) = func.kind - && cx.tcx.qpath_is_lang_item(qpath, hir::LangItem::IntoFutureIntoFuture) + && cx.tcx.qpath_is_lang_item(qpath, LangItem::IntoFutureIntoFuture) { return arg_0; } diff --git a/src/tools/clippy/clippy_lints/src/useless_conversion.rs b/src/tools/clippy/clippy_lints/src/useless_conversion.rs index 9226d3bcbf329..ed9bf1e86e691 100644 --- a/src/tools/clippy/clippy_lints/src/useless_conversion.rs +++ b/src/tools/clippy/clippy_lints/src/useless_conversion.rs @@ -5,8 +5,9 @@ use clippy_utils::sugg::{DiagExt as _, Sugg}; use clippy_utils::ty::{is_copy, same_type_modulo_regions}; use clippy_utils::{get_parent_expr, is_ty_alias, sym}; use rustc_errors::Applicability; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; -use rustc_hir::{BindingMode, Expr, ExprKind, HirId, LangItem, MatchSource, Mutability, Node, PatKind}; +use rustc_hir::{BindingMode, Expr, ExprKind, HirId, MatchSource, Mutability, Node, PatKind}; use rustc_infer::infer::TyCtxtInferExt as _; use rustc_infer::traits::Obligation; use rustc_lint::{LateContext, LateLintPass}; diff --git a/src/tools/clippy/clippy_lints/src/with_capacity_zero.rs b/src/tools/clippy/clippy_lints/src/with_capacity_zero.rs index 62ab50bcde394..4f58cb107fd3c 100644 --- a/src/tools/clippy/clippy_lints/src/with_capacity_zero.rs +++ b/src/tools/clippy/clippy_lints/src/with_capacity_zero.rs @@ -2,7 +2,8 @@ use clippy_utils::diagnostics::span_lint_and_then; use clippy_utils::res::MaybeDef as _; use clippy_utils::{fn_def_id, is_integer_literal, last_path_segment, span_contains_comment, sym}; use rustc_errors::Applicability; -use rustc_hir::{Expr, ExprKind, LangItem}; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::{Expr, ExprKind}; use rustc_lint::{LateContext, LateLintPass}; use rustc_middle::ty::Ty; use rustc_session::declare_lint_pass; diff --git a/src/tools/clippy/clippy_utils/src/higher.rs b/src/tools/clippy/clippy_utils/src/higher.rs index e4f508661dbfb..736369ba78577 100644 --- a/src/tools/clippy/clippy_utils/src/higher.rs +++ b/src/tools/clippy/clippy_utils/src/higher.rs @@ -7,6 +7,7 @@ use crate::res::MaybeDef as _; use crate::{is_expn_of, sym}; use rustc_ast::ast; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::{ self as hir, Arm, Block, Expr, ExprKind, HirId, LetStmt, LocalSource, LoopSource, MatchSource, Node, Pat, QPath, StructTailExpr, @@ -221,40 +222,40 @@ impl<'a> Range<'a> { let (ty, start, end) = match expr.kind { ExprKind::Call(path, [arg1, arg2]) if let ExprKind::Path(qpath) = path.kind - && cx.tcx.qpath_is_lang_item(qpath, hir::LangItem::RangeInclusiveNew) => + && cx.tcx.qpath_is_lang_item(qpath, LangItem::RangeInclusiveNew) => { (RangeTy::OpsInclusive, Some(arg1), Some(arg2)) }, ExprKind::Struct(&qpath, fields, StructTailExpr::None) => match (cx.tcx.qpath_lang_item(qpath)?, fields) { - (hir::LangItem::RangeFull, []) => (RangeTy::OpsFull, None, None), - (hir::LangItem::RangeFrom, [start]) if start.ident.name == sym::start => { + (LangItem::RangeFull, []) => (RangeTy::OpsFull, None, None), + (LangItem::RangeFrom, [start]) if start.ident.name == sym::start => { (RangeTy::OpsFrom, Some(start.expr), None) }, - (hir::LangItem::RangeFromCopy, [start]) if start.ident.name == sym::start => { + (LangItem::RangeFromCopy, [start]) if start.ident.name == sym::start => { (RangeTy::RangeFrom, Some(start.expr), None) }, - (hir::LangItem::Range, [start, end] | [end, start]) + (LangItem::Range, [start, end] | [end, start]) if start.ident.name == sym::start && end.ident.name == sym::end => { (RangeTy::OpsRange, Some(start.expr), Some(end.expr)) }, - (hir::LangItem::RangeCopy, [start, end] | [end, start]) + (LangItem::RangeCopy, [start, end] | [end, start]) if start.ident.name == sym::start && end.ident.name == sym::end => { (RangeTy::RangeRange, Some(start.expr), Some(end.expr)) }, - (hir::LangItem::RangeInclusiveCopy, [start, last] | [last, start]) + (LangItem::RangeInclusiveCopy, [start, last] | [last, start]) if start.ident.name == sym::start && last.ident.name == sym::last => { (RangeTy::RangeInclusive, Some(start.expr), Some(last.expr)) }, - (hir::LangItem::RangeToInclusive, [end]) if end.ident.name == sym::end => { + (LangItem::RangeToInclusive, [end]) if end.ident.name == sym::end => { (RangeTy::OpsToInclusive, None, Some(end.expr)) }, - (hir::LangItem::RangeToInclusiveCopy, [last]) if last.ident.name == sym::last => { + (LangItem::RangeToInclusiveCopy, [last]) if last.ident.name == sym::last => { (RangeTy::RangeToInclusive, None, Some(last.expr)) }, - (hir::LangItem::RangeTo, [end]) if end.ident.name == sym::end => (RangeTy::OpsTo, None, Some(end.expr)), + (LangItem::RangeTo, [end]) if end.ident.name == sym::end => (RangeTy::OpsTo, None, Some(end.expr)), _ => return None, }, _ => return None, diff --git a/src/tools/clippy/clippy_utils/src/lib.rs b/src/tools/clippy/clippy_utils/src/lib.rs index afaf4160e2c88..9e69df1640e5e 100644 --- a/src/tools/clippy/clippy_utils/src/lib.rs +++ b/src/tools/clippy/clippy_utils/src/lib.rs @@ -85,8 +85,9 @@ use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::indexmap; use rustc_data_structures::packed::Pu128; use rustc_data_structures::unhash::UnindexMap; -use rustc_hir::LangItem::{OptionNone, OptionSome, ResultErr, ResultOk}; use rustc_hir::attrs::CfgEntry; +use rustc_hir::attrs::lang_items::LangItem; +use rustc_hir::attrs::lang_items::LangItem::{OptionNone, OptionSome, ResultErr, ResultOk}; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{DefId, LocalDefId, LocalModId}; use rustc_hir::definitions::{DefPath, DefPathData}; @@ -95,9 +96,9 @@ use rustc_hir::{ self as hir, AnonConst, Arm, BindingMode, Block, BlockCheckMode, Body, ByRef, CRATE_HIR_ID, Closure, ConstArg, ConstArgKind, CoroutineDesugaring, CoroutineKind, CoroutineSource, Destination, Expr, ExprField, ExprKind, FieldDef, FnDecl, FnRetTy, GenericArg, GenericArgs, HirId, HirIdMap, HirIdSet, Impl, ImplItem, ImplItemKind, Item, - ItemKind, LangItem, LetStmt, MatchSource, Mutability, Node, OwnerId, OwnerNode, Param, Pat, PatExpr, PatExprKind, - PatKind, Path, PathSegment, QPath, Stmt, StmtKind, TraitFn, TraitItem, TraitItemKind, TraitRef, TyKind, UnOp, - Variant, def, find_attr, + ItemKind, LetStmt, MatchSource, Mutability, Node, OwnerId, OwnerNode, Param, Pat, PatExpr, PatExprKind, PatKind, + Path, PathSegment, QPath, Stmt, StmtKind, TraitFn, TraitItem, TraitItemKind, TraitRef, TyKind, UnOp, Variant, def, + find_attr, }; use rustc_lexer::{FrontmatterAllowed, TokenKind, tokenize}; use rustc_lint::{LateContext, Level, Lint, LintContext as _}; diff --git a/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs b/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs index 4acd0cb31412f..1be40b539c74b 100644 --- a/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs +++ b/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs @@ -4,9 +4,9 @@ // differ from the time of `rustc` even if the name stays the same. use crate::msrvs::{self, Msrv}; -use hir::LangItem; use rustc_const_eval::check_consts::ConstCx; use rustc_hir::attrs::RustcVersion; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def_id::DefId; use rustc_hir::{self as hir, HirId, StableSince}; use rustc_infer::infer::TyCtxtInferExt as _; diff --git a/src/tools/clippy/clippy_utils/src/res.rs b/src/tools/clippy/clippy_utils/src/res.rs index fdafebe00f477..4d45677f4c8a5 100644 --- a/src/tools/clippy/clippy_utils/src/res.rs +++ b/src/tools/clippy/clippy_utils/src/res.rs @@ -1,7 +1,8 @@ +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::DefId; use rustc_hir::{ - self as hir, Expr, ExprKind, HirId, LangItem, Pat, PatExpr, PatExprKind, PatKind, Path, PathSegment, QPath, TyKind, + self as hir, Expr, ExprKind, HirId, Pat, PatExpr, PatExprKind, PatKind, Path, PathSegment, QPath, TyKind, }; use rustc_lint::LateContext; use rustc_middle::ty::layout::HasTyCtxt; diff --git a/src/tools/clippy/clippy_utils/src/ty/mod.rs b/src/tools/clippy/clippy_utils/src/ty/mod.rs index ba41fe5c41ec1..ca8b54a6de58b 100644 --- a/src/tools/clippy/clippy_utils/src/ty/mod.rs +++ b/src/tools/clippy/clippy_utils/src/ty/mod.rs @@ -9,9 +9,10 @@ use rustc_ast::ast::Mutability; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_errors::pluralize; use rustc_hir as hir; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res}; use rustc_hir::def_id::DefId; -use rustc_hir::{Expr, ExprKind, FnDecl, LangItem}; +use rustc_hir::{Expr, ExprKind, FnDecl}; use rustc_hir_analysis::lower_ty; use rustc_infer::infer::TyCtxtInferExt as _; use rustc_lint::LateContext; diff --git a/tests/ui-fulldeps/polymorphic-drop-glue.rs b/tests/ui-fulldeps/polymorphic-drop-glue.rs index 0617d78b89679..861c7c74b705c 100644 --- a/tests/ui-fulldeps/polymorphic-drop-glue.rs +++ b/tests/ui-fulldeps/polymorphic-drop-glue.rs @@ -16,7 +16,7 @@ extern crate rustc_span; use std::process::ExitCode; use rustc_driver::Compilation; -use rustc_hir::LangItem; +use rustc_hir::attrs::lang_items::LangItem; use rustc_hir::def::DefKind; use rustc_interface::interface::Compiler; use rustc_middle::ty::{self, TyCtxt};