Thread overview | ||||||
---|---|---|---|---|---|---|
|
August 25, 2018 Circular reference error gone after inspecting members | ||||
---|---|---|---|---|
| ||||
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 Re: Circular reference error gone after inspecting members | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | 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 Re: Circular reference error gone after inspecting members | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | 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 Re: Circular reference error gone after inspecting members | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yuxuan Shui | Issue filed: https://issues.dlang.org/show_bug.cgi?id=19190 |
Copyright © 1999-2021 by the D Language Foundation