dmd/compiler/test/fail_compilation/diag11132.d
Dennis 42609ae98e
Add named arguments to struct literals (#14776)
* Add named argument parsing

* Refactor StructInitializer semantic to make it reusable

* Move out `resolveStructLiteralNamedArgs`

* Resolve named args in struct literal

* Add tests

* Check for errors returned by `resolveStructLiteralNamedArgs`

* Expand names along with tuples

* Update error messages in tests

* Convert tabs to spaces in named arg test

* Fix style of `resolveStructLiteralNamedArgs`

* Clarify 'fixme' comment in expandTuples

* Add example to `expandTuples` documentation

* Update compiler/src/dmd/initsem.d

Co-authored-by: Razvan Nitu <razvan.nitu1305@gmail.com>

* Add overlapping initialization supplemental error to Struct Initializer

* Improve "too many initializers" error message

Co-authored-by: Razvan Nitu <razvan.nitu1305@gmail.com>
2023-01-17 13:08:30 +01:00

24 lines
453 B
D

/*
TEST_OUTPUT:
---
fail_compilation/diag11132.d(23): Error: overlapping initialization for field `a` and `b`
fail_compilation/diag11132.d(23): `struct` initializers that contain anonymous unions must initialize only the first member of a `union`. All subsequent non-overlapping fields are default initialized
---
*/
struct S
{
int x;
union
{
int a;
int b;
}
int z;
}
void main()
{
S s = { 1, 2, 3 };
}