* Fix Issue 15436 - Compiler still refers to AliasSeq-s as "tuple"-s
Replace "tuple type" with "type sequence".
Replace "tuple" with "sequence".
Pretty print `AliasSeq!(args)`, not `tuple(args)`.
Leave json as "tuple" for now.
Also mention std.typecons.Tuple when trying to return a sequence.
Note: This does not rename any internal compiler symbols.
* Update runnable tests
* Update stringof tests
* Update remaining tests
* retrigger tests
* Fix Issue 24017 - Bypassing with doesn’t work
* Update compiler/src/dmd/expressionsem.d
Co-authored-by: Dennis <dkorpel@users.noreply.github.com>
---------
Co-authored-by: Dennis <dkorpel@users.noreply.github.com>
* Fix issue 24018: make `array.length = n` `@system` if default construction is disabled on the array type.
This is needed as there is otherwise no good way to resize an array of non-constructable elements in user code at all.
* Fix issue 24018: instead of calling `array.length =`, call the runtime function that implements `array.length =` instead.
This skips the check for the element type being constructable, which is correct because concatenation doesn't expose unconstructed memory anyway.
* Linux AArch64: Don't define _Float128/__float128 in importc.h
For LDC CI, on Ubuntu 20.04, this fixed:
```
/usr/include/aarch64-linux-gnu/bits/floatn.h(80): Error: illegal combination of type specifiers
/usr/include/aarch64-linux-gnu/bits/floatn.h(80): Error: illegal type combination
```
when testing `compilable/stdcheaders.c`.
* Linux AArch64: Don't include tgmath.h in compilable/stdcheaders.c
When assignment-style syntax for alias declarations was first
implemented in DMD 2.061 [1][2], `alias this = identifier;` was accepted
as equivalent to the existing `alias identifier this;`. One release
later, in DMD 2.062, it was removed. [3]
The rationale for this change, given in both the changelog [4] and a
related spec PR thread [5], was to allow for the possibility that, in
the future, the syntax `alias this = super.this;` might be used to merge
a derived class's constructor overload set with that of its base class.
However, this proposal was never implemented, and seems to have been
abandoned in the intervening years.
For the sake of consistency, and since the rationale for its removal no
longer applies, this commit reinstates `alias this = identifier;` as
valid syntax for an `alias this` declaration.
[1] https://github.com/dlang/dmd/pull/1187
[2] https://dlang.org/changelog/2.061.html
[3] https://github.com/dlang/dmd/pull/1413
[4] https://dlang.org/changelog/2.062.html
[5] https://github.com/dlang/dlang.org/pull/200#issuecomment-11711854
This brings the following changes:
- Improves the existing template `_d_arraycatnTX`, to now concatenates
both arrays and single elements
- Changes the lowerings to `_d_arraycatT` to use the new template
- Moves the lowering logic to `_d_arraycatnTX` to expressionsem.d
- Adds a new field to `CatExp` called `lowering` to store the template
lowering
- Removes the old non-template `_d_arraycatnTX` and `_d_arraycatT` hooks
- Moves `test19688.d` from `runnable/` to `compilable/` until
https://issues.dlang.org/show_bug.cgi?id=23408 is fixed
Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com>