github / github/codeql

LGTM.com - false positive - cs/equals-on-unrelated-types for types like Uri that override Equals

Open
#2,751 0 comments 0 reactions 0 assignees View on GitHub
C# false-positive
Dominant language
CodeQL
Stars
10.1k
Forks
2.1k
Avg merge
2d 15h
Merged PRs (30d)
141

Description

**Description of the false positive**

In general, the `cs/equals-on-unrelated-types` rule makes sense: https://lgtm.com/rules/1506096656531/

However, there are certain types, such as `Uri` which handle specific sets of types for equality in the `Equals` override method. In this particular case, `Uri.Equals` allows for the object to be `string` and tries to create a `Uri` from that string before comparing.
https://github.com/dotnet/runtime/blob/94ca567c76d4b2a8a5b2e744e3d9559abbcefdb0/src/libraries/System.Private.Uri/src/System/Uri.cs#L1629-L1657

**URL to the alert on the project page on LGTM.com**

https://lgtm.com/projects/g/dotnet/corefx/snapshot/4fed824926d1c659c494bd5261fbae0236b2e9da/files/src/System.Private.Uri/src/System/UriBuilder.cs?sort=name&dir=ASC&mode=heatmap#V364

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.