Beta 2.094.0
DlangUser38
DlangUser at nowhere.ch
Sun Sep 13 18:17:34 UTC 2020
On Sunday, 13 September 2020 at 14:52:13 UTC, MrSmith wrote:
> On Friday, 11 September 2020 at 07:48:00 UTC, Martin Nowak
> wrote:
>> Glad to announce the first beta for the 2.094.0 release, ♥ to
>> the 49 contributors.
>>
>> This is the first release to be built with LDC on all
>> platforms, so we'd welcome some more thorough beta testing.
>>
>> http://dlang.org/download.html#dmd_beta
>> http://dlang.org/changelog/2.094.0.html
>>
>> As usual please report any bugs at
>> https://issues.dlang.org
>>
>> -Martin
>
> One unfortunate sideeffect of allMembers change is that it
> breaks this king of loop:
> ```
> foreach(m; __traits(allMembers, M)) { // M is module
> alias member = __traits(getMember, M, m); // now fails
> because std.stdio is not a member of M
> }
> ```
>
> To fix I needed to rewrite it as:
> ```
> foreach(m; __traits(allMembers, M)) { // M is module
> static if (__traits(compiles, __traits(getMember, M, m)))
> alias member = __traits(getMember, M, m);
> }
> ```
the technic to filter out is:
```
foreach(m; __traits(allMembers, M)) { // M is module
static if (!is(mixin(m) == module))
static if (!is(mixin(m) == package))
{
....
}
```
BTW this is not a side-effect. This is the desired effect. That
worked previously because the allmembers tuple was incorrect.
More information about the Digitalmars-d-announce
mailing list