getOverloads order
IchorDev
zxinsworld at gmail.com
Thu Jul 13 11:04:40 UTC 2023
On Thursday, 13 July 2023 at 10:53:49 UTC, Dennis wrote:
> On Thursday, 13 July 2023 at 08:03:02 UTC, IchorDev wrote:
>> I've noticed that `__traits(getOverloads)` always returns the
>> overloads in lexical order across DMD, LDC, and GDC. Is this
>> reliable at all?
>
> No. It depends on the order the compiler analyzes the symbols,
> which is often lexical order, but it can vary based on static
> if, mixin, forward references etc. Here's a counter example:
>
> ```D
> void f(int x);
> mixin("void f(float y);");
> void f(char z);
> ```
>
> Here you get overloads of `f` in the order (x, z, y) instead of
> (x, y, z).
Well that makes sense, but also wouldn't apply to the use-case
that I was considering, since all the code would be in one mixin.
However, the spec doesn't specify that this is how `getOverloads`
**must** work; is this guaranteed behaviour but the spec simply
omits it?
More information about the Digitalmars-d-learn
mailing list