[Issue 20648] New: static foreach over allMembers of module doesn't seem to work
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Mon Mar  9 03:44:42 UTC 2020
    
    
  
https://issues.dlang.org/show_bug.cgi?id=20648
          Issue ID: 20648
           Summary: static foreach over allMembers of module doesn't seem
                    to work
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: turkeyman at gmail.com
This should list all the structs in the module:
----------------------
module my_module;
struct Wow {}
template ScrapeStructs(Tys...)
{
    import std.meta : AliasSeq;
    static if (Tys.length == 0)
        alias ScrapeStructs = AliasSeq!();
    else static if (is(Tys[0] == struct))
        alias ScrapeStructs = AliasSeq!(Tys[0], ScrapeStructs!(Tys[1 .. $]));
    else
        alias ScrapeStructs = ScrapeStructs!(Tys[1 .. $]);
}
alias AllStructs = ScrapeStructs!(__traits(allMembers, my_module));
pragma(msg, AllStructs); // ()
pragma(msg, is(Wow == struct)); // true
----------------------
But it doesn't...
--
    
    
More information about the Digitalmars-d-bugs
mailing list