Skip to content

Commit 3b64c2b

Browse files
committed
(temporarily) skip normalization in clippy and miri
1 parent a616210 commit 3b64c2b

File tree

91 files changed

+144
-158
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+144
-158
lines changed

src/tools/clippy/clippy_lints/src/casts/as_ptr_cast_mut.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, cast_expr: &Expr<'_>,
1717
&& let Some(as_ptr_did) = cx
1818
.typeck_results()
1919
.type_dependent_def_id(cast_expr.peel_blocks().hir_id)
20-
&& let as_ptr_sig = cx.tcx.fn_sig(as_ptr_did).instantiate_identity()
20+
&& let as_ptr_sig = cx.tcx.fn_sig(as_ptr_did).instantiate_identity().skip_normalization()
2121
&& let Some(first_param_ty) = as_ptr_sig.skip_binder().inputs().iter().next()
2222
&& let ty::Ref(_, _, Mutability::Not) = first_param_ty.kind()
2323
&& let Some(recv) = receiver.span.get_source_text(cx)

src/tools/clippy/clippy_lints/src/casts/cast_ptr_alignment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ fn is_used_as_unaligned(cx: &LateContext<'_>, e: &Expr<'_>) -> bool {
5959
if matches!(name.ident.name, sym::read_unaligned | sym::write_unaligned)
6060
&& let Some(def_id) = cx.typeck_results().type_dependent_def_id(parent.hir_id)
6161
&& let Some(def_id) = cx.tcx.impl_of_assoc(def_id)
62-
&& cx.tcx.type_of(def_id).instantiate_identity().is_raw_ptr()
62+
&& cx.tcx.type_of(def_id).instantiate_identity().skip_normalization().is_raw_ptr()
6363
{
6464
true
6565
} else {

src/tools/clippy/clippy_lints/src/casts/confusing_method_to_numeric_cast.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ fn get_const_name_and_ty_name(
3838
return None;
3939
}
4040
} else if let Some(impl_id) = cx.tcx.impl_of_assoc(method_def_id)
41-
&& let Some(ty_name) = get_primitive_ty_name(cx.tcx.type_of(impl_id).instantiate_identity())
41+
&& let Some(ty_name) = get_primitive_ty_name(cx.tcx.type_of(impl_id).instantiate_identity().skip_normalization())
4242
&& matches!(
4343
method_name,
4444
sym::min | sym::max | sym::minimum | sym::maximum | sym::min_value | sym::max_value

src/tools/clippy/clippy_lints/src/casts/needless_type_cast.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ fn has_generic_return_type(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
158158
.is_some(),
159159
ExprKind::MethodCall(..) => {
160160
if let Some(def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) {
161-
let sig = cx.tcx.fn_sig(def_id).instantiate_identity();
161+
let sig = cx.tcx.fn_sig(def_id).instantiate_identity().skip_normalization();
162162
let ret_ty = sig.output().skip_binder();
163163
return ret_ty.has_param();
164164
}
@@ -168,7 +168,7 @@ fn has_generic_return_type(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
168168
if let ExprKind::Path(qpath) = &callee.kind {
169169
let res = cx.qpath_res(qpath, callee.hir_id);
170170
if let Res::Def(DefKind::Fn | DefKind::AssocFn, def_id) = res {
171-
let sig = cx.tcx.fn_sig(def_id).instantiate_identity();
171+
let sig = cx.tcx.fn_sig(def_id).instantiate_identity().skip_normalization();
172172
let ret_ty = sig.output().skip_binder();
173173
return ret_ty.has_param();
174174
}

src/tools/clippy/clippy_lints/src/copy_iterator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ impl<'tcx> LateLintPass<'tcx> for CopyIterator {
4040
of_trait: Some(of_trait),
4141
..
4242
}) = item.kind
43-
&& let ty = cx.tcx.type_of(item.owner_id).instantiate_identity()
43+
&& let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_normalization()
4444
&& is_copy(cx, ty)
4545
&& let Some(trait_id) = of_trait.trait_ref.trait_def_id()
4646
&& cx.tcx.is_diagnostic_item(sym::Iterator, trait_id)

src/tools/clippy/clippy_lints/src/default.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ impl<'tcx> LateLintPass<'tcx> for Default {
143143
.fields
144144
.iter()
145145
.all(|field| {
146-
is_copy(cx, cx.tcx.type_of(field.did).instantiate(cx.tcx, args))
146+
is_copy(cx, cx.tcx.type_of(field.did).instantiate(cx.tcx, args).skip_normalization())
147147
})
148148
&& (!has_drop(cx, binding_type) || all_fields_are_copy)
149149
{

src/tools/clippy/clippy_lints/src/default_numeric_fallback.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ impl<'tcx> Visitor<'tcx> for NumericFallbackVisitor<'_, 'tcx> {
166166

167167
ExprKind::MethodCall(_, receiver, args, _) => {
168168
if let Some(def_id) = self.cx.typeck_results().type_dependent_def_id(expr.hir_id) {
169-
let fn_sig = self.cx.tcx.fn_sig(def_id).instantiate_identity().skip_binder();
169+
let fn_sig = self.cx.tcx.fn_sig(def_id).instantiate_identity().skip_normalization().skip_binder();
170170
for (expr, bound) in iter::zip(iter::once(*receiver).chain(args.iter()), fn_sig.inputs()) {
171171
self.ty_bounds.push((*bound).into());
172172
self.visit_expr(expr);
@@ -188,7 +188,7 @@ impl<'tcx> Visitor<'tcx> for NumericFallbackVisitor<'_, 'tcx> {
188188
for field in *fields {
189189
let bound = fields_def.iter().find_map(|f_def| {
190190
if f_def.ident(self.cx.tcx) == field.ident {
191-
Some(self.cx.tcx.type_of(f_def.did).instantiate_identity())
191+
Some(self.cx.tcx.type_of(f_def.did).instantiate_identity().skip_normalization())
192192
} else {
193193
None
194194
}
@@ -251,7 +251,7 @@ fn fn_sig_opt<'tcx>(cx: &LateContext<'tcx>, hir_id: HirId) -> Option<PolyFnSig<'
251251
let node_ty = cx.typeck_results().node_type_opt(hir_id)?;
252252
// We can't use `Ty::fn_sig` because it automatically performs args, this may result in FNs.
253253
match node_ty.kind() {
254-
ty::FnDef(def_id, _) => Some(cx.tcx.fn_sig(*def_id).instantiate_identity()),
254+
ty::FnDef(def_id, _) => Some(cx.tcx.fn_sig(*def_id).instantiate_identity().skip_normalization()),
255255
ty::FnPtr(sig_tys, hdr) => Some(sig_tys.with(*hdr)),
256256
_ => None,
257257
}

src/tools/clippy/clippy_lints/src/default_union_representation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ impl<'tcx> LateLintPass<'tcx> for DefaultUnionRepresentation {
8080
/// of that field does not matter either.)
8181
fn is_union_with_two_non_zst_fields<'tcx>(cx: &LateContext<'tcx>, item: &Item<'tcx>) -> bool {
8282
if let ItemKind::Union(..) = &item.kind
83-
&& let ty::Adt(adt_def, args) = cx.tcx.type_of(item.owner_id).instantiate_identity().kind()
83+
&& let ty::Adt(adt_def, args) = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_normalization().kind()
8484
{
8585
adt_def.all_fields().filter(|f| !is_zst(cx, f, args)).count() >= 2
8686
} else {

src/tools/clippy/clippy_lints/src/dereference.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ impl<'tcx> LateLintPass<'tcx> for Dereferencing<'tcx> {
381381
&& let args =
382382
typeck.node_args_opt(hir_id).map(|args| &args[1..]).unwrap_or_default()
383383
&& let impl_ty =
384-
if cx.tcx.fn_sig(fn_id).instantiate_identity().skip_binder().inputs()[0]
384+
if cx.tcx.fn_sig(fn_id).instantiate_identity().skip_normalization().skip_binder().inputs()[0]
385385
.is_ref()
386386
{
387387
// Trait methods taking `&self`

src/tools/clippy/clippy_lints/src/derivable_impls.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ impl<'tcx> LateLintPass<'tcx> for DerivableImpls {
243243
&& let Node::ImplItem(impl_item) = cx.tcx.hir_node(impl_item_hir)
244244
&& let ImplItemKind::Fn(_, b) = &impl_item.kind
245245
&& let Body { value: func_expr, .. } = cx.tcx.hir_body(*b)
246-
&& let &ty::Adt(adt_def, args) = cx.tcx.type_of(item.owner_id).instantiate_identity().kind()
246+
&& let &ty::Adt(adt_def, args) = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_normalization().kind()
247247
&& let attrs = cx.tcx.hir_attrs(item.hir_id())
248248
&& !attrs.iter().any(|attr| attr.doc_str().is_some())
249249
&& cx.tcx.hir_attrs(impl_item_hir).is_empty()

0 commit comments

Comments
 (0)