On Wednesday, 5 July 2017 at 01:43:46 UTC, Ali Çehreli wrote:
On 07/04/2017 05:52 PM, Jean-Louis Leroy wrote:
On Wednesday, 5 July 2017 at 00:28:01 UTC, Ali Çehreli wrote:
On 07/04/2017 04:57 PM, Jean-Louis Leroy wrote:
[...]
No time to dig deeper but this is because the two ranges that chain() receives do not have a common type. (Rather, that type is 'void'):

[...]


This is related to TypeInfo.init, which unfortunately is *not* the .init property in this case. :( Luckily, it will be fixed in 2.075. This is what object.d has:
[...]
So, unfortunately, most Phobos range functions cannot be used with TypeInfo as they would invariably touch ElementType. Here is a halfway workaround that uses each() instead of map(): :/

Aaah, so I was not doing anything wrong ;-)

I was trying to factor this code:

      foreach (i; k.interfaces) {
        if (i.classinfo in classMap) {
          v.bases ~= classMap[i.classinfo];
        }
      }
      if (k.base in classMap) {
        v.bases ~= classMap[k.base];
      }

i.e. process the class base along with the interfaces in the same loop. I dwelled on it because my goal with this project is to learn (and evaluate) D.

Anyway, I am building my own graph of enriched ClassInfo objects; once that is done, I won't be impacted with the bug anymore.

Thanks for the diagnostic...

J-L


Reply via email to