May 05, 2017 [Issue 17373] New: traits getOverloads + multiple interface inheritance only see one of the interfaces' overloads | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17373 Issue ID: 17373 Summary: traits getOverloads + multiple interface inheritance only see one of the interfaces' overloads Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: mathias.lang@sociomantic.com Tested with 2.074 / master as of today: ``` interface Foo { void visit (int); } interface Bar { void visit (double); } interface FooBar : Foo, Bar {} pragma(msg, __traits(getOverloads, FooBar, "visit").length); ``` Outputs `1LU`, which is incorrect as both will be part of the overload set. This breaks reflection code which tries to auto-instantiate interfaces (like Blackhole / whitehole). -- |
Copyright © 1999-2021 by the D Language Foundation