rust/tests/ui/structs
Jubilee b3d7c1483d
Rollup merge of #137913 - compiler-errors:struct-field-default-generic, r=BoxyUwU
Allow struct field default values to reference struct's generics

Right now, the default field value feature (https://github.com/rust-lang/rust/issues/132162) lowers anon consts whose types may reference ADT params that the const doesn't inherit.

This PR fixes this, so that these defaults can reference ADTs' generics, and sets the `generics_of` parenting up correctly.

There doesn't seem to be a good reason not to support this, since the anon const has a well-defined type from the field, and the anon const doesn't interact with the type system like generic parameter defaults do.

r? `````@boxyuwu````` or reassign

I could also make this into an error if this seems problematic (https://github.com/rust-lang/rust/compare/master...compiler-errors:rust:default-field-value-implicit-param?expand=1)...... but I'd rather make this work and register an open question on the tracking issue about validating that this is well-vetted.

Fixes #137896
2025-03-04 19:37:01 -08:00
..
auxiliary Move default-field-values tests into a subdirectory 2024-12-14 18:05:19 +00:00
default-field-values Rollup merge of #137913 - compiler-errors:struct-field-default-generic, r=BoxyUwU 2025-03-04 19:37:01 -08:00
default-field-values-non_exhaustive.rs Restrict #[non_exaustive] on structs with default field values 2024-12-20 17:18:54 +00:00
default-field-values-non_exhaustive.stderr Restrict #[non_exaustive] on structs with default field values 2024-12-20 17:18:54 +00:00
field-implied-unsizing-wfcheck.rs Test more cases of WF-checking for fields 2024-08-05 17:56:50 -07:00
field-implied-unsizing-wfcheck.stderr Test more cases of WF-checking for fields 2024-08-05 17:56:50 -07:00
ice-struct-tail-normalization-113272.rs Add TooGeneric variant to LayoutError and emit Unknown one 2025-01-27 00:37:34 +01:00
ice-struct-tail-normalization-113272.stderr fix ICE with references to infinite structs in consts 2025-01-14 01:22:04 +01:00
incomplete-fn-in-struct-definition.rs
incomplete-fn-in-struct-definition.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-80853.rs
issue-80853.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
large-records.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
manual-default-impl-could-be-derived.rs Implement default_overrides_default_fields lint 2024-12-25 23:25:45 +00:00
manual-default-impl-could-be-derived.stderr Provide structured suggestion for impl Default of type where all fields have defaults 2024-12-31 18:06:01 +00:00
method-chain-expression-failure.rs Recurse over the method chain and maintain a stack to peek at previous receiver to align spans 2023-11-10 13:00:27 -08:00
method-chain-expression-failure.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
multi-line-fru-suggestion.rs
multi-line-fru-suggestion.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
rhs-type.rs tests: use needs-subprocess instead of ignore-{wasm32,emscripten,sgx} 2025-01-23 20:51:29 +08:00
struct-base-wrong-type.rs
struct-base-wrong-type.stderr
struct-duplicate-comma.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-duplicate-comma.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-duplicate-comma.stderr Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
struct-field-cfg.rs
struct-field-cfg.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
struct-field-init-syntax.rs
struct-field-init-syntax.stderr Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
struct-field-privacy.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-field-privacy.stderr
struct-fields-decl-dupe.rs
struct-fields-decl-dupe.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-fields-dupe.rs
struct-fields-dupe.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-fields-hints-no-dupe.rs
struct-fields-hints-no-dupe.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
struct-fields-hints.rs
struct-fields-hints.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
struct-fields-missing.rs
struct-fields-missing.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-fields-shorthand-unresolved.rs
struct-fields-shorthand-unresolved.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-fields-shorthand.rs
struct-fields-shorthand.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-fields-too-many.rs
struct-fields-too-many.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-fields-typo.rs
struct-fields-typo.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
struct-fn-in-definition.rs
struct-fn-in-definition.stderr
struct-missing-comma.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-missing-comma.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-missing-comma.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-pat-derived-error.rs
struct-pat-derived-error.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
struct-path-alias-bounds.rs
struct-path-alias-bounds.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
struct-path-associated-type.rs
struct-path-associated-type.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
struct-path-self-type-mismatch.rs
struct-path-self-type-mismatch.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
struct-path-self.rs
struct-path-self.stderr
struct-record-suggestion.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-record-suggestion.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-record-suggestion.stderr
struct-tuple-field-names.rs
struct-tuple-field-names.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
struct-variant-privacy-xc.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-variant-privacy-xc.stderr
struct-variant-privacy.rs
struct-variant-privacy.stderr
structure-constructor-type-mismatch.rs
structure-constructor-type-mismatch.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
suggest-private-fields.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
suggest-private-fields.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
suggest-replacing-field-when-specifying-same-type.rs
suggest-replacing-field-when-specifying-same-type.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
unresolved-struct-with-fru.rs
unresolved-struct-with-fru.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00