Move TyCtxt::mk_x to Ty::new_x where applicable

This commit is contained in:
Boxy 2023-07-05 20:13:26 +01:00
parent 406241832e
commit cbe468222a
11 changed files with 18 additions and 17 deletions

View file

@ -61,7 +61,7 @@ fn is_impl_not_trait_with_bool_out<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>) -
) )
}) })
.map_or(false, |assoc_item| { .map_or(false, |assoc_item| {
let proj = cx.tcx.mk_projection(assoc_item.def_id, cx.tcx.mk_substs_trait(ty, [])); let proj = Ty::new_projection(cx.tcx,assoc_item.def_id, cx.tcx.mk_substs_trait(ty, []));
let nty = cx.tcx.normalize_erasing_regions(cx.param_env, proj); let nty = cx.tcx.normalize_erasing_regions(cx.param_env, proj);
nty.is_bool() nty.is_bool()

View file

@ -149,7 +149,7 @@ fn is_ref_iterable<'tcx>(
let self_ty = if mutbl.is_mut() { let self_ty = if mutbl.is_mut() {
self_ty self_ty
} else { } else {
cx.tcx.mk_ref(region, TypeAndMut { ty, mutbl }) Ty::new_ref(cx.tcx,region, TypeAndMut { ty, mutbl })
}; };
if implements_trait(cx, self_ty, trait_id, &[]) if implements_trait(cx, self_ty, trait_id, &[])
&& let Some(ty) = && let Some(ty) =
@ -164,7 +164,7 @@ fn is_ref_iterable<'tcx>(
&& !self_ty.is_ref() && !self_ty.is_ref()
{ {
// Attempt to borrow // Attempt to borrow
let self_ty = cx.tcx.mk_ref(cx.tcx.lifetimes.re_erased, TypeAndMut { let self_ty = Ty::new_ref(cx.tcx,cx.tcx.lifetimes.re_erased, TypeAndMut {
ty: self_ty, ty: self_ty,
mutbl, mutbl,
}); });

View file

@ -215,7 +215,7 @@ fn iterates_same_ty<'tcx>(cx: &LateContext<'tcx>, iter_ty: Ty<'tcx>, collect_ty:
&& let Some(into_iter_item_proj) = make_projection(cx.tcx, into_iter_trait, item, [collect_ty]) && let Some(into_iter_item_proj) = make_projection(cx.tcx, into_iter_trait, item, [collect_ty])
&& let Ok(into_iter_item_ty) = cx.tcx.try_normalize_erasing_regions( && let Ok(into_iter_item_ty) = cx.tcx.try_normalize_erasing_regions(
cx.param_env, cx.param_env,
cx.tcx.mk_projection(into_iter_item_proj.def_id, into_iter_item_proj.substs) Ty::new_projection(cx.tcx,into_iter_item_proj.def_id, into_iter_item_proj.substs)
) )
{ {
iter_item_ty == into_iter_item_ty iter_item_ty == into_iter_item_ty
@ -238,7 +238,7 @@ fn is_contains_sig(cx: &LateContext<'_>, call_id: HirId, iter_expr: &Expr<'_>) -
.associated_items(iter_trait) .associated_items(iter_trait)
.find_by_name_and_kind(cx.tcx, Ident::with_dummy_span(Symbol::intern("Item")), AssocKind::Type, iter_trait) .find_by_name_and_kind(cx.tcx, Ident::with_dummy_span(Symbol::intern("Item")), AssocKind::Type, iter_trait)
&& let substs = cx.tcx.mk_substs(&[GenericArg::from(typeck.expr_ty_adjusted(iter_expr))]) && let substs = cx.tcx.mk_substs(&[GenericArg::from(typeck.expr_ty_adjusted(iter_expr))])
&& let proj_ty = cx.tcx.mk_projection(iter_item.def_id, substs) && let proj_ty = Ty::new_projection(cx.tcx,iter_item.def_id, substs)
&& let Ok(item_ty) = cx.tcx.try_normalize_erasing_regions(cx.param_env, proj_ty) && let Ok(item_ty) = cx.tcx.try_normalize_erasing_regions(cx.param_env, proj_ty)
{ {
item_ty == EarlyBinder::bind(search_ty).subst(cx.tcx, cx.typeck_results().node_substs(call_id)) item_ty == EarlyBinder::bind(search_ty).subst(cx.tcx, cx.typeck_results().node_substs(call_id))

View file

@ -270,7 +270,7 @@ fn check_other_call_arg<'tcx>(
if let Some((n_refs, receiver_ty)) = if n_refs > 0 || is_copy(cx, receiver_ty) { if let Some((n_refs, receiver_ty)) = if n_refs > 0 || is_copy(cx, receiver_ty) {
Some((n_refs, receiver_ty)) Some((n_refs, receiver_ty))
} else if trait_predicate.def_id() != deref_trait_id { } else if trait_predicate.def_id() != deref_trait_id {
Some((1, cx.tcx.mk_ref( Some((1, Ty::new_ref(cx.tcx,
cx.tcx.lifetimes.re_erased, cx.tcx.lifetimes.re_erased,
ty::TypeAndMut { ty::TypeAndMut {
ty: receiver_ty, ty: receiver_ty,

View file

@ -17,7 +17,7 @@ use rustc_hir_typeck::expr_use_visitor as euv;
use rustc_infer::infer::TyCtxtInferExt; use rustc_infer::infer::TyCtxtInferExt;
use rustc_lint::{LateContext, LateLintPass}; use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::mir::FakeReadCause; use rustc_middle::mir::FakeReadCause;
use rustc_middle::ty::{self, TypeVisitableExt}; use rustc_middle::ty::{self, TypeVisitableExt, Ty};
use rustc_session::{declare_lint_pass, declare_tool_lint}; use rustc_session::{declare_lint_pass, declare_tool_lint};
use rustc_span::def_id::LocalDefId; use rustc_span::def_id::LocalDefId;
use rustc_span::symbol::kw; use rustc_span::symbol::kw;
@ -168,7 +168,7 @@ impl<'tcx> LateLintPass<'tcx> for NeedlessPassByValue {
( (
preds.iter().any(|t| cx.tcx.is_diagnostic_item(sym::Borrow, t.def_id())), preds.iter().any(|t| cx.tcx.is_diagnostic_item(sym::Borrow, t.def_id())),
!preds.is_empty() && { !preds.is_empty() && {
let ty_empty_region = cx.tcx.mk_imm_ref(cx.tcx.lifetimes.re_erased, ty); let ty_empty_region = Ty::new_imm_ref(cx.tcx,cx.tcx.lifetimes.re_erased, ty);
preds.iter().all(|t| { preds.iter().all(|t| {
let ty_params = t.trait_ref.substs.iter().skip(1).collect::<Vec<_>>(); let ty_params = t.trait_ref.substs.iter().skip(1).collect::<Vec<_>>();
implements_trait(cx, ty_empty_region, t.def_id(), &ty_params) implements_trait(cx, ty_empty_region, t.def_id(), &ty_params)

View file

@ -389,11 +389,11 @@ impl<'tcx> DerefTy<'tcx> {
fn ty(&self, cx: &LateContext<'tcx>) -> Ty<'tcx> { fn ty(&self, cx: &LateContext<'tcx>) -> Ty<'tcx> {
match *self { match *self {
Self::Str => cx.tcx.types.str_, Self::Str => cx.tcx.types.str_,
Self::Path => cx.tcx.mk_adt( Self::Path => Ty::new_adt(cx.tcx,
cx.tcx.adt_def(cx.tcx.get_diagnostic_item(sym::Path).unwrap()), cx.tcx.adt_def(cx.tcx.get_diagnostic_item(sym::Path).unwrap()),
List::empty(), List::empty(),
), ),
Self::Slice(_, ty) => cx.tcx.mk_slice(ty), Self::Slice(_, ty) => Ty::new_slice(cx.tcx,ty),
} }
} }

View file

@ -7,6 +7,7 @@ use rustc_ast::util::parser::PREC_PREFIX;
use rustc_errors::Applicability; use rustc_errors::Applicability;
use rustc_hir::{BorrowKind, Expr, ExprKind, LangItem, Mutability}; use rustc_hir::{BorrowKind, Expr, ExprKind, LangItem, Mutability};
use rustc_lint::{LateContext, LateLintPass, Lint}; use rustc_lint::{LateContext, LateLintPass, Lint};
use rustc_middle::ty::Ty;
use rustc_middle::ty::adjustment::{Adjust, AutoBorrow, AutoBorrowMutability}; use rustc_middle::ty::adjustment::{Adjust, AutoBorrow, AutoBorrowMutability};
use rustc_middle::ty::subst::GenericArg; use rustc_middle::ty::subst::GenericArg;
use rustc_session::{declare_lint_pass, declare_tool_lint}; use rustc_session::{declare_lint_pass, declare_tool_lint};
@ -134,7 +135,7 @@ impl<'tcx> LateLintPass<'tcx> for RedundantSlicing {
} else if let Some(target_id) = cx.tcx.lang_items().deref_target() { } else if let Some(target_id) = cx.tcx.lang_items().deref_target() {
if let Ok(deref_ty) = cx.tcx.try_normalize_erasing_regions( if let Ok(deref_ty) = cx.tcx.try_normalize_erasing_regions(
cx.param_env, cx.param_env,
cx.tcx.mk_projection(target_id, cx.tcx.mk_substs(&[GenericArg::from(indexed_ty)])), Ty::new_projection(cx.tcx,target_id, cx.tcx.mk_substs(&[GenericArg::from(indexed_ty)])),
) { ) {
if deref_ty == expr_ty { if deref_ty == expr_ty {
let snip = snippet_with_context(cx, indexed.span, ctxt, "..", &mut app).0; let snip = snippet_with_context(cx, indexed.span, ctxt, "..", &mut app).0;

View file

@ -24,7 +24,7 @@ pub(super) fn check<'tcx>(
"transmute from a pointer to a pointer", "transmute from a pointer to a pointer",
|diag| { |diag| {
if let Some(arg) = sugg::Sugg::hir_opt(cx, arg) { if let Some(arg) = sugg::Sugg::hir_opt(cx, arg) {
let sugg = arg.as_ty(cx.tcx.mk_ptr(*to_ty)); let sugg = arg.as_ty(Ty::new_ptr(cx.tcx,*to_ty));
diag.span_suggestion(e.span, "try", sugg, Applicability::Unspecified); diag.span_suggestion(e.span, "try", sugg, Applicability::Unspecified);
} }
}, },

View file

@ -64,8 +64,8 @@ pub(super) fn check<'tcx>(
}; };
let ty_to_and_mut = ty::TypeAndMut { ty: *ty_to, mutbl: *to_mutbl }; let ty_to_and_mut = ty::TypeAndMut { ty: *ty_to, mutbl: *to_mutbl };
let sugg_paren = arg let sugg_paren = arg
.as_ty(cx.tcx.mk_ptr(ty_from_and_mut)) .as_ty(Ty::new_ptr(cx.tcx,ty_from_and_mut))
.as_ty(cx.tcx.mk_ptr(ty_to_and_mut)); .as_ty(Ty::new_ptr(cx.tcx,ty_to_and_mut));
let sugg = if *to_mutbl == Mutability::Mut { let sugg = if *to_mutbl == Mutability::Mut {
sugg_paren.mut_addr_deref() sugg_paren.mut_addr_deref()
} else { } else {

View file

@ -43,7 +43,7 @@ pub(super) fn check<'tcx>(
let sugg = if *ptr_ty == rty_and_mut { let sugg = if *ptr_ty == rty_and_mut {
arg.as_ty(to_ty) arg.as_ty(to_ty)
} else { } else {
arg.as_ty(cx.tcx.mk_ptr(rty_and_mut)).as_ty(to_ty) arg.as_ty(Ty::new_ptr(cx.tcx,rty_and_mut)).as_ty(to_ty)
}; };
diag.span_suggestion(e.span, "try", sugg, Applicability::Unspecified); diag.span_suggestion(e.span, "try", sugg, Applicability::Unspecified);

View file

@ -1124,7 +1124,7 @@ pub fn make_normalized_projection<'tcx>(
); );
return None; return None;
} }
match tcx.try_normalize_erasing_regions(param_env, tcx.mk_projection(ty.def_id, ty.substs)) { match tcx.try_normalize_erasing_regions(param_env, Ty::new_projection(tcx,ty.def_id, ty.substs)) {
Ok(ty) => Some(ty), Ok(ty) => Some(ty),
Err(e) => { Err(e) => {
debug_assert!(false, "failed to normalize type `{ty}`: {e:#?}"); debug_assert!(false, "failed to normalize type `{ty}`: {e:#?}");
@ -1207,7 +1207,7 @@ pub fn make_normalized_projection_with_regions<'tcx>(
.infer_ctxt() .infer_ctxt()
.build() .build()
.at(&cause, param_env) .at(&cause, param_env)
.query_normalize(tcx.mk_projection(ty.def_id, ty.substs)) .query_normalize(Ty::new_projection(tcx,ty.def_id, ty.substs))
{ {
Ok(ty) => Some(ty.value), Ok(ty) => Some(ty.value),
Err(e) => { Err(e) => {