rust/tests/ui/span
Matthias Krüger 48a0d038fa
Rollup merge of #113005 - compiler-errors:dont-query-normalize, r=cjgillot
Don't call `query_normalize` when reporting similar impls

Firstly, It's sketchy to be using `query_normalize` at all during HIR typeck -- it's asking for an ICE 😅. Secondly, we're normalizing an impl trait ref that potentially has parameter types in `ty::ParamEnv::empty()`, which is kinda sketchy as well.

The only UI test change from removing this normalization is that we don't evaluate anonymous constants in impls, which end up giving us really ugly suggestions:

```
error[E0277]: the trait bound `[X; 35]: Default` is not satisfied
 --> /home/gh-compiler-errors/test.rs:4:5
  |
4 |     <[X; 35] as Default>::default();
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `[X; 35]`
  |
  = help: the following other types implement trait `Default`:
            &[T]
            &mut [T]
            [T; 32]
            [T; core::::array::{impl#30}::{constant#0}]
            [T; core::::array::{impl#31}::{constant#0}]
            [T; core::::array::{impl#32}::{constant#0}]
            [T; core::::array::{impl#33}::{constant#0}]
            [T; core::::array::{impl#34}::{constant#0}]
          and 27 others
```

So just fold the impls with a `BottomUpFolder` that calls `ty::Const::eval`. This doesn't work totally correctly with generic-const-exprs, but it's fine for stable code, and this is error reporting after all.
2023-07-08 20:53:27 +02:00
..
auxiliary
borrowck-borrow-overloaded-auto-deref-mut.rs
borrowck-borrow-overloaded-auto-deref-mut.stderr
borrowck-borrow-overloaded-deref-mut.rs
borrowck-borrow-overloaded-deref-mut.stderr
borrowck-call-is-borrow-issue-12224.rs
borrowck-call-is-borrow-issue-12224.stderr
borrowck-call-method-from-mut-aliasable.rs
borrowck-call-method-from-mut-aliasable.stderr
borrowck-fn-in-const-b.rs
borrowck-fn-in-const-b.stderr
borrowck-let-suggestion-suffixes.rs
borrowck-let-suggestion-suffixes.stderr
borrowck-object-mutability.rs
borrowck-object-mutability.stderr
borrowck-ref-into-rvalue.fixed
borrowck-ref-into-rvalue.rs
borrowck-ref-into-rvalue.stderr
coerce-suggestions.rs
coerce-suggestions.stderr
destructor-restrictions.rs
destructor-restrictions.stderr
drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs
drop-location-span-error-rust-2021-incompatible-closure-captures-93117.stderr
drop-location-span-error-rust-2021-incompatible-closure-captures-96258.rs
drop-location-span-error-rust-2021-incompatible-closure-captures-96258.stderr
dropck_arr_cycle_checked.rs
dropck_arr_cycle_checked.stderr
dropck_direct_cycle_with_drop.rs
dropck_direct_cycle_with_drop.stderr
dropck_misc_variants.rs
dropck_misc_variants.stderr
dropck_vec_cycle_checked.rs
dropck_vec_cycle_checked.stderr
dropck-object-cycle.rs
dropck-object-cycle.stderr
E0046.rs
E0046.stderr
E0072.rs
E0072.stderr
E0204.rs
E0204.stderr
E0493.rs
E0493.stderr
E0535.rs
E0535.stderr
E0536.rs
E0536.stderr
E0537.rs
E0537.stderr
gated-features-attr-spans.rs
gated-features-attr-spans.stderr
impl-wrong-item-for-trait.rs
impl-wrong-item-for-trait.stderr
import-ty-params.rs
import-ty-params.stderr
issue28498-reject-ex1.rs
issue28498-reject-ex1.stderr
issue28498-reject-lifetime-param.rs
issue28498-reject-lifetime-param.stderr
issue28498-reject-passed-to-fn.rs
issue28498-reject-passed-to-fn.stderr
issue28498-reject-trait-bound.rs
issue28498-reject-trait-bound.stderr
issue-11925.rs
issue-11925.stderr
issue-15480.fixed
issue-15480.rs
issue-15480.stderr
issue-23338-locals-die-before-temps-of-body.rs
issue-23338-locals-die-before-temps-of-body.stderr
issue-23729.rs
issue-23729.stderr
issue-23827.rs
issue-23827.stderr
issue-24356.rs
issue-24356.stderr
issue-24690.rs
issue-24690.stderr
issue-24805-dropck-child-has-items-via-parent.rs
issue-24805-dropck-child-has-items-via-parent.stderr
issue-24805-dropck-trait-has-items.rs
issue-24805-dropck-trait-has-items.stderr
issue-24895-copy-clone-dropck.rs
issue-24895-copy-clone-dropck.stderr
issue-25199.rs
issue-25199.stderr
issue-26656.rs
issue-26656.stderr
issue-27522.rs
issue-27522.stderr
issue-29106.rs
issue-29106.stderr
issue-29595.rs
issue-29595.stderr
issue-33884.rs
issue-33884.stderr
issue-34264.rs
issue-34264.stderr
issue-35987.rs
issue-35987.stderr
issue-36537.rs
issue-36537.stderr
issue-37767.rs
issue-37767.stderr
issue-39018.rs
issue-39018.stderr
issue-39698.rs
issue-39698.stderr
issue-40157.rs
issue-40157.stderr
issue-42234-unknown-receiver-type.full.stderr
issue-42234-unknown-receiver-type.generic_arg.stderr
issue-42234-unknown-receiver-type.rs
issue-43927-non-ADT-derive.rs
issue-43927-non-ADT-derive.stderr
issue-71363.rs
issue-71363.stderr
issue-81800.rs
issue-81800.stderr
issue-107353.rs
lint-unused-unsafe-thir.rs
lint-unused-unsafe-thir.stderr
lint-unused-unsafe.mir.stderr
lint-unused-unsafe.rs
macro-span-replacement.rs
macro-span-replacement.stderr
macro-ty-params.rs
macro-ty-params.stderr
method-and-field-eager-resolution.rs
method-and-field-eager-resolution.stderr
missing-unit-argument.rs
missing-unit-argument.stderr
move-closure.rs
move-closure.stderr
multiline-span-E0072.rs
multiline-span-E0072.stderr
multiline-span-simple.rs
multiline-span-simple.stderr
multispan-import-lint.rs
multispan-import-lint.stderr
mut-arg-hint.rs
mut-arg-hint.stderr
mut-ptr-cant-outlive-ref.rs
mut-ptr-cant-outlive-ref.stderr
non-existing-module-import.rs
non-existing-module-import.stderr
pub-struct-field.rs
pub-struct-field.stderr
range-2.rs
range-2.stderr
recursive-type-field.rs
recursive-type-field.stderr
regionck-unboxed-closure-lifetimes.rs
regionck-unboxed-closure-lifetimes.stderr
regions-close-over-borrowed-ref-in-obj.rs
regions-close-over-borrowed-ref-in-obj.stderr
regions-close-over-type-parameter-2.rs
regions-close-over-type-parameter-2.stderr
regions-escape-loop-via-variable.rs
regions-escape-loop-via-variable.stderr
regions-escape-loop-via-vec.rs
regions-escape-loop-via-vec.stderr
regions-infer-borrow-scope-within-loop.rs
regions-infer-borrow-scope-within-loop.stderr
send-is-not-static-ensures-scoping.rs
send-is-not-static-ensures-scoping.stderr
send-is-not-static-std-sync-2.rs
send-is-not-static-std-sync-2.stderr
send-is-not-static-std-sync.rs
send-is-not-static-std-sync.stderr
slice-borrow.rs
slice-borrow.stderr
suggestion-non-ascii.rs
suggestion-non-ascii.stderr
transitive-dep-span.rs
transitive-dep-span.stderr
type-annotations-needed-expr.rs
type-annotations-needed-expr.stderr
type-binding.rs
type-binding.stderr
typo-suggestion.rs
typo-suggestion.stderr
unused-warning-point-at-identifier.rs
unused-warning-point-at-identifier.stderr
vec_refs_data_with_early_death.rs
vec_refs_data_with_early_death.stderr
vec-must-not-hide-type-from-dropck.rs
vec-must-not-hide-type-from-dropck.stderr
visibility-ty-params.rs
visibility-ty-params.stderr
wf-method-late-bound-regions.rs
wf-method-late-bound-regions.stderr