[Issue 21475] template 'this' parameter is incorrectly handled for 'alias this'
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Dec 12 10:39:10 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=21475
--- Comment #1 from Max Samukha <maxsamukha at gmail.com> ---
(In reply to Max Samukha from comment #0)
> struct S {
> string rt;
> void _init(this T)() {
> rt = T);
> }
> }
>
> struct S2 {
> S s;
> alias s this;
> }
>
> void main() {
> S2 s2;
> s2._init;
> assert(s2.rt == "S2");
> }
>
> T is incorrectly resolved to S, while it should be typeof(s2), which is S2.
Corrected test case:
struct S {
string rt;
void _init(this T)() {
rt = __traits(identifier, T);
}
}
struct S2 {
S s;
alias s this;
}
void main() {
S2 s2;
s2._init;
assert(s2.rt == "S2");
}
--
More information about the Digitalmars-d-bugs
mailing list