On 18 February 2018 at 12:01, Jonathan M Davis via Digitalmars-d < [email protected]> wrote:
> On Sunday, February 18, 2018 19:42:07 Johan Engelen via Digitalmars-d > wrote: > > > There are hundreds of lines I need to molest to make the > > > compiler shut up. I won't type another line of code on my > > > colour library until this noise is gone... I will not maintain > > > it. I am emotionally incapable of assaulting my code with those > > > casts. > > > > Using the `-transition=intpromote` compile flag is no option for > > you? > > Since that's a transition flag, it's really only a stop-gap solution. So, > if > his issue is that he doesn't like having the casts in his code as opposed > to > not wanting to deal with updating his code right now, the flag really > doesn't help. > > I'd say that if he's not going to abandon his library, he either needs to > just grit his teeth and use the explicit casts, or he's going to need to > refactor the code so that the casts are unnecessary. > > - Jonathan M Davis > Here's one file for instance (they all do this, although I can rearrange the noise somewhat): std\experimental\normint.d(526,24): Deprecation: integral promotion not done for `-convertNormBits(((v ^ 512u) == 0u ? ~v : -v) & 511u)`, use '-transition=intpromote' switch or `-cast(int)(convertNormBits(((v ^ 512u) == 0u ? ~v : -v) & 511u))` std\experimental\normint.d(526,119): Deprecation: integral promotion not done for `~v`, use '-transition=intpromote' switch or `~cast(int)(v)` std\experimental\normint.d(526,124): Deprecation: integral promotion not done for `-v`, use '-transition=intpromote' switch or `-cast(int)(v)` std\experimental\normint.d-mixin-78(78,1): Deprecation: integral promotion not done for `+this.value`, use '-transition=intpromote' switch or `+cast(int)(this.value)` std\experimental\normint.d-mixin-78(78,1): Deprecation: integral promotion not done for `-this.value`, use '-transition=intpromote' switch or `-cast(int)(this.value)` std\experimental\normint.d-mixin-78(78,1): Deprecation: integral promotion not done for `~this.value`, use '-transition=intpromote' switch or `~cast(int)(this.value)` std\experimental\normint.d-mixin-78(78,1): Deprecation: integral promotion not done for `~this.value`, use '-transition=intpromote' switch or `~cast(int)(this.value)` std\experimental\normint.d-mixin-78(78,1): Deprecation: integral promotion not done for `-this.value`, use '-transition=intpromote' switch or `-cast(int)(this.value)` std\experimental\normint.d(526,119): Deprecation: integral promotion not done for `~v`, use '-transition=intpromote' switch or `~cast(int)(v)` std\experimental\normint.d(526,124): Deprecation: integral promotion not done for `-v`, use '-transition=intpromote' switch or `-cast(int)(v)` std\experimental\normint.d(526,24): Deprecation: integral promotion not done for `-convertNormBits(cast(ubyte)(((cast(int)v ^ 128) == 0 ? cast(int)~v : cast(int)-v) & 127))`, use '-transition=intpromote' switch or `-cast(int)(convertNormBits(cast(ubyte)(((cast(int)v ^ 128) == 0 ? cast(int)~v : cast(int)-v) & 127)))` std\experimental\normint.d(526,119): Deprecation: integral promotion not done for `~v`, use '-transition=intpromote' switch or `~cast(int)(v)` std\experimental\normint.d(526,124): Deprecation: integral promotion not done for `-v`, use '-transition=intpromote' switch or `-cast(int)(v)` std\experimental\normint.d(526,24): Deprecation: integral promotion not done for `-convertNormBits(cast(ushort)(((cast(int)v ^ 32768) == 0 ? cast(int)~v : cast(int)-v) & 32767))`, use '-transition=intpromote' switch or `-cast(int)(convertNormBits(cast(ushort)(((cast(int)v ^ 32768) == 0 ? cast(int)~v : cast(int)-v) & 32767)))` std\experimental\normint.d(526,24): Deprecation: integral promotion not done for `-convertNormBits(((v ^ 2u) == 0u ? ~v : -v) & 1u)`, use '-transition=intpromote' switch or `-cast(int)(convertNormBits(((v ^ 2u) == 0u ? ~v : -v) & 1u))` std\experimental\normint.d(526,24): Deprecation: integral promotion not done for `-convertNormBits(((v ^ 4u) == 0u ? ~v : -v) & 3u)`, use '-transition=intpromote' switch or `-cast(int)(convertNormBits(((v ^ 4u) == 0u ? ~v : -v) & 3u))` std\experimental\normint.d-mixin-78(78,1): Deprecation: integral promotion not done for `+this.value`, use '-transition=intpromote' switch or `+cast(int)(this.value)` std\experimental\normint.d(526,119): Deprecation: integral promotion not done for `~v`, use '-transition=intpromote' switch or `~cast(int)(v)` std\experimental\normint.d(526,124): Deprecation: integral promotion not done for `-v`, use '-transition=intpromote' switch or `-cast(int)(v)` std\experimental\normint.d(526,24): Deprecation: integral promotion not done for `-convertNormBits(cast(const(ubyte))(((cast(int)v ^ 128) == 0 ? cast(int)~v : cast(int)-v) & 127))`, use '-transition=intpromote' switch or `-cast(int)(convertNormBits(cast(const(ubyte))(((cast(int)v ^ 128) == 0 ? cast(int)~v : cast(int)-v) & 127)))` std\experimental\normint.d(526,119): Deprecation: integral promotion not done for `~v`, use '-transition=intpromote' switch or `~cast(int)(v)` std\experimental\normint.d(526,124): Deprecation: integral promotion not done for `-v`, use '-transition=intpromote' switch or `-cast(int)(v)` std\experimental\normint.d(526,24): Deprecation: integral promotion not done for `-convertNormBits(cast(const(ushort))(((cast(int)v ^ 32768) == 0 ? cast(int)~v : cast(int)-v) & 32767))`, use '-transition=intpromote' switch or `-cast(int)(convertNormBits(cast(const(ushort))(((cast(int)v ^ 32768) == 0 ? cast(int)~v : cast(int)-v) & 32767)))` I'll admit I'm wildly overreacting, but I don't want to explicitly write the implicit casts. It's a library for other people to use; so the suggestion is really "tell everyone using the lib to build with -transition=intpromote". If -x does implicit int promotion, fine... but I don't want to explicitly cast to int everywhere to silence the noise up when the cast is actually implicit! How long is this message meant to hang around? I think I'd rather wait until it's gone than change the code...
