Skip to content

Commit 450b9f4

Browse files
committed
update tools
1 parent 6bbfb44 commit 450b9f4

File tree

13 files changed

+33
-29
lines changed

13 files changed

+33
-29
lines changed

src/librustdoc/clean/blanket_impl.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use rustc_hir as hir;
22
use rustc_infer::infer::{DefineOpaqueTypes, InferOk, TyCtxtInferExt};
33
use rustc_infer::traits;
4-
use rustc_middle::ty::{self, Upcast};
4+
use rustc_middle::ty::{self, TypingMode, Upcast};
55
use rustc_span::DUMMY_SP;
66
use rustc_span::def_id::DefId;
77
use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt;
@@ -38,7 +38,7 @@ pub(crate) fn synthesize_blanket_impls(
3838
if !matches!(trait_ref.skip_binder().self_ty().kind(), ty::Param(_)) {
3939
continue;
4040
}
41-
let infcx = tcx.infer_ctxt().build();
41+
let infcx = tcx.infer_ctxt().build(TypingMode::non_body_analysis());
4242
let args = infcx.fresh_args_for_item(DUMMY_SP, item_def_id);
4343
let impl_ty = ty.instantiate(tcx, args);
4444
let param_env = ty::ParamEnv::empty();

src/librustdoc/clean/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ use rustc_hir::def_id::{DefId, DefIdMap, DefIdSet, LOCAL_CRATE, LocalDefId};
4545
use rustc_hir_analysis::lower_ty;
4646
use rustc_middle::metadata::Reexport;
4747
use rustc_middle::middle::resolve_bound_vars as rbv;
48-
use rustc_middle::ty::{self, AdtKind, GenericArgsRef, Ty, TyCtxt, TypeVisitableExt};
48+
use rustc_middle::ty::{self, AdtKind, GenericArgsRef, Ty, TyCtxt, TypeVisitableExt, TypingMode};
4949
use rustc_middle::{bug, span_bug};
5050
use rustc_span::ExpnKind;
5151
use rustc_span::hygiene::{AstPass, MacroKind};
@@ -1862,7 +1862,7 @@ fn normalize<'tcx>(
18621862
use rustc_trait_selection::traits::query::normalize::QueryNormalizeExt;
18631863

18641864
// Try to normalize `<X as Y>::T` to a type
1865-
let infcx = cx.tcx.infer_ctxt().build();
1865+
let infcx = cx.tcx.infer_ctxt().build(TypingMode::non_body_analysis());
18661866
let normalized = infcx
18671867
.at(&ObligationCause::dummy(), cx.param_env)
18681868
.query_normalize(ty)
@@ -2398,7 +2398,7 @@ pub(crate) fn clean_variant_def_with_args<'tcx>(
23982398
use rustc_trait_selection::infer::TyCtxtInferExt;
23992399
use rustc_trait_selection::traits::query::normalize::QueryNormalizeExt;
24002400

2401-
let infcx = cx.tcx.infer_ctxt().build();
2401+
let infcx = cx.tcx.infer_ctxt().build(TypingMode::non_body_analysis());
24022402
let kind = match variant.ctor_kind() {
24032403
Some(CtorKind::Const) => VariantKind::CLike,
24042404
Some(CtorKind::Fn) => VariantKind::Tuple(

src/librustdoc/html/format.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ use rustc_data_structures::fx::FxHashSet;
1919
use rustc_hir::def::DefKind;
2020
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
2121
use rustc_metadata::creader::{CStore, LoadedMacro};
22-
use rustc_middle::ty;
23-
use rustc_middle::ty::TyCtxt;
22+
use rustc_middle::ty::{self, TyCtxt, TypingMode};
2423
use rustc_span::symbol::kw;
2524
use rustc_span::{Symbol, sym};
2625
use rustc_target::spec::abi::Abi;
@@ -615,7 +614,7 @@ fn generate_item_def_id_path(
615614
// No need to try to infer the actual parent item if it's not an associated item from the `impl`
616615
// block.
617616
if def_id != original_def_id && matches!(tcx.def_kind(def_id), DefKind::Impl { .. }) {
618-
let infcx = tcx.infer_ctxt().build();
617+
let infcx = tcx.infer_ctxt().build(TypingMode::non_body_analysis());
619618
def_id = infcx
620619
.at(&ObligationCause::dummy(), tcx.param_env(def_id))
621620
.query_normalize(ty::Binder::dummy(tcx.type_of(def_id).instantiate_identity()))

src/tools/clippy/clippy_lints/src/eta_reduction.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ use rustc_hir::{BindingMode, Expr, ExprKind, FnRetTy, Param, PatKind, QPath, Saf
99
use rustc_infer::infer::TyCtxtInferExt;
1010
use rustc_lint::{LateContext, LateLintPass};
1111
use rustc_middle::ty::{
12-
self, Binder, ClosureKind, FnSig, GenericArg, GenericArgKind, List, Region, Ty, TypeVisitableExt, TypeckResults,
12+
self, Binder, ClosureKind, FnSig, GenericArg, GenericArgKind, List, Region, Ty, TypeVisitableExt,
13+
TypeckResults, TypingMode,
1314
};
1415
use rustc_session::declare_lint_pass;
1516
use rustc_span::symbol::sym;
@@ -203,7 +204,7 @@ fn check_clousure<'tcx>(cx: &LateContext<'tcx>, outer_receiver: Option<&Expr<'tc
203204
// 'cuz currently nothing changes after deleting this check.
204205
local_used_in(cx, l, args) || local_used_after_expr(cx, l, expr)
205206
}) {
206-
match cx.tcx.infer_ctxt().build().err_ctxt().type_implements_fn_trait(
207+
match cx.tcx.infer_ctxt().build(TypingMode::from_param_env(cx.param_env)).err_ctxt().type_implements_fn_trait(
207208
cx.param_env,
208209
Binder::bind_with_vars(callee_ty_adjusted, List::empty()),
209210
ty::PredicatePolarity::Positive,

src/tools/clippy/clippy_lints/src/functions/must_use.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use rustc_hir::{self as hir, QPath};
77
use rustc_infer::infer::TyCtxtInferExt;
88
use rustc_lint::{LateContext, LintContext};
99
use rustc_middle::lint::in_external_macro;
10-
use rustc_middle::ty::{self, Ty};
10+
use rustc_middle::ty::{self, Ty, TypingMode};
1111
use rustc_span::{Span, sym};
1212

1313
use clippy_utils::attrs::is_proc_macro;
@@ -117,7 +117,7 @@ fn check_needless_must_use(
117117
} else if attr.value_str().is_none() && is_must_use_ty(cx, return_ty(cx, item_id)) {
118118
// Ignore async functions unless Future::Output type is a must_use type
119119
if sig.header.is_async() {
120-
let infcx = cx.tcx.infer_ctxt().build();
120+
let infcx = cx.tcx.infer_ctxt().build(TypingMode::from_param_env(cx.param_env));
121121
if let Some(future_ty) = infcx.err_ctxt().get_impl_future_output_ty(return_ty(cx, item_id))
122122
&& !is_must_use_ty(cx, future_ty)
123123
{

src/tools/clippy/clippy_lints/src/future_not_send.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use rustc_hir::{Body, FnDecl};
55
use rustc_infer::infer::TyCtxtInferExt;
66
use rustc_lint::{LateContext, LateLintPass};
77
use rustc_middle::ty::print::PrintTraitRefExt;
8-
use rustc_middle::ty::{self, AliasTy, ClauseKind, PredicateKind};
8+
use rustc_middle::ty::{self, AliasTy, ClauseKind, PredicateKind, TypingMode};
99
use rustc_session::declare_lint_pass;
1010
use rustc_span::def_id::LocalDefId;
1111
use rustc_span::{Span, sym};
@@ -74,7 +74,7 @@ impl<'tcx> LateLintPass<'tcx> for FutureNotSend {
7474
if is_future {
7575
let send_trait = cx.tcx.get_diagnostic_item(sym::Send).unwrap();
7676
let span = decl.output.span();
77-
let infcx = cx.tcx.infer_ctxt().build();
77+
let infcx = cx.tcx.infer_ctxt().build(TypingMode::from_param_env(cx.param_env));
7878
let ocx = ObligationCtxt::new_with_diagnostics(&infcx);
7979
let cause = traits::ObligationCause::misc(span, fn_def_id);
8080
ocx.register_bound(cause, cx.param_env, ret_ty, send_trait);

src/tools/clippy/clippy_lints/src/methods/unnecessary_to_owned.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use rustc_middle::mir::Mutability;
1818
use rustc_middle::ty::adjustment::{Adjust, Adjustment, OverloadedDeref};
1919
use rustc_middle::ty::{
2020
self, ClauseKind, GenericArg, GenericArgKind, GenericArgsRef, ParamTy, ProjectionPredicate, TraitPredicate, Ty,
21+
TypingMode,
2122
};
2223
use rustc_span::{Symbol, sym};
2324
use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt as _;
@@ -568,7 +569,7 @@ fn can_change_type<'a>(cx: &LateContext<'a>, mut expr: &'a Expr<'a>, mut ty: Ty<
568569
let obligation = Obligation::new(cx.tcx, ObligationCause::dummy(), cx.param_env, predicate);
569570
!cx.tcx
570571
.infer_ctxt()
571-
.build()
572+
.build(TypingMode::from_param_env(cx.param_env))
572573
.predicate_must_hold_modulo_regions(&obligation)
573574
}) {
574575
return false;

src/tools/clippy/clippy_lints/src/needless_borrows_for_generic_args.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use rustc_infer::infer::TyCtxtInferExt;
1414
use rustc_lint::{LateContext, LateLintPass};
1515
use rustc_middle::mir::{Rvalue, StatementKind};
1616
use rustc_middle::ty::{
17-
self, ClauseKind, EarlyBinder, FnSig, GenericArg, GenericArgKind, ParamTy, ProjectionPredicate, Ty,
17+
self, ClauseKind, EarlyBinder, FnSig, GenericArg, GenericArgKind, ParamTy, ProjectionPredicate, Ty, TypingMode,
1818
};
1919
use rustc_session::impl_lint_pass;
2020
use rustc_span::symbol::sym;
@@ -278,7 +278,7 @@ fn needless_borrow_count<'tcx>(
278278

279279
let predicate = EarlyBinder::bind(predicate).instantiate(cx.tcx, &args_with_referent_ty[..]);
280280
let obligation = Obligation::new(cx.tcx, ObligationCause::dummy(), cx.param_env, predicate);
281-
let infcx = cx.tcx.infer_ctxt().build();
281+
let infcx = cx.tcx.infer_ctxt().build(TypingMode::from_param_env(cx.param_env));
282282
infcx.predicate_must_hold_modulo_regions(&obligation)
283283
})
284284
};

src/tools/clippy/clippy_lints/src/no_effect.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use rustc_hir::{
1313
use rustc_infer::infer::TyCtxtInferExt as _;
1414
use rustc_lint::{LateContext, LateLintPass, LintContext};
1515
use rustc_middle::lint::in_external_macro;
16+
use rustc_middle::ty::TypingMode;
1617
use rustc_session::impl_lint_pass;
1718
use rustc_span::Span;
1819
use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
@@ -160,7 +161,7 @@ impl NoEffect {
160161
// Remove `impl Future<Output = T>` to get `T`
161162
if cx.tcx.ty_is_opaque_future(ret_ty)
162163
&& let Some(true_ret_ty) =
163-
cx.tcx.infer_ctxt().build().err_ctxt().get_impl_future_output_ty(ret_ty)
164+
cx.tcx.infer_ctxt().build(TypingMode::from_param_env(cx.param_env)).err_ctxt().get_impl_future_output_ty(ret_ty)
164165
{
165166
ret_ty = true_ret_ty;
166167
}

src/tools/clippy/clippy_lints/src/ptr.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use rustc_infer::infer::TyCtxtInferExt;
1414
use rustc_infer::traits::{Obligation, ObligationCause};
1515
use rustc_lint::{LateContext, LateLintPass};
1616
use rustc_middle::hir::nested_filter;
17-
use rustc_middle::ty::{self, Binder, ClauseKind, ExistentialPredicate, List, PredicateKind, Ty};
17+
use rustc_middle::ty::{self, Binder, ClauseKind, ExistentialPredicate, List, PredicateKind, Ty, TypingMode};
1818
use rustc_session::declare_lint_pass;
1919
use rustc_span::symbol::Symbol;
2020
use rustc_span::{Span, sym};
@@ -695,7 +695,7 @@ fn matches_preds<'tcx>(
695695
ty: Ty<'tcx>,
696696
preds: &'tcx [ty::PolyExistentialPredicate<'tcx>],
697697
) -> bool {
698-
let infcx = cx.tcx.infer_ctxt().build();
698+
let infcx = cx.tcx.infer_ctxt().build(TypingMode::from_param_env(cx.param_env));
699699
preds
700700
.iter()
701701
.all(|&p| match cx.tcx.instantiate_bound_regions_with_erased(p) {

src/tools/clippy/clippy_lints/src/useless_conversion.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ use rustc_infer::infer::TyCtxtInferExt;
1010
use rustc_infer::traits::Obligation;
1111
use rustc_lint::{LateContext, LateLintPass};
1212
use rustc_middle::traits::ObligationCause;
13-
use rustc_middle::ty::{self, EarlyBinder, GenericArg, GenericArgsRef, Ty, TypeVisitableExt};
13+
use rustc_middle::ty::{
14+
self, EarlyBinder, GenericArg, GenericArgsRef, Ty, TypeVisitableExt, TypingMode
15+
};
1416
use rustc_session::impl_lint_pass;
1517
use rustc_span::{Span, sym};
1618
use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt;
@@ -114,7 +116,7 @@ fn into_iter_bound<'tcx>(
114116
if !cx
115117
.tcx
116118
.infer_ctxt()
117-
.build()
119+
.build(TypingMode::from_param_env(cx.param_env))
118120
.predicate_must_hold_modulo_regions(&obligation)
119121
{
120122
return None;

src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use rustc_middle::mir::{
1717
};
1818
use rustc_middle::traits::{BuiltinImplSource, ImplSource, ObligationCause};
1919
use rustc_middle::ty::adjustment::PointerCoercion;
20-
use rustc_middle::ty::{self, GenericArgKind, TraitRef, Ty, TyCtxt};
20+
use rustc_middle::ty::{self, GenericArgKind, TraitRef, Ty, TyCtxt, TypingMode};
2121
use rustc_span::Span;
2222
use rustc_span::symbol::sym;
2323
use rustc_trait_selection::traits::{ObligationCtxt, SelectionContext};
@@ -416,7 +416,7 @@ fn is_ty_const_destruct<'tcx>(tcx: TyCtxt<'tcx>, ty: Ty<'tcx>, body: &Body<'tcx>
416416
TraitRef::new(tcx, tcx.require_lang_item(LangItem::Destruct, Some(body.span)), [ty]),
417417
);
418418

419-
let infcx = tcx.infer_ctxt().build();
419+
let infcx = tcx.infer_ctxt().build(TypingMode::from_param_env(obligation.param_env));
420420
let mut selcx = SelectionContext::new(&infcx);
421421
let Some(impl_src) = selcx.select(&obligation).ok().flatten() else {
422422
return false;

src/tools/clippy/clippy_utils/src/ty.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use rustc_middle::ty::layout::ValidityRequirement;
1919
use rustc_middle::ty::{
2020
self, AdtDef, AliasTy, AssocItem, AssocKind, Binder, BoundRegion, FnSig, GenericArg, GenericArgKind,
2121
GenericArgsRef, GenericParamDefKind, IntTy, ParamEnv, Region, RegionKind, TraitRef, Ty, TyCtxt, TypeSuperVisitable,
22-
TypeVisitable, TypeVisitableExt, TypeVisitor, UintTy, Upcast, VariantDef, VariantDiscr,
22+
TypeVisitable, TypeVisitableExt, TypeVisitor, UintTy, Upcast, VariantDef, VariantDiscr, TypingMode,
2323
};
2424
use rustc_span::symbol::Ident;
2525
use rustc_span::{DUMMY_SP, Span, Symbol, sym};
@@ -268,7 +268,7 @@ pub fn implements_trait_with_env_from_iter<'tcx>(
268268
return false;
269269
}
270270

271-
let infcx = tcx.infer_ctxt().build();
271+
let infcx = tcx.infer_ctxt().build(TypingMode::from_param_env(param_env));
272272
let args = args
273273
.into_iter()
274274
.map(|arg| arg.into().unwrap_or_else(|| infcx.next_ty_var(DUMMY_SP).into()))
@@ -362,7 +362,7 @@ fn is_normalizable_helper<'tcx>(
362362
}
363363
// prevent recursive loops, false-negative is better than endless loop leading to stack overflow
364364
cache.insert(ty, false);
365-
let infcx = cx.tcx.infer_ctxt().build();
365+
let infcx = cx.tcx.infer_ctxt().build(TypingMode::from_param_env(param_env));
366366
let cause = ObligationCause::dummy();
367367
let result = if infcx.at(&cause, param_env).query_normalize(ty).is_ok() {
368368
match ty.kind() {
@@ -1268,7 +1268,7 @@ pub fn make_normalized_projection_with_regions<'tcx>(
12681268
let cause = ObligationCause::dummy();
12691269
match tcx
12701270
.infer_ctxt()
1271-
.build()
1271+
.build(TypingMode::from_param_env(param_env))
12721272
.at(&cause, param_env)
12731273
.query_normalize(Ty::new_projection_from_args(tcx, ty.def_id, ty.args))
12741274
{
@@ -1284,7 +1284,7 @@ pub fn make_normalized_projection_with_regions<'tcx>(
12841284

12851285
pub fn normalize_with_regions<'tcx>(tcx: TyCtxt<'tcx>, param_env: ParamEnv<'tcx>, ty: Ty<'tcx>) -> Ty<'tcx> {
12861286
let cause = ObligationCause::dummy();
1287-
match tcx.infer_ctxt().build().at(&cause, param_env).query_normalize(ty) {
1287+
match tcx.infer_ctxt().build(TypingMode::from_param_env(param_env)).at(&cause, param_env).query_normalize(ty) {
12881288
Ok(ty) => ty.value,
12891289
Err(_) => ty,
12901290
}

0 commit comments

Comments
 (0)