rust/compiler
bors 974ccc12e6 Auto merge of #129514 - estebank:default-field-values, r=compiler-errors
Introduce `default_field_values` feature

Initial implementation of `#[feature(default_field_values]`, proposed in https://github.com/rust-lang/rfcs/pull/3681.

We now parse const expressions after a `=` in a field definition, to specify a `struct` field default value.

We now allow `Struct { field, .. }` where there's no base after `..`.

`#[derive(Default)]` now uses the default value if present, continuing to use `Default::default()` if not.

```rust
#[derive(Debug)]
pub struct S;

#[derive(Debug, Default)]
pub struct Foo {
    pub bar: S = S,
    pub baz: i32 = 42 + 3,
}

fn main () {
    let x = Foo { .. };
    let y = Foo::default();
    let z = Foo { baz: 1, .. };

    assert_eq!(45, x.baz);
    assert_eq!(45, y.baz);
    assert_eq!(1, z.baz);
}
```
2024-12-10 00:07:00 +00:00
..
rustc switch jemalloc-sys back to tikv-jemalloc-sys, and update to 0.6.0 2024-12-03 08:56:33 +00:00
rustc_abi fix safe-transmute handling of enums 2024-12-01 18:28:04 +01:00
rustc_arena move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
rustc_ast Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_ast_ir Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
rustc_ast_lowering review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_ast_passes review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_ast_pretty Rollup merge of #133424 - Nadrieril:guard-patterns-parsing, r=fee1-dead 2024-12-08 17:18:50 +01:00
rustc_attr ensure that all publicly reachable const fn have const stability info 2024-11-10 10:16:26 +01:00
rustc_baked_icu_data Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_borrowck Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_builtin_macros Disallow #[default] Variant {} regardless of feature flag 2024-12-09 21:55:13 +00:00
rustc_codegen_cranelift Rollup merge of #133567 - bjorn3:various_cleanups, r=cjgillot 2024-12-09 01:56:32 +01:00
rustc_codegen_gcc Remove polymorphization 2024-12-06 16:42:09 -05:00
rustc_codegen_llvm Auto merge of #134052 - matthiaskrgr:rollup-puxwqrk, r=matthiaskrgr 2024-12-09 03:24:24 +00:00
rustc_codegen_ssa Rollup merge of #133567 - bjorn3:various_cleanups, r=cjgillot 2024-12-09 01:56:32 +01:00
rustc_const_eval Rollup merge of #133861 - shamb0:refactor_InterpCx_allocate_str, r=RalfJung 2024-12-08 14:28:24 +01:00
rustc_data_structures Assert that obligations are empty before deeply normalizing 2024-12-02 22:51:18 +00:00
rustc_driver
rustc_driver_impl Use ensure for analysis calls 2024-12-08 16:57:09 +00:00
rustc_error_codes Fix: typo in E0751 error explanation 2024-12-06 22:09:17 -03:00
rustc_error_messages Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_errors Handle unwinding out of the closure argument of run_compiler with pending delayed bugs 2024-12-06 18:42:31 +00:00
rustc_expand Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_feature Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_fluent_macro use tracked_path in rustc_fluent_macro 2024-10-19 22:32:38 +08:00
rustc_fs_util Couple of changes to make it easier to compile rustc for wasm 2024-09-26 19:51:14 +00:00
rustc_graphviz Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_hir Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_hir_analysis Unconditionally error at definition if default field value has const errors 2024-12-09 21:58:00 +00:00
rustc_hir_pretty Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_hir_typeck Provide diagnostic for Struct(a, .., z) expression 2024-12-09 21:55:12 +00:00
rustc_incremental Remove all threading through of ErrorGuaranteed from the driver 2024-12-06 18:42:31 +00:00
rustc_index Use BitSet in SparseBitMatrix. 2024-12-09 08:53:33 +11:00
rustc_index_macros Auto merge of #130867 - michirakara:steps_between, r=dtolnay 2024-11-22 10:54:22 +00:00
rustc_infer Assert that obligations are empty before deeply normalizing 2024-12-02 22:51:18 +00:00
rustc_interface Rollup merge of #133567 - bjorn3:various_cleanups, r=cjgillot 2024-12-09 01:56:32 +01:00
rustc_lexer Revert "Reject raw lifetime followed by \' as well" 2024-12-01 05:22:16 +00:00
rustc_lint Unconditionally error at definition if default field value has const errors 2024-12-09 21:58:00 +00:00
rustc_lint_defs Actually walk into lifetimes and attrs in EarlyContextAndPass 2024-12-07 02:08:40 +00:00
rustc_llvm Respect verify-llvm-ir option in the backend 2024-11-26 15:26:03 +01:00
rustc_log Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_macros give a better error for tuple structs in derive(Diagnostic) 2024-10-27 21:23:28 -04:00
rustc_metadata Support x-crate default fields 2024-12-09 21:58:07 +00:00
rustc_middle review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_mir_build review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_mir_dataflow Remove ChunkedBitSet impls that are no longer needed. 2024-12-09 08:53:35 +11:00
rustc_mir_transform Auto merge of #133891 - nnethercote:MixedBitSet, r=Mark-Simulacrum 2024-12-09 07:13:11 +00:00
rustc_monomorphize Remove polymorphization 2024-12-06 16:42:09 -05:00
rustc_next_trait_solver do not implement unsafe auto traits for types with unsafe fields 2024-12-05 23:52:21 +00:00
rustc_parse Detect struct S(ty = val); 2024-12-09 21:55:12 +00:00
rustc_parse_format Remove 'apostrophes' from rustc_parse_format 2024-10-14 23:22:51 +02:00
rustc_passes Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_pattern_analysis no more Reveal :( 2024-11-23 13:52:54 +01:00
rustc_privacy Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_query_impl Remove 'tcx lifetime from OnDiskCache 2024-12-06 18:41:50 +00:00
rustc_query_system Make sure to record deps from cached task in new solver on first run 2024-12-04 16:15:44 +00:00
rustc_resolve review comments: rewordings 2024-12-09 21:55:13 +00:00
rustc_sanitizers use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
rustc_serialize Fix explicit_iter_loop in rustc_serialize 2024-10-16 15:44:16 +02:00
rustc_session Rollup merge of #133567 - bjorn3:various_cleanups, r=cjgillot 2024-12-09 01:56:32 +01:00
rustc_smir Fix ui-fulldep tests 2024-12-06 18:42:31 +00:00
rustc_span Introduce default_field_values feature 2024-12-09 21:55:01 +00:00
rustc_symbol_mangling Remove polymorphization 2024-12-06 16:42:09 -05:00
rustc_target Rollup merge of #130777 - azhogin:azhogin/reg-struct-return, r=workingjubilee 2024-12-06 09:27:38 +01:00
rustc_trait_selection Rollup merge of #133767 - estebank:multiple-dep-version-tests, r=Nadrieril 2024-12-08 14:28:24 +01:00
rustc_traits Delay a bug when encountering an impl with unconstrained generics in codegen_select 2024-11-23 05:27:45 +00:00
rustc_transmute fix safe-transmute handling of enums 2024-12-01 18:28:04 +01:00
rustc_ty_utils Remove polymorphization 2024-12-06 16:42:09 -05:00
rustc_type_ir do not implement unsafe auto traits for types with unsafe fields 2024-12-05 23:52:21 +00:00
rustc_type_ir_macros do not relate Abi and Safety 2024-10-22 23:13:04 +02:00
stable_mir Rollup merge of #132161 - celinval:smir-fix-indent, r=compiler-errors 2024-11-08 18:51:28 +11:00