www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20054] New: getSymbolsByUDA no longer works on modules

https://issues.dlang.org/show_bug.cgi?id=20054

          Issue ID: 20054
           Summary: getSymbolsByUDA no longer works on modules
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: regression
          Priority: P1
         Component: phobos
          Assignee: nobody puremagic.com
          Reporter: zorael gmail.com

I use this heavily to iterate module-level functions[1].

import std.traits;

struct UDA;

 UDA
void foo() {}

void main()
{
    alias funs = getSymbolsByUDA!(mixin(__MODULE__), UDA);
}

 C:\cygwin\home\zorael\work\result\bin\..\import\std\traits.d(8356): Error:
template instance `isAggregateType!(uda)` does not match template declaration
`isAggregateType(T)`
 uda.d(10):        while looking for match for `getSymbolsByUDA!(uda, UDA)`
Offending commit: commit f07517ac648a933d998bc6a53af7dc55c9d48daf Author: The Dlang Bot <code+dlang-bot dawg.eu> Date: Wed Jul 10 11:57:39 2019 +0200 https://github.com/dlang/phobos/pull/7100 Fix Issue 19105 - Bogus recursive template expansion via getSymbolsByUDA merged-on-behalf-of: Nicholas Wilson <thewilsonator users.noreply.github.com> [1]: https://github.com/zorael/kameloso/blob/25cee1b7/source/kameloso/plugins/common.d#L955 --
Jul 15 2019