dotnet / dotnet/msbuild

Remove conditional-evaluation-order warning

Open
#1,698 10 comments 6 reactions 0 assignees View on GitHub
Area: Language help wanted triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

The warning

```
MSB4130: The condition "{0}" may have been evaluated incorrectly in an earlier version of MSBuild. Please verify that the order of the AND and OR clauses is written as intended. To avoid this warning, add parentheses to make the evaluation order explicit.
```
is emitted whenever a condition has an `and` and an `or` in parallel, for example `X and Y or Z`.

Looking through ancient history, it appears to have been introduced in MSBuild 3.5 in 2007, because a bug in MSBuild 2.0 that caused unexpected evaluation order was fixed then.

It feels wrong to emit an informational-only warning about a behavior change that happened 10 years ago.

Eliminating the check for this warning would allow pruning a tree of methods that exist only to provide it. They're currently in the code in `REMOVE_COMPAT_WARNING` regions. I propose to do just what that implies.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.