Thread overview
Circular reference error gone after inspecting members
Aug 25, 2018
Yuxuan Shui
Aug 25, 2018
rikki cattermole
Aug 25, 2018
Yuxuan Shui
Aug 25, 2018
Yuxuan Shui
August 25, 2018
The offending code base is a little big and hard to reduce. I'll try if code is required, but here is the gist of the problem:

This snippet of code in my project:

    ...
    alias tmp = genCode!T;
    enum str = tmp.str; // This line here
    ...

Generate a circular reference error.

However, if I do:

    ...
    alias tmp = genCode!T;
    pragma(msg, __traits(allMembers, tmp));
    enum str = tmp.str; // This line here
    ...

Then the error is gone.

Anyone has any idea what could the problem be?
August 26, 2018
On 26/08/2018 2:10 AM, Yuxuan Shui wrote:
> The offending code base is a little big and hard to reduce. I'll try if code is required, but here is the gist of the problem:
> 
> This snippet of code in my project:
> 
>      ...
>      alias tmp = genCode!T;
>      enum str = tmp.str; // This line here
>      ...
> 
> Generate a circular reference error.
> 
> However, if I do:
> 
>      ...
>      alias tmp = genCode!T;
>      pragma(msg, __traits(allMembers, tmp));
>      enum str = tmp.str; // This line here
>      ...
> 
> Then the error is gone.
> 
> Anyone has any idea what could the problem be?

If that pragma(msg) does indeed make it disappear (check -v to confirm), then its a bug.
August 25, 2018
On Saturday, 25 August 2018 at 14:13:18 UTC, rikki cattermole wrote:
> On 26/08/2018 2:10 AM, Yuxuan Shui wrote:
>> The offending code base is a little big and hard to reduce. I'll try if code is required, but here is the gist of the problem:
>> 
>> This snippet of code in my project:
>> 
>>      ...
>>      alias tmp = genCode!T;
>>      enum str = tmp.str; // This line here
>>      ...
>> 
>> Generate a circular reference error.
>> 
>> However, if I do:
>> 
>>      ...
>>      alias tmp = genCode!T;
>>      pragma(msg, __traits(allMembers, tmp));
>>      enum str = tmp.str; // This line here
>>      ...
>> 
>> Then the error is gone.
>> 
>> Anyone has any idea what could the problem be?
>
> If that pragma(msg) does indeed make it disappear (check -v to confirm), then its a bug.

Alright then. I'll spend sometime and see if I can make a minimal example.
August 25, 2018
Issue filed: https://issues.dlang.org/show_bug.cgi?id=19190