rust/tests/ui/coherence
bors 9629b90b3f Auto merge of #127722 - BoxyUwU:new_adt_const_params_limitations, r=compiler-errors
Forbid borrows and unsized types from being used as the type of a const generic under `adt_const_params`

Fixes #112219
Fixes #112124
Fixes #112125

### Motivation

Currently the `adt_const_params` feature allows writing `Foo<const N: [u8]>` this is entirely useless as it is not possible to write an expression which evaluates to a type that is not `Sized`. In order to actually use unsized types in const generics they are typically written as `const N: &[u8]` which *is* possible to provide a value of.

Unfortunately allowing the types of const parameters to contain references is non trivial (#120961) as it introduces a number of difficult questions about how equality of references in the type system should behave. References in the types of const generics is largely only useful for using unsized types in const generics.

This PR introduces a new feature gate `unsized_const_parameters` and moves support for `const N: [u8]` and `const N: &...` from `adt_const_params` into it. The goal here hopefully is to experiment with allowing `const N: [u8]` to work without references and then eventually completely forbid references in const generics.

Splitting this out into a new feature gate means that stabilization of `adt_const_params` does not have to resolve #120961 which is the only remaining "big" blocker for the feature. Remaining issues after this are a few ICEs and naming bikeshed for `ConstParamTy`.

### Implementation

The implementation is slightly subtle here as we would like to ensure that a stabilization of `adt_const_params` is forwards compatible with any outcome of `unsized_const_parameters`. This is inherently tricky as we do not support unstable trait implementations and we determine whether a type is valid as the type of a const parameter via a trait bound.

There are a few constraints here:
- We would like to *allow for the possibility* of adding a `Sized` supertrait to `ConstParamTy` in the event that we wind up opting to not support unsized types and instead requiring people to write the 'sized version', e.g. `const N: [u8; M]` instead of `const N: [u8]`.
- Crates should be able to enable `unsized_const_parameters` and write trait implementations of `ConstParamTy` for `!Sized` types without downstream crates that only enable `adt_const_params` being able to observe this (required for std to be able to `impl<T> ConstParamTy for [T]`

Ultimately the way this is accomplished is via having two traits (sad), `ConstParamTy` and `UnsizedConstParamTy`. Depending on whether `unsized_const_parameters` is enabled or not we change which trait is used to check whether a type is allowed to be a const parameter.

Long term (when stabilizing `UnsizedConstParamTy`) it should be possible to completely merge these traits (and derive macros), only having a single `trait ConstParamTy` and `macro ConstParamTy`.

Under `adt_const_params` it is now illegal to directly refer to `ConstParamTy` it is only used as an internal impl detail by `derive(ConstParamTy)` and checking const parameters are well formed. This is necessary in order to ensure forwards compatibility with all possible future directions for `feature(unsized_const_parameters)`.

Generally the intuition here should be that `ConstParamTy` is the stable trait that everything uses, and `UnsizedConstParamTy` is that plus unstable implementations (well, I suppose `ConstParamTy` isn't stable yet :P).
2024-07-21 05:36:21 +00:00
..
auxiliary Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
negative-coherence Auto merge of #127722 - BoxyUwU:new_adt_const_params_limitations, r=compiler-errors 2024-07-21 05:36:21 +00:00
occurs-check rustc_type_ir: Omit some struct fields from Debug output 2024-06-19 03:08:34 +02:00
associated-type2.rs Fix typos (taking into account review comments) 2024-05-18 18:12:18 +02:00
associated-type2.stderr Stop bailing out from compilation just because there were incoherent traits 2024-02-05 10:17:31 +00:00
coherence-all-remote.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-all-remote.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-bigint-int.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-bigint-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-bigint-param.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-bigint-vecint.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-blanket-conflicts-with-blanket-implemented.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-blanket-conflicts-with-blanket-implemented.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-blanket-conflicts-with-blanket-unimplemented.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-blanket-conflicts-with-blanket-unimplemented.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-blanket-conflicts-with-specific-cross-crate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-blanket-conflicts-with-specific-cross-crate.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-blanket-conflicts-with-specific-multidispatch.rs Silence some follow-up errors on trait impls in case the trait has conflicting or otherwise incoherent impls 2024-04-09 10:23:58 +00:00
coherence-blanket-conflicts-with-specific-multidispatch.stderr Silence some follow-up errors on trait impls in case the trait has conflicting or otherwise incoherent impls 2024-04-09 10:23:58 +00:00
coherence-blanket-conflicts-with-specific-trait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-blanket-conflicts-with-specific-trait.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-blanket-conflicts-with-specific.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-blanket-conflicts-with-specific.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-blanket.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-conflicting-negative-trait-impl.rs Remove suspicious auto trait lint 2024-02-19 17:41:48 -03:00
coherence-conflicting-negative-trait-impl.stderr Remove suspicious auto trait lint 2024-02-19 17:41:48 -03:00
coherence-covered-type-parameter.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-cow.re_a.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-cow.re_b.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-cow.re_c.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-cow.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-cross-crate-conflict.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-cross-crate-conflict.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-default-trait-impl.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-default-trait-impl.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-doesnt-use-infcx-evaluate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-doesnt-use-infcx-evaluate.stderr Don't call predicate_must_hold during fulfillment in intercrate 2023-07-16 01:56:16 +00:00
coherence-error-suppression.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-error-suppression.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-fn-covariant-bound-vs-static.rs Make infer higher ranked equate use bidirectional subtyping in invariant context 2024-02-29 15:27:56 -03:00
coherence-fn-covariant-bound-vs-static.stderr Make infer higher ranked equate use bidirectional subtyping in invariant context 2024-02-29 15:27:56 -03:00
coherence-fn-implied-bounds.rs Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-fn-implied-bounds.stderr Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-fn-inputs.rs Make infer higher ranked equate use bidirectional subtyping in invariant context 2024-02-29 15:27:56 -03:00
coherence-fn-inputs.stderr Make infer higher ranked equate use bidirectional subtyping in invariant context 2024-02-29 15:27:56 -03:00
coherence-free-vs-bound-region.rs Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-free-vs-bound-region.stderr Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-fundamental-trait-objects.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-fundamental-trait-objects.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-impl-in-fn.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-impl-trait-for-marker-trait-negative.rs Disallow impl autotrait for trait object 2023-02-03 08:33:40 -08:00
coherence-impl-trait-for-marker-trait-negative.stderr Disallow impl autotrait for trait object 2023-02-03 08:33:40 -08:00
coherence-impl-trait-for-marker-trait-positive.rs Disallow impl autotrait for trait object 2023-02-03 08:33:40 -08:00
coherence-impl-trait-for-marker-trait-positive.stderr Disallow impl autotrait for trait object 2023-02-03 08:33:40 -08:00
coherence-impl-trait-for-trait-object-safe.rs Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
coherence-impl-trait-for-trait-object-safe.stderr Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
coherence-impl-trait-for-trait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-impl-trait-for-trait.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-impls-copy.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-impls-copy.stderr Only compute specializes query if specialization is enabled in the crate of the specialized impl 2024-06-07 15:58:50 -04:00
coherence-impls-send.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-impls-send.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-impls-sized.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-impls-sized.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-inherited-assoc-ty-cycle-err.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-inherited-assoc-ty-cycle-err.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-inherited-subtyping.rs remove unused revision 2023-05-30 12:40:35 +02:00
coherence-inherited-subtyping.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-iterator-vec-any-elem.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-iterator-vec.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-lone-type-parameter.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-lone-type-parameter.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-multidispatch-tuple.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-negative-impls-copy-bad.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-negative-impls-copy-bad.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-negative-impls-copy.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-negative-impls-safe-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-negative-impls-safe.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-negative-impls-safe.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-negative-inherent-where-bounds.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-negative-inherent.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-negative-outlives-lifetimes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-negative-outlives-lifetimes.stock.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-negative-outlives-lifetimes.with_negative_coherence.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-no-direct-lifetime-dispatch.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-no-direct-lifetime-dispatch.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-orphan.rs Silence some follow-up errors on trait impls in case the trait has conflicting or otherwise incoherent impls 2024-04-09 10:23:58 +00:00
coherence-orphan.stderr Silence some follow-up errors on trait impls in case the trait has conflicting or otherwise incoherent impls 2024-04-09 10:23:58 +00:00
coherence-overlap-all-t-and-tuple.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-overlap-all-t-and-tuple.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-double-negative.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-downstream-inherent.next.stderr update tests 2023-09-21 08:17:58 +02:00
coherence-overlap-downstream-inherent.old.stderr update tests 2023-09-21 08:17:58 +02:00
coherence-overlap-downstream-inherent.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-downstream.next.stderr Extend impl's def_span to include where clauses 2023-10-09 11:47:02 +00:00
coherence-overlap-downstream.old.stderr Extend impl's def_span to include where clauses 2023-10-09 11:47:02 +00:00
coherence-overlap-downstream.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-issue-23516-inherent.next.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-issue-23516-inherent.old.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-issue-23516-inherent.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-issue-23516.next.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-issue-23516.old.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-issue-23516.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-messages.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-overlap-messages.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-overlap-negate-alias-strict.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-negate-not-use-feature-gate.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-overlap-negate-not-use-feature-gate.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-negate-strict.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-negate-use-feature-gate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-negative-impls.rs Remove suspicious auto trait lint 2024-02-19 17:41:48 -03:00
coherence-overlap-negative-trait.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-negative-trait2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-super-negative.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-trait-alias.rs Make things work by using the new solver 2023-10-23 23:35:27 +00:00
coherence-overlap-trait-alias.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-unnormalizable-projection-0.classic.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
coherence-overlap-unnormalizable-projection-0.next.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
coherence-overlap-unnormalizable-projection-0.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
coherence-overlap-unnormalizable-projection-1.classic.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
coherence-overlap-unnormalizable-projection-1.next.stderr eagerly normalize when adding goals 2024-05-28 04:54:05 +00:00
coherence-overlap-unnormalizable-projection-1.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
coherence-overlap-upstream-inherent.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-upstream-inherent.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-upstream.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlap-upstream.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-overlap-with-regions.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlapping-pairs.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-overlapping-pairs.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-pair-covered-uncovered-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-pair-covered-uncovered-1.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-pair-covered-uncovered.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-pair-covered-uncovered.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-projection-conflict-orphan.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-projection-conflict-orphan.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-projection-conflict-ty-param.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-projection-conflict-ty-param.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-projection-conflict.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-projection-conflict.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-projection-ok-orphan.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-projection-ok.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-rfc447-constrained.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-subtyping.rs Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-subtyping.stderr Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-tuple-conflict.rs Continue compilation after check_mod_type_wf errors 2024-02-14 11:00:30 +00:00
coherence-tuple-conflict.stderr Continue compilation after check_mod_type_wf errors 2024-02-14 11:00:30 +00:00
coherence-unsafe-trait-object-impl.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-unsafe-trait-object-impl.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-vec-local-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-vec-local-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-vec-local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-vec-local.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-wasm-bindgen.rs Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-wasm-bindgen.stderr Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
coherence-where-clause.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence-with-closure.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence-with-closure.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence-with-coroutine.rs Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
coherence-with-coroutine.stock.stderr Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
coherence_copy_like.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_copy_like_err_fundamental_struct.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_copy_like_err_fundamental_struct_ref.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_copy_like_err_fundamental_struct_tuple.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_copy_like_err_fundamental_struct_tuple.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence_copy_like_err_struct.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_copy_like_err_struct.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence_copy_like_err_tuple.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_copy_like_err_tuple.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence_inherent.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence_inherent.stderr Tweak wording of "implemented trait isn't imported" suggestion 2024-02-22 18:05:27 +00:00
coherence_inherent_cc.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_inherent_cc.stderr Tweak wording of "implemented trait isn't imported" suggestion 2024-02-22 18:05:27 +00:00
coherence_local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_local_err_struct.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_local_err_struct.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence_local_err_tuple.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherence_local_err_tuple.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
coherence_local_ref.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coherent-due-to-fulfill.rs Use fulfillment in next trait solver coherence 2024-02-16 23:53:09 +00:00
conflicting-impl-with-err.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
conflicting-impl-with-err.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
const-errs-dont-conflict-103369.rs regression test for #103369 2024-02-19 18:16:11 +01:00
const-errs-dont-conflict-103369.stderr regression test for #103369 2024-02-19 18:16:11 +01:00
const-generics-orphan-check-ok.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
deep-bad-copy-reason.rs Stop bailing out from compilation just because there were incoherent traits 2024-02-05 10:17:31 +00:00
deep-bad-copy-reason.stderr Stop bailing out from compilation just because there were incoherent traits 2024-02-05 10:17:31 +00:00
illegal-copy-bad-projection.rs Suppress copy impl error when post-normalized type references errors 2023-03-08 00:12:33 +00:00
illegal-copy-bad-projection.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl-foreign-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign-for-foreign.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl-foreign-for-foreign[foreign].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign-for-foreign[foreign].stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl-foreign-for-foreign[local].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign-for-fundamental[foreign].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign-for-fundamental[foreign].stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl-foreign-for-fundamental[local].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign-for-local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign-for-locally-defined-fundamental.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign-for-locally-defined-fundamental[foreign].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign[foreign]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign[foreign]-for-foreign.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl-foreign[foreign]-for-local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign[fundemental[foreign]]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-foreign[fundemental[foreign]]-for-foreign.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl-foreign[fundemental[local]]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign-for-foreign[t].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign-for-foreign[t].stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign-for-fundamental[t].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign-for-fundamental[t].stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl[t]-foreign[foreign[t]_local]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[foreign]-for-fundamental[t].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[foreign]-for-fundamental[t].stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign[foreign]-for-t.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[foreign]-for-t.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl[t]-foreign[fundamental[t]]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[fundamental[t]]-for-foreign.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign[fundamental[t]]-for-fundamental[t].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[fundamental[t]]-for-fundamental[t].stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign[fundamental[t]]-for-local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[fundamental[t]]-for-t.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[fundamental[t]]-for-t.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign[fundamental[t]_local]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[fundamental[t]_local]-for-foreign.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign[fundemental[local]]-for-foreign[t].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[local]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[local]-for-foreign[t].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[local]-for-fundamental[foreign[t]].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[local]-for-fundamental[t].rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[local]-for-fundamental[t].stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign[local]-for-local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[local]-for-t.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[local]-for-t.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl[t]-foreign[local_fundamental[t]]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[t]-for-foreign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[t]-for-foreign.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl[t]-foreign[t]-for-fundamental.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[t]-for-fundamental.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl[t]-foreign[t]-for-local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[t]-for-t.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl[t]-foreign[t]-for-t.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
incoherent-even-though-we-fulfill.rs Use fulfillment in next trait solver coherence 2024-02-16 23:53:09 +00:00
incoherent-even-though-we-fulfill.stderr Use fulfillment in next trait solver coherence 2024-02-16 23:53:09 +00:00
indirect-impl-for-trait-obj-coherence.next.stderr better error message for normalizes-to ambiguities 2024-06-12 19:03:37 -04:00
indirect-impl-for-trait-obj-coherence.rs better error message for normalizes-to ambiguities 2024-06-12 19:03:37 -04:00
inter-crate-ambiguity-causes-notes.next.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
inter-crate-ambiguity-causes-notes.old.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
inter-crate-ambiguity-causes-notes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-85026.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-85026.stderr Tighter spans for bad inherent impl types 2023-02-13 18:41:18 +00:00
issue-99663-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-99663.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
negative-coherence-check-placeholder-outlives.rs Make regionck care about placeholders in outlives components 2023-11-19 19:12:20 +00:00
negative-coherence-check-placeholder-outlives.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
negative-coherence-considering-regions.any_lt.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
negative-coherence-considering-regions.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
negative-coherence-placeholder-region-constraints-on-unification.explicit.stderr Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
negative-coherence-placeholder-region-constraints-on-unification.rs Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
normalize-for-errors.current.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
normalize-for-errors.next.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
normalize-for-errors.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
orphan-check-diagnostics.rs Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
orphan-check-diagnostics.stderr Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
orphan-check-opaque-types-not-covering.classic.stderr Orphanck: Consider opaque types to never cover type parameters 2024-06-04 18:57:19 +02:00
orphan-check-opaque-types-not-covering.next.stderr Orphanck: Consider opaque types to never cover type parameters 2024-06-04 18:57:19 +02:00
orphan-check-opaque-types-not-covering.rs Orphanck: Consider opaque types to never cover type parameters 2024-06-04 18:57:19 +02:00
orphan-check-projections-covering.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-nested.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering-ambiguity.classic.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering-ambiguity.next.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering-ambiguity.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering-multiple-params.classic.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering-multiple-params.next.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering-multiple-params.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering.classic.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering.next.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-not-covering.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-unsat-bounds.classic.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-unsat-bounds.next.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-projections-unsat-bounds.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-weak-aliases-covering.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-weak-aliases-not-covering.classic.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-weak-aliases-not-covering.next.stderr Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
orphan-check-weak-aliases-not-covering.rs Normalize trait ref before orphan check & consider ty params in alias types to be uncovered 2024-04-30 21:54:54 +02:00
re-rebalance-coherence-default-generic-associated-type.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
re-rebalance-coherence.rs Detect pub structs never constructed and unused associated constants in traits 2024-06-05 23:20:09 +08:00
skip-reporting-if-references-err.current.stderr Move check for error in impl header outside of reporting 2024-03-22 17:46:40 -04:00
skip-reporting-if-references-err.next.stderr Move check for error in impl header outside of reporting 2024-03-22 17:46:40 -04:00
skip-reporting-if-references-err.rs Move check for error in impl header outside of reporting 2024-03-22 17:46:40 -04:00
strict-coherence-needs-negative-coherence.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
strict-coherence-needs-negative-coherence.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
warn-when-cycle-is-error-in-coherence.rs Make inductive cycles in coherence ambiguous always 2024-01-08 15:03:59 +00:00
warn-when-cycle-is-error-in-coherence.stderr Make inductive cycles in coherence ambiguous always 2024-01-08 15:03:59 +00:00