recursive definition error

Frustrated via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jul 6 18:27:56 PDT 2014


On Friday, 4 July 2014 at 21:15:02 UTC, Frustrated wrote:
> On Friday, 4 July 2014 at 20:25:28 UTC, Frustrated wrote:
>> On Friday, 4 July 2014 at 16:31:28 UTC, Stanislav Blinov wrote:
>>> On Friday, 4 July 2014 at 16:28:48 UTC, Frustrated wrote:
>>>> On Friday, 4 July 2014 at 15:42:36 UTC, bearophile wrote:
>>>>> Frustrated:
>>>
>>>> I'm not using 2.066 though...
>>>>
>>>> I will revert back to the dmd version I was using when it 
>>>> worked... Hopefully someone can make sure this is not a 
>>>> regression in the mean time... (seems like it is and I don't 
>>>> want to get bit again later on when I upgrade)
>>>
>>> That template and its instantiation work fine for me on both 
>>> 2.065 and 2.066b1.
>>
>> Ok, I do not know where this error creeped in at. I do know at 
>> one point the code was working fine without any changes I 
>> believe. (it's possible though I messed something up)
>>
>> The recursive error seems to be the wrong issue. Trying to 
>> diagnose what the problem is now.
>
> This must be some weird issue with Array or a change in what 
> imports does.
>
> e.g.,
>
> if I do
>
> struct apple(T) { }
>
> template Array(T) { alias apple!T Array; }
>
> Then the code works(except I no longer can use array as an 
> array but I do not get any recursive issues.
>
> The compiler I was using when it worked might have been pre 
> 2.064... Or possibly something else is going on that breaks the 
> code.
>
> Best I can tell is that the compiler is getting confused 
> between std.container.Array and my Array.

This seems to be a regression as it works fine in 2.064. The 
error is not directly due to recursion as far as I can tell but 
in a template that uses the Array template. Why it breaks the 
array I have no idea. I will try to create a minimal project for 
it.


More information about the Digitalmars-d-learn mailing list