The spec for integer promotions currently says: "Note: the usual integral promotions are not performed prior to the complement operation." However, while this is currently true, it's a deprecation, and is NOT true with the -transition=intpromote flag. This should be reflected in the spec. Also, there are no notes for any of the other affected unary expressions about integer promotion. Those should be added.
@ntrel created dlang/dlang.org pull request #3385 "Fix Issue 18496 - Complement expressions now actually int promote" fixing this issue: - Fix Issue 18496 - Complement expressions now actually int promote Also document promotion before unary `-` and `+`. https://github.com/dlang/dlang.org/pull/3385
dlang/dlang.org pull request #3385 "Fix Issue 18496 - Complement expressions now actually int promote" was merged into master: - fa0a3c69b44829454f927d651c13a34795d7bac0 by Nick Treleaven: Fix Issue 18496 - Complement expressions now actually int promote Also document promotion before unary `-` and `+`. https://github.com/dlang/dlang.org/pull/3385