rust/tests/ui/const-generics/generic_const_exprs
Noah Lev 37ed7a4438 Add ConstArgKind::Path and make ConstArg its own HIR node
This is a very large commit since a lot needs to be changed in order to
make the tests pass. The salient changes are:

- `ConstArgKind` gets a new `Path` variant, and all const params are now
  represented using it. Non-param paths still use `ConstArgKind::Anon`
  to prevent this change from getting too large, but they will soon use
  the `Path` variant too.

- `ConstArg` gets a distinct `hir_id` field and its own variant in
  `hir::Node`. This affected many parts of the compiler that expected
  the parent of an `AnonConst` to be the containing context (e.g., an
  array repeat expression). They have been changed to check the
  "grandparent" where necessary.

- Some `ast::AnonConst`s now have their `DefId`s created in
  rustc_ast_lowering rather than `DefCollector`. This is because in some
  cases they will end up becoming a `ConstArgKind::Path` instead, which
  has no `DefId`. We have to solve this in a hacky way where we guess
  whether the `AnonConst` could end up as a path const since we can't
  know for sure until after name resolution (`N` could refer to a free
  const or a nullary struct). If it has no chance as being a const
  param, then we create a `DefId` in `DefCollector` -- otherwise we
  decide during ast_lowering. This will have to be updated once all path
  consts use `ConstArgKind::Path`.

- We explicitly use `ConstArgHasType` for array lengths, rather than
  implicitly relying on anon const type feeding -- this is due to the
  addition of `ConstArgKind::Path`.

- Some tests have their outputs changed, but the changes are for the
  most part minor (including removing duplicate or almost-duplicate
  errors). One test now ICEs, but it is for an incomplete, unstable
  feature and is now tracked at #127009.
