We've had this discussion before on the forums but I think it needs to be restated:
Using a warning as part of the deprecation cycle is a poor choice because the majority of build setups (including DUB) have "warnings as errors" set by default (this is the sensible thing to do). This means that you're breaking people's code on step one of the cycle.
Instead, this should issue a deprecation message, then a warning, then an error.
The changelog is wrong.
Stevens-MacBook-Pro:testd steves$ cat testint.d
import std.stdio;
void main()
{
byte b = -128;
writeln(-b);
}
Stevens-MacBook-Pro:testd steves$ ~/Downloads/dmd2/osx/bin/dmd testint.d
testint.d(6): Deprecation: integral promotion not done for -b, use '-transition=intpromote' switch or -cast(int)(b)
Stevens-MacBook-Pro:testd steves$ ./testint
-128
Stevens-MacBook-Pro:testd steves$ rm testint
Stevens-MacBook-Pro:testd steves$ ~/Downloads/dmd2/osx/bin/dmd -w testint.d
testint.d(6): Deprecation: integral promotion not done for -b, use '-transition=intpromote' switch or -cast(int)(b)
Stevens-MacBook-Pro:testd steves$ ./testint
-128
Stevens-MacBook-Pro:testd steves$ ~/Downloads/dmd2/osx/bin/dmd -transition=intpromote testint.d
Stevens-MacBook-Pro:testd steves$ ./testint
128
So without any switches, we get a deprecation, not a warning. With the switches, we get the new behavior. In no case does it fail to compile. So I think this is really a changelog issue.
Since this is trivial to fix, and the real behavior is what you desired, I suggest just doing a PR on dlang.org, no need for a bug report.
Comment #4 by github-bugzilla — 2017-12-31T19:18:11Z