Mixin analysis support for templated arguments possible?
jacobkemple
jacobkemple at outlook.com
Sun Mar 3 03:56:17 UTC 2019
On Saturday, 2 March 2019 at 08:09:00 UTC, Rainer Schuetze wrote:
>
>
> On 01/03/2019 21:17, jacobkemple wrote:
>> So below, if I type "t." in visual D pops intellisense parses
>> it right and it shows example1 as a ubyte, however, if I set
>> it to lets say foo!T[] (or anything else templated)
>> intellisense breaks support for mixins in this situation
>> despite the code working.
>>
>> mixin template StructVar(int offset, T, string name)
>> {
>> mixin("struct {"
>> ~ "private ubyte[" ~ offset.stringof ~ "] _;"
>> ~ T.stringof ~ " " ~ name ~ ";"
>> ~ "}");
>> }
>>
>> unittest
>> {
>> struct TestStruct
>> {
>> union
>> {
>> mixin StructVar!(0x10, ubyte, "example1");
>> }
>> }
>>
>> TestStruct t;
>> t.example1 = 0x71;
>> }
>>
>>
>>
>> Future support possible or is it a bug by any chance? Looked
>> at the code on github but fairly complicated to dive into
>> mixin analysis wise.
>
> Don't expect wonders, but this problem is "just" that the
> stringof property of template instances doesn't evaluate to the
> correct string, i.e. "foo" instead of "foo!int".
>
> This should help for the next release:
> https://github.com/aBothe/D_Parser/pull/218
If the issue is as you describe, simply checking if a template
type (I assume with checks for the ! token in some fashion?)
exist inside the template instance, parse the remainder? I am
fairly new to D but that seems reasonable if that is really the
issue here.
More information about the Digitalmars-d-ide
mailing list