2024-07-16 19:27:28 -07:00
..
assoc_const_unification Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
auxiliary Remove some unnecessary allow(incomplete_features) 2024-03-11 19:42:04 +00:00
const_kind_expr Fix tests and bless 2024-04-24 13:12:33 +01:00
abstract-const-as-cast-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
abstract-const-as-cast-2.fixed Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
abstract-const-as-cast-2.rs Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
abstract-const-as-cast-2.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
abstract-const-as-cast-3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abstract-const-as-cast-3.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
abstract-const-as-cast-4.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
abstract-consts-as-cast-5.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abstract-consts-as-cast-5.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
adt_wf_hang.rs add test 2024-07-02 17:07:21 +01:00
adt_wf_hang.stderr add test 2024-07-02 17:07:21 +01:00
array-size-in-generic-struct-param.full.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
array-size-in-generic-struct-param.min.stderr Provide structured suggestion for #![feature(foo)] 2024-03-18 16:08:58 +00:00
array-size-in-generic-struct-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated-const.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated-consts.rs Detect pub structs never constructed and unused associated constants in traits 2024-06-05 23:20:09 +08:00
cannot-convert-refree-ice-114463.rs add test for ICE caused by using feature(generic_const_exprs) #114463 2024-04-21 22:00:38 +02:00
cannot-convert-refree-ice-114463.stderr add test for ICE caused by using feature(generic_const_exprs) #114463 2024-04-21 22:00:38 +02:00
closures.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
closures.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
const-block-is-poly.rs Fix tests and bless 2024-04-24 13:12:33 +01:00
const-block-is-poly.stderr Fix tests and bless 2024-04-24 13:12:33 +01:00
const_eval_resolve_canonical.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
convert-refree-region-vid-ice-114464.rs add test for #114464 2024-03-24 10:09:56 +01:00
convert-refree-region-vid-ice-114464.stderr add test for #114464 2024-03-24 10:09:56 +01:00
cross_crate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cross_crate_predicate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cross_crate_predicate.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
dependence_lint.full.stderr generic_const_exprs: suggest to add the feature, not use it 2023-11-30 20:59:51 +01:00
dependence_lint.gce.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
dependence_lint.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
different-fn.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different-fn.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
division.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
dont-eagerly-error-in-is-const-evaluatable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
double-opaque-parent-predicates.rs Actually just remove the special case altogether 2024-05-24 13:16:06 -04:00
double-opaque-parent-predicates.stderr Actually just remove the special case altogether 2024-05-24 13:16:06 -04:00
drop_impl.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
elaborate-trait-pred.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
error_in_ty.rs Bless tests and handle tests/crashes 2024-06-05 22:25:42 +01:00
error_in_ty.stderr Bless tests and handle tests/crashes 2024-06-05 22:25:42 +01:00
eval-privacy.rs Bless tests and handle tests/crashes 2024-06-05 22:25:42 +01:00
eval-privacy.stderr Bless tests and handle tests/crashes 2024-06-05 22:25:42 +01:00
eval-try-unify.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
eval-try-unify.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
evaluated-to-ambig.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.rs add test for ice expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.stderr 2024-04-28 10:23:11 +02:00
expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.stderr Better suggestion span for missing type parameter 2024-07-04 02:41:13 +00:00
failed-to-normalize-ice-issue-88421.rs add issue numbers via // issue: rust-lang/rust#ISSUE_NUM directive 2024-03-24 09:34:11 +01:00
failed-to-resolve-instance-ice-111667.rs add test for ICE failed to resolve instance for <[f32; 2] as CrossProduct 2024-04-28 10:23:10 +02:00
feature-gate-generic_const_exprs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-generic_const_exprs.stderr generic_const_exprs: suggest to add the feature, not use it 2023-11-30 20:59:51 +01:00
fn_call.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
from-sig-fail.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
from-sig-fail.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
from-sig.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
function-call.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
function-call.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
ice-generics_of-no-entry-found-for-key-113017.rs address review comments 2024-03-22 11:35:31 +01:00
ice-generics_of-no-entry-found-for-key-113017.stderr address review comments 2024-03-22 11:35:31 +01:00
ice-predicates-of-no-entry-found-for-key-119275.rs add test for ice #119275 "no entry found for key" in predicates_of.rs 2024-03-22 08:45:03 +01:00
ice-predicates-of-no-entry-found-for-key-119275.stderr add test for ice #119275 "no entry found for key" in predicates_of.rs 2024-03-22 08:45:03 +01:00
impl-bounds.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
infer-too-generic.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
inline-const-in-const-generic-defaults.rs Fix tests and bless 2024-04-24 13:12:33 +01:00
issue-62504.full.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
issue-62504.min.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
issue-62504.rs Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
issue-69654.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-69654.stderr Conserve cause of ImplDerivedObligation in E0599 2023-01-11 19:31:33 +00:00
issue-72787.min.stderr generic_const_exprs: suggest to add the feature, not use it 2023-11-30 20:59:51 +01:00
issue-72787.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-72819-generic-in-const-eval.full.stderr Specify what 'this' actually is 2023-02-21 05:21:07 +00:00
issue-72819-generic-in-const-eval.min.stderr generic_const_exprs: suggest to add the feature, not use it 2023-11-30 20:59:51 +01:00
issue-72819-generic-in-const-eval.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-73298.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-73899.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-74634.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-74713.rs improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
issue-74713.stderr generic_const_exprs: suggest to add the feature, not use it 2023-11-30 20:59:51 +01:00
issue-76595.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-76595.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-79518-default_trait_method_normalization.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-79518-default_trait_method_normalization.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-80561-incorrect-param-env.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-80742.rs Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
issue-80742.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-82268.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-83765.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-83765.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
issue-83972.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-84408.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-84669.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-85848.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-85848.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
issue-86710.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-89851.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-90847.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-94287.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-94287.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-94293.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-96699.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-97047-ice-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-97047-ice-1.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-97047-ice-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-97047-ice-2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-99647.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-99705.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-100217.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-100360.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-102074.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-102768.rs Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
issue-102768.stderr Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
issue-105257.rs Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
issue-105257.stderr Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
issue-105608.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-105608.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-109141.rs register opaques that reference errors 2024-03-20 17:30:19 +00:00
issue-109141.stderr register opaques that reference errors 2024-03-20 17:30:19 +00:00
less_than.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-bindings.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
let-bindings.stderr Properly pluralize 'generic constants' 2023-01-16 20:21:29 +00:00
mismatched-gat-subst-kind.rs Only expect a GAT const arg 2023-03-19 23:46:09 +00:00
mismatched-gat-subst-kind.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
needs_where_clause.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
needs_where_clause.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
nested-abstract-consts-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-abstract-consts-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested_uneval_unification-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested_uneval_unification-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no-entry-found-for-key-ice-gce-nlb-113133.rs add test for ICE: no entry found for key for const function in generic_const_exprs #113133 2024-03-24 10:16:29 +01:00
no-entry-found-for-key-ice-gce-nlb-113133.stderr add test for ICE: no entry found for key for const function in generic_const_exprs #113133 2024-03-24 10:16:29 +01:00
no_dependence.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no_where_clause.rs Continue compilation after check_mod_type_wf errors 2024-02-14 11:00:30 +00:00
no_where_clause.stderr Provide structured suggestion for unconstrained generic constant 2024-03-21 00:03:59 +00:00
non_local_anon_const_diagnostics.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
non_local_anon_const_diagnostics.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
normed_to_param_is_evaluatable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
object-safety-err-ret.rs Continue compilation after check_mod_type_wf errors 2024-02-14 11:00:30 +00:00
object-safety-err-ret.stderr Continue compilation after check_mod_type_wf errors 2024-02-14 11:00:30 +00:00
object-safety-err-where-bounds.rs Make WHERE_CLAUSES_OBJECT_SAFETY a regular object safety violation 2024-06-03 09:49:04 -04:00
object-safety-err-where-bounds.stderr Make WHERE_CLAUSES_OBJECT_SAFETY a regular object safety violation 2024-06-03 09:49:04 -04:00
object-safety-ok-infer-err.rs Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
object-safety-ok-infer-err.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
object-safety-ok.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
obligation-cause.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
obligation-cause.stderr Deduplicate more sized errors on call exprs 2024-01-24 02:53:15 +00:00
opaque_type.rs Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
opaque_type.stderr Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
poly-const-uneval-ice-106423.rs add test for #106423 2024-03-23 12:32:32 +01:00
simple_fail.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
simple_fail.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
single-satisfied-ConstEvaluatable-in-probe.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
subexprs_are_const_evalutable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
ty-alias-substitution.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type_mismatch.rs Add ConstArgKind::Path and make ConstArg its own HIR node 2024-07-16 19:27:28 -07:00
type_mismatch.stderr Add ConstArgKind::Path and make ConstArg its own HIR node 2024-07-16 19:27:28 -07:00
typeid-equality-by-subtyping.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
typeid-equality-by-subtyping.stderr Make infer higher ranked equate use bidirectional subtyping in invariant context 2024-02-29 15:27:56 -03:00
unevaluated-const-ice-119731.rs Add ConstArgKind::Path and make ConstArg its own HIR node 2024-07-16 19:27:28 -07:00
unevaluated-const-ice-119731.stderr Add ConstArgKind::Path and make ConstArg its own HIR node 2024-07-16 19:27:28 -07:00
unify-op-with-fn-call.rs Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
unify-op-with-fn-call.stderr Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
unknown-alias-defkind-anonconst-ice-116710.rs add test for ice: unknown alias DefKind: AnonConst #116710 2024-04-07 01:20:56 +02:00
unknown-alias-defkind-anonconst-ice-116710.stderr add test for ice: unknown alias DefKind: AnonConst #116710 2024-04-07 01:20:56 +02:00
unop.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unresolved_lifetimes_error.rs improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
unresolved_lifetimes_error.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unused-complex-default-expr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unused_expr.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unused_expr.stderr Properly pluralize 'generic constants' 2023-01-16 20:21:29 +00:00