rust/tests/ui/const-generics
Stuart Cook 65114d6f81
Rollup merge of #144133 - oli-obk:stabilize-const-type-id, r=lcnr
Stabilize const TypeId::of

fixes rust-lang/rust#77125

# Stabilization report for `const_type_id`

## General design

### What is the RFC for this feature and what changes have occurred to the user-facing design since the RFC was finalized?

N/A the constness was never RFCed

### What behavior are we committing to that has been controversial? Summarize the major arguments pro/con.

`const_type_id` was kept unstable because we are currently unable to stabilize the `PartialEq` impl for it (in const contexts), so we feared people would transmute the type id to an integer and compare that integer.

### Are there extensions to this feature that remain unstable? How do we know that we are not accidentally committing to those?

`TypeId::eq` is not const at this time, and will only become const once const traits are stable.

## Has a Call for Testing period been conducted? If so, what feedback was received?

This feature has been unstable for a long time, and most people just worked around it on stable by storing a pointer to `TypeId::of` and calling that at "runtime" (usually LLVM devirtualized the function pointer and inlined the call so there was no real performance difference).

A lot of people seem to be using the `const_type_id` feature gate (600 results for the feature gate on github: https://github.com/search?q=%22%23%21%5Bfeature%28const_type_id%29%5D%22&type=code)

We have had very little feedback except desire for stabilization being expressed.

## Implementation quality

Until these three PRs

* https://github.com/rust-lang/rust/pull/142789
* https://github.com/rust-lang/rust/pull/143696
* https://github.com/rust-lang/rust/pull/143736

there was no difference between the const eval feature and the runtime feature except that we prevented you from using `TypeId::of` at compile-time. These three recent PRs have hardened the internals of `TypeId`:

* it now contains an array of pointers instead of integers
* these pointers at compile-time (and in miri) contain provenance that makes them unique and prevents inspection. Both miri and CTFE will in fact error if you mess with the bits or the provenance of the pointers in any way and then try to use the `TypeId` for an equality check. This also guards against creating values of type `TypeId` by any means other than `TypeId::of`

### Summarize the major parts of the implementation and provide links into the code (or to PRs)

N/A see above

### Summarize existing test coverage of this feature

Since we are not stabilizing any operations on `TypeId` except for creating `TypeId`s, the test coverage of the runtime implementation of `TypeId` covers all the interesting use cases not in the list below

#### Hardening against transmutes

* https://github.com/rust-lang/rust/blob/master/tests/ui/consts/const_transmute_type_id.rs
* https://github.com/rust-lang/rust/blob/master/tests/ui/consts/const_transmute_type_id2.rs
* https://github.com/rust-lang/rust/blob/master/tests/ui/consts/const_transmute_type_id3.rs
* https://github.com/rust-lang/rust/blob/master/tests/ui/consts/const_transmute_type_id4.rs
* https://github.com/rust-lang/rust/blob/master/tests/ui/consts/const_transmute_type_id5.rs

#### TypeId::eq is still unstable

* https://github.com/rust-lang/rust/blob/master/tests/ui/consts/const_cmp_type_id.rs

### What outstanding bugs in the issue tracker involve this feature? Are they stabilization-blocking?

https://github.com/rust-lang/rust/issues/129014 is still unresolved, but it affects more the runtime version of `TypeId` than the compile-time.

### What FIXMEs are still in the code for that feature and why is it ok to leave them there?

none

### Summarize contributors to the feature by name for recognition and assuredness that people involved in the feature agree with stabilization

* `@eddyb`
* `@RalfJung`

### Which tools need to be adjusted to support this feature. Has this work been done?

N/A

## Type system and execution rules

### What compilation-time checks are done that are needed to prevent undefined behavior?

Already covered above. Transmuting types with private fields to expose those fields has always been library UB, but for the specific case of `TypeId` CTFE and Miri will detect it if that is done in any way other than for reconstructing the exact same `TypeId` in another location.

### Does the feature's implementation need checks to prevent UB or is it sound by default and needs opt in in places to perform the dangerous/unsafe operations? If it is not sound by default, what is the rationale?

N/A

### Can users use this feature to introduce undefined behavior, or use this feature to break the abstraction of Rust and expose the underlying assembly-level implementation? (Describe.)

N/A

### What updates are needed to the reference/specification? (link to PRs when they exist)

Nothing more than what needs to exist for `TypeId` already.

## Common interactions

### Does this feature introduce new expressions and can they produce temporaries? What are the lifetimes of those temporaries?

N/A

### What other unstable features may be exposed by this feature?

N/A
2025-08-07 20:49:42 +10:00
..
adt_const_params compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
array-impls [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated_const_equality stabilize gai 2025-06-11 15:30:15 +01:00
auxiliary Introduce min_generic_const_args and directly represent paths 2024-11-19 05:07:43 +00:00
backcompat [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
defaults Fortify generic param default checks 2025-08-06 01:26:26 +02:00
early Rollup merge of #142157 - Enselic:trivial-anon-const-use-cases, r=compiler-errors 2025-06-12 03:14:51 +02:00
generic_arg_infer Report infer ty errors during hir ty lowering 2025-06-27 07:51:38 +00:00
generic_const_exprs Auto merge of #115746 - tgross35:unnamed-threads-panic-message, r=cuviper 2025-08-07 02:32:55 +00:00
generic_const_parameter_types stabilize gai 2025-06-11 15:30:15 +01:00
infer Point to correct argument in Func Call when Self type fails trait bound 2025-07-07 16:47:15 +08:00
issues Stabilize const TypeId::of 2025-07-21 09:11:21 +00:00
late-bound-vars make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
mgca Port #[type_const] to the new attribute system 2025-07-09 01:06:29 +03:00
min_const_generics Fortify generic param default checks 2025-08-06 01:26:26 +02:00
occurs-check Add trait diff highlighting logic and use it in E0277 2024-11-02 03:08:04 +00:00
parser-error-recovery Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
std std::range 2025-01-30 20:37:56 -07:00
type-dependent Reword mismatched-lifetime-syntaxes text based on feedback 2025-07-14 09:52:58 -04:00
unsized_const_params handle unsized consts with type str in v0 symbol mangling 2024-09-20 09:41:16 +08:00
apit-with-const-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
arg-in-pat-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
arg-in-pat-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
arg-in-pat-3.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
argument_order.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
argument_order.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
array-wrapper-struct-ctor.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
assoc_const_as_type_argument.rs Automatically taint when reporting errors from ItemCtxt 2024-07-09 07:44:17 +00:00
assoc_const_as_type_argument.stderr Automatically taint when reporting errors from ItemCtxt 2024-07-09 07:44:17 +00:00
assoc_const_eq_diagnostic.rs Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
assoc_const_eq_diagnostic.stderr Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
associated-type-bound-fail.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
associated-type-bound-fail.stderr Add trait diff highlighting logic and use it in E0277 2024-11-02 03:08:04 +00:00
associated-type-bound.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bad-const-generic-exprs.rs recover more unbraced const args 2023-01-27 19:26:04 +01:00
bad-const-generic-exprs.stderr Detect more cases of = to : typo 2024-03-01 02:03:00 +00:00
bad-generic-in-copy-impl.rs Remove track_errors entirely 2024-01-23 15:23:22 +00:00
bad-generic-in-copy-impl.stderr Remove track_errors entirely 2024-01-23 15:23:22 +00:00
bad-subst-const-kind.rs Re-enable ConstArgKind::Path lowering by default 2024-09-12 13:56:01 -04:00
bad-subst-const-kind.stderr Properly check that array length is valid type during built-in unsizing in index 2025-01-28 17:52:28 +00:00
broken-mir-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
broken-mir-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cannot-infer-type-for-const-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
coerce_unsized_array.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
concrete-const-as-fn-arg.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
concrete-const-impl-method.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
condition-in-trait-const-arg.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-arg-in-const-arg.min.stderr rustc_resolve: Improve resolve_const_param_in_non_trivial_anon_const wording 2025-06-07 13:01:16 +02:00
const-arg-in-const-arg.rs Bless tests due to extra error reporting due to normalizing types that are not WF 2024-11-27 03:34:58 +00:00
const-arg-in-fn.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-arg-type-arg-misordered.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
const-arg-type-arg-misordered.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
const-argument-cross-crate-mismatch.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-argument-cross-crate-mismatch.stderr Simplify array length mismatch error reporting 2024-11-24 03:32:11 +00:00
const-argument-cross-crate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-argument-if-length.full.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
const-argument-if-length.min.stderr Continue compilation after check_mod_type_wf errors 2024-02-14 11:00:30 +00:00
const-argument-if-length.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-argument-non-static-lifetime.min.stderr generic_const_exprs: suggest to add the feature, not use it 2023-11-30 20:59:51 +01:00
const-argument-non-static-lifetime.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-fn-with-const-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-generic-default-wont-borrowck.fixed Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
const-generic-default-wont-borrowck.rs Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
const-generic-default-wont-borrowck.stderr Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
const-generic-function.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
const-generic-function.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
const-generic-type_name.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-param-after-const-literal-arg.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-param-before-other-params.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
const-param-before-other-params.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
const-param-elided-lifetime.full.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
const-param-elided-lifetime.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
const-param-elided-lifetime.rs fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
const-param-has-ty-goal-in-error-implies.rs Pass correct param-env to error_implies 2025-04-03 18:55:53 +00:00
const-param-has-ty-goal-in-error-implies.stderr Pass correct param-env to error_implies 2025-04-03 18:55:53 +00:00
const-param-in-async.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-param-type-depends-on-const-param.full.stderr Introduce feature(generic_const_parameter_types) 2025-02-28 20:43:15 +00:00
const-param-type-depends-on-const-param.min.stderr Introduce feature(generic_const_parameter_types) 2025-02-28 20:43:15 +00:00
const-param-type-depends-on-const-param.rs Disentangle ForwardGenericParamBan and ConstParamTy ribs 2025-03-12 16:56:26 +00:00
const-param-type-depends-on-parent-param.rs Disentangle ForwardGenericParamBan and ConstParamTy ribs 2025-03-12 16:56:26 +00:00
const-param-type-depends-on-parent-param.stderr Disentangle ForwardGenericParamBan and ConstParamTy ribs 2025-03-12 16:56:26 +00:00
const-param-type-depends-on-type-param-ungated.rs Remove save-analysis. 2023-02-16 15:14:45 +11:00
const-param-type-depends-on-type-param-ungated.stderr Introduce feature(generic_const_parameter_types) 2025-02-28 20:43:15 +00:00
const-param-type-depends-on-type-param.full.stderr Introduce feature(generic_const_parameter_types) 2025-02-28 20:43:15 +00:00
const-param-type-depends-on-type-param.min.stderr Introduce feature(generic_const_parameter_types) 2025-02-28 20:43:15 +00:00
const-param-type-depends-on-type-param.rs Bless tests and handle tests/crashes 2024-06-05 22:25:42 +01:00
const-param-with-additional-obligations.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
const-param-with-additional-obligations.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
const-parameter-uppercase-lint.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
const-parameter-uppercase-lint.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
const-ty-is-normalized.rs Fix order of normalization and recursion in const folding. 2024-08-18 00:07:41 +02:00
const_eval_unchecked_doesnt_fire_patterns.rs Don't FCW assoc consts in patterns 2025-04-29 18:41:42 +01:00
const_trait_fn-issue-88433.rs Change const trait bound syntax from ~const to [const] 2025-06-26 13:46:45 +00:00
core-types.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cross_crate_complex.rs Check assoc consts and tys later like assoc fns 2025-07-10 23:39:54 +08:00
default-ty-closure.rs add test for #116796 2023-12-24 01:58:13 +08:00
default-ty-closure.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
deref-into-array-generic.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
different_generic_args.full.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
different_generic_args.min.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
different_generic_args.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
different_generic_args_array.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_generic_args_array.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
dont-evaluate-array-len-on-err-1.rs compiletest: Stricter parsing for diagnostic kinds 2025-04-07 19:13:31 +03:00
dont-evaluate-array-len-on-err-1.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
dyn-supertraits.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
dyn-supertraits.stderr Update tests 2024-02-07 10:42:01 +08:00
ensure_is_evaluatable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
ensure_is_evaluatable.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
enum-variants.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
exhaustive-value.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
exhaustive-value.stderr Spell out other trait diagnostic 2024-06-12 12:34:47 +00:00
expose-default-substs-param-env.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
failing_goal_with_repeat_expr_anon_const.rs Handle infer vars in anon consts on stable 2024-11-12 21:36:42 +00:00
failing_goal_with_repeat_expr_anon_const.stderr Handle infer vars in anon consts on stable 2024-11-12 21:36:42 +00:00
float-generic.adt_const_params.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
float-generic.full.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
float-generic.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
float-generic.simple.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
fn-const-param-call.adt_const_params.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
fn-const-param-call.full.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
fn-const-param-call.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
fn-const-param-call.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
fn-const-param-infer.adt_const_params.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
fn-const-param-infer.full.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
fn-const-param-infer.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
fn-const-param-infer.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
fn_with_two_const_inputs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fn_with_two_const_inputs.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
fn_with_two_same_const_inputs.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
forbid-non-structural_match-types.rs Implement custom diagnostic for ConstParamTy 2023-06-01 18:21:42 +00:00
forbid-non-structural_match-types.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
foreign-item-const-parameter.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
foreign-item-const-parameter.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic-param-mismatch.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic-param-mismatch.stderr Simplify array length mismatch error reporting 2024-11-24 03:32:11 +00:00
generic-parameter-in-const-expression-39211.rs Rehome tests/ui/issues/ tests [1/?] 2025-07-24 17:01:44 -04:00
generic-parameter-in-const-expression-39211.stderr Rehome tests/ui/issues/ tests [1/?] 2025-07-24 17:01:44 -04:00
ice-68875.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
ice-68875.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
ice-118285-fn-ptr-value.rs fix an ICE when a valtree failed to evaluate 2023-12-02 10:38:42 +01:00
ice-118285-fn-ptr-value.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
ice-const-generic-function-return-ty.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
ice-const-generic-function-return-ty.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
ice-unexpected-inference-var-122549.rs Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
ice-unexpected-inference-var-122549.stderr Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
impl-const-generic-struct.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
incorrect-number-of-const-args.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
incorrect-number-of-const-args.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
infer_arg_from_pat.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
infer_arr_len_from_pat.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
inhabited-assoc-ty-ice-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
inhabited-assoc-ty-ice-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
integer-literal-generic-arg-in-where-clause.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
intrinsics-type_name-as-const-argument.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
intrinsics-type_name-as-const-argument.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
invalid-const-arg-for-type-param.rs diagnostics: remove inconsistent English article "this" from E0107 2023-02-23 10:27:06 -07:00
invalid-const-arg-for-type-param.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
invalid-constant-in-args.rs diagnostics: remove inconsistent English article "this" from E0107 2023-02-23 10:27:06 -07:00
invalid-constant-in-args.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
invalid-enum.rs Implement custom diagnostic for ConstParamTy 2023-06-01 18:21:42 +00:00
invalid-enum.stderr Do not gather local all together at the beginning of typeck 2025-05-05 14:27:09 +00:00
invariant.rs Add missing quotation marks 2024-09-07 09:23:28 +08:00
invariant.stderr Change leak check lint message to behavior is likely to change in the future 2024-02-18 19:16:17 -03:00
issue-46511.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-46511.stderr Improve the diagnostics for unused generic parameters 2024-02-01 16:18:03 +01:00
issue-66451.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
issue-66451.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
issue-70408.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
issue-80471.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
issue-80471.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
issue-93647.rs update tests, adding known-bug 2023-07-27 15:51:02 +00:00
issue-93647.stderr Deny calls to non-#[const_trait] methods in MIR constck 2024-10-26 11:35:56 +08:00
issue-97007.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-102124.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-105689.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-106419-struct-with-multiple-const-params.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
kind_mismatch.rs Stop being so bail-y in candidate assembly 2024-11-21 01:35:34 +00:00
kind_mismatch.stderr Verbose suggestion to make param const 2025-06-04 21:23:11 +00:00
legacy-const-generics-bad.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
legacy-const-generics-bad.stderr rustc_resolve: Improve resolve_const_param_in_non_trivial_anon_const wording 2025-06-07 13:01:16 +02:00
legacy-const-generics.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
lifetime-in-const-param.rs fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
lifetime-in-const-param.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
lookup-method.rs only find segs chain for missing methods when no available candidates 2024-05-14 20:28:55 +08:00
lookup-method.stderr only find segs chain for missing methods when no available candidates 2024-05-14 20:28:55 +08:00
mistyped_const_in_pat.rs Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
mistyped_const_in_pat.stderr Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
nested-type.full.stderr Note def descr in NonConstFunctionCall 2024-12-23 22:15:32 +00:00
nested-type.min.stderr Note def descr in NonConstFunctionCall 2024-12-23 22:15:32 +00:00
nested-type.rs Note def descr in NonConstFunctionCall 2024-12-23 22:15:32 +00:00
normalizing_with_unconstrained_impl_params.rs Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
normalizing_with_unconstrained_impl_params.stderr Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
not_wf_param_in_rpitit.rs Dont create trait object if it has errors in it 2024-11-23 23:31:30 +00:00
not_wf_param_in_rpitit.stderr Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
opaque_types.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
opaque_types.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
opaque_types2.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
opaque_types2.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
outer-lifetime-in-const-generic-default.rs improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
outer-lifetime-in-const-generic-default.stderr generic_const_exprs: suggest to add the feature, not use it 2023-11-30 20:59:51 +01:00
overlapping_impls.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
params-in-ct-in-ty-param-lazy-norm.full.stderr Disentangle ForwardGenericParamBan and ConstParamTy ribs 2025-03-12 16:56:26 +00:00
params-in-ct-in-ty-param-lazy-norm.min.stderr Disentangle ForwardGenericParamBan and ConstParamTy ribs 2025-03-12 16:56:26 +00:00
params-in-ct-in-ty-param-lazy-norm.rs Disentangle ForwardGenericParamBan and ConstParamTy ribs 2025-03-12 16:56:26 +00:00
parent_generics_of_encoding.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
parent_generics_of_encoding_impl_trait.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
parent_generics_of_encoding_impl_trait.stderr Const generic parameters aren't bounds, even if we end up erroring because of the bound that binds the parameter's type 2024-06-19 14:58:29 +00:00
polymorphic-drop-shim.rs Don't inline drop shims with unsubstituted generic consts in MIR inliner 2024-06-28 10:18:20 -04:00
projection-as-arg-const.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
projection-as-arg-const.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
promotion.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
raw-ptr-const-param-deref.adt_const_params.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
raw-ptr-const-param-deref.full.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
raw-ptr-const-param-deref.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
raw-ptr-const-param-deref.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
raw-ptr-const-param.adt_const_params.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
raw-ptr-const-param.full.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
raw-ptr-const-param.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
raw-ptr-const-param.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
repeat_expr_hack_gives_right_generics.rs Add ConstArgKind::Path and make ConstArg its own HIR node 2024-07-16 19:27:28 -07:00
repeat_expr_hack_gives_right_generics.stderr rustc_resolve: Improve resolve_const_param_in_non_trivial_anon_const wording 2025-06-07 13:01:16 +02:00
slice-const-param-mismatch.adt_const_params.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
slice-const-param-mismatch.full.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
slice-const-param-mismatch.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
slice-const-param-mismatch.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
slice-const-param.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
sneaky-array-repeat-expr.rs check array type of repeat exprs is wf 2023-05-04 11:22:40 +01:00
sneaky-array-repeat-expr.stderr check array type of repeat exprs is wf 2023-05-04 11:22:40 +01:00
struct-with-invalid-const-param.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
struct-with-invalid-const-param.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
suggest_const_for_array.rs Automatically taint when reporting errors from ItemCtxt 2024-07-09 07:44:17 +00:00
suggest_const_for_array.stderr Automatically taint when reporting errors from ItemCtxt 2024-07-09 07:44:17 +00:00
trait-const-args.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
trait-resolution-error-with-const-generics-77919.rs Rehome tests/ui/issues/ tests [2/?] 2025-08-02 15:29:16 -04:00
trait-resolution-error-with-const-generics-77919.stderr Rehome tests/ui/issues/ tests [2/?] 2025-08-02 15:29:16 -04:00
transmute-const-param-static-reference.adt_const_params.stderr Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
transmute-const-param-static-reference.min.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
transmute-const-param-static-reference.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
transmute-fail.rs Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
transmute-fail.stderr Properly check that array length is valid type during built-in unsizing in index 2025-01-28 17:52:28 +00:00
transmute.rs Sorting arbitrary constants should not be done, as it relies on DefId ordering, which breaks incremental compilation. 2024-03-21 10:45:30 +00:00
transmute_no_gate.rs Add feature gate 2023-04-07 11:18:07 -07:00
transmute_no_gate.stderr Add feature gate 2023-04-07 11:18:07 -07:00
transparent-maybeunit-array-wrapper.rs Revert "Rollup merge of #125572 - mu001999-contrib:dead/enhance, r=pnkfelix" 2024-08-03 07:57:31 -04:00
try_unify_ignore_lifetimes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
two_matching_preds.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-after-const-ok.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-mismatch-in-nested-goal.current.stderr Make sure we can produce ConstArgHasWrongType errors for valtree consts 2025-01-14 18:46:04 +00:00
type-mismatch-in-nested-goal.next.stderr Make sure we can produce ConstArgHasWrongType errors for valtree consts 2025-01-14 18:46:04 +00:00
type-mismatch-in-nested-goal.rs Make sure we can produce ConstArgHasWrongType errors for valtree consts 2025-01-14 18:46:04 +00:00
type_mismatch.rs Re-enable ConstArgKind::Path lowering by default 2024-09-12 13:56:01 -04:00
type_mismatch.stderr Properly check that array length is valid type during built-in unsizing in index 2025-01-28 17:52:28 +00:00
type_not_in_scope.rs Bless tests and handle tests/crashes 2024-06-05 22:25:42 +01:00
type_not_in_scope.stderr Bless tests and handle tests/crashes 2024-06-05 22:25:42 +01:00
type_of_anon_const.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
types-mismatch-const-args.full.stderr Modify primary span label for E0308 2023-01-30 20:12:19 +00:00
types-mismatch-const-args.min.stderr Modify primary span label for E0308 2023-01-30 20:12:19 +00:00
types-mismatch-const-args.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unify_with_nested_expr.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unify_with_nested_expr.stderr Const generic parameters aren't bounds, even if we end up erroring because of the bound that binds the parameter's type 2024-06-19 14:58:29 +00:00
uninferred-consts-during-codegen-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
uninferred-consts-during-codegen-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unknown_adt.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unknown_adt.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unused-const-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unused-type-param-suggestion.rs tests: bless remaining tests 2025-06-16 23:04:35 +00:00
unused-type-param-suggestion.stderr tests: bless remaining tests 2025-06-16 23:04:35 +00:00
unused_braces.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unused_braces.full.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unused_braces.min.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unused_braces.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unused_braces.stderr Fix unused_braces on generic const expr macro call 2023-01-14 15:49:08 +00:00
using-static-as-const-arg.rs Introduce min_generic_const_args and directly represent paths 2024-11-19 05:07:43 +00:00
variant-discrimiant-no-generics.full.stderr improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
variant-discrimiant-no-generics.min.stderr improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
variant-discrimiant-no-generics.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
vec-macro-in-static-array.rs comments 2025-07-31 21:25:49 +05:00
vec-macro-in-static-array.stderr comments 2025-07-31 21:25:49 +05:00
where-clauses.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
wrong-normalization.rs Separate collection of crate-local inherent impls from error reporting 2024-09-24 10:12:05 -04:00
wrong-normalization.stderr Separate collection of crate-local inherent impls from error reporting 2024-09-24 10:12:05 -04:00
xcrate-const-ctor-b.rs Introduce min_generic_const_args and directly represent paths 2024-11-19 05:07:43 +00:00