May 31, 2019 Visual D mixin | ||||
---|---|---|---|---|
| ||||
mixin is 20k+ and mostly has junk, but also missing info // expansion at size_t h = 0;foreach (i, T; typeof(p.tupleof)) static if(is(T* : const(.object.Object)*)) h = h * 33 + typeid(const(.object.Object)).getHash(cast(const void*)&p.tupleof[i]); else h = h * 33 + typeid(T).getHash(cast(const void*)&p.tupleof[i]);return h; I'm not sure what this is, it might be from my code but it doesn't list the file It would be nice to 1. Disable any mixin outputs to the mixin file(unless they are required by D, but I think they are not?) from phobos(maybe make it optional) 2. Alow one to disable the output to the mixin in a single file(a pragma such as pragma(mixin, off);pragma(mixin, on);). This might require something on D itself. and one has zillions of // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\typecons.d(558) lhs < rhs // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\typecons.d(558) lhs < rhs // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\typecons.d(558) lhs == rhs // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\typecons.d(558) // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\functional.d(215) a < b // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\functional.d(469) a < b // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\functional.d(472) a < b // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\functional.d(213) alias a = __a ; // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\functional.d(214) alias b = __b ; // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\uni.d(7055) static if (getValue) grapheme ~= ch; range.popFront(); // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\uni.d(7063) static if (getValue) grapheme ~= ch; range.popFront(); // expansion at C:\D\dmd2\windows\bin\..\..\src\phobos\std\uni.d(7077) static if (getValue) grapheme ~= ch; range.popFront(); etc... |
May 31, 2019 Re: Visual D mixin | ||||
---|---|---|---|---|
| ||||
Posted in reply to Amex | On 31/05/2019 09:18, Amex wrote: > mixin is 20k+ and mostly has junk, but also missing info > > // expansion at > size_t h = 0;foreach (i, T; typeof(p.tupleof)) static if(is(T* : > const(.object.Object)*)) h = h * 33 + > typeid(const(.object.Object)).getHash(cast(const > void*)&p.tupleof[i]); else h = h * 33 + > typeid(T).getHash(cast(const void*)&p.tupleof[i]);return h; >> > I'm not sure what this is, it might be from my code but it doesn't list the file It's a compiler generated mixin for hash calculation. I agree, should be omitted. > > It would be nice to > > 1. Disable any mixin outputs to the mixin file(unless they are required > by D, but I think they are not?) from phobos(maybe make it optional > > 2. Alow one to disable the output to the mixin in a single file(a pragma > such as pragma(mixin, off);pragma(mixin, on);). This might require > something on D itself. > Please add an enhancement request for the compiler to https://issues.dlang.org/ |
Copyright © 1999-2021 by the D Language Foundation