May 20 [Issue 24556] New: Allow IFTI for dotted template parameters used as function type parameter | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=24556 Issue ID: 24556 Summary: Allow IFTI for dotted template parameters used as function type parameter Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: b2.temp@gmx.com Minor enhancement, not very useful but maybe that this should work: ```d version(all) void v(T,U)(T.U tu){} else void v(U, T = __traits(parent, U))(U tu){}; // that works fine RN void main() { struct S1 { S2 s2; struct S2 {} } S1 s1; v(s1.s2); struct G1 { struct G2 {} } G1.G2 g1g2; v(g1g2); } ``` That is currently rejected but the compiler could guess that `U` is either `S2` or `G2` and then infer `T` as being the parent type (if any). That would be similar to the case where D deduces T, let's say in `void v(T)(T[] t)`. -- |
Copyright © 1999-2021 by the D Language Foundation