-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Labels
Description
Version Used:
VS 2019 16.1.1 (cannot test in Beta at the moment as it broke compiling my main project :( ).
Steps to Reproduce:
- Create sample C# project with the following Main method:
private static int Main()
{
bool check = true/*of course, some actual calculation would be done here*/;
#if DEBUG
if (check)
return 3;
#endif
return 2;
}This code has the requirements of returning 3 in DEBUG builds if check is true, otherwise 2. In non-DEBUG builds, it always returns 2.
Expected Behavior:
The if statement cannot be simplified due to the constraints put on it by the preprocessor #if DEBUG.
Actual Behavior:
However, VS suggests IDE0046: 'if' statement can be simplified to create the following:
private static int Main()
{
bool check = true;
#if DEBUG
return check ? 3 : 2;
#endif
}This breaks the logic of any non-DEBUG build as the return is completely gone from them (it would even break compilation for normal methods requiring a return). The above requirements are not met anymore.
Xrayez