github / github/codeql

LGTM.com - false positive This assignment to is useless, since its value is never read.

Offen
#6,785 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
C# false-positive not security
Vorherrschende Sprache
CodeQL
Sterne
10.1k
Forks
2.1k
Ø Merge
2 T. 15 Std.
Gemergte PRs (30 T.)
141

Beschreibung

**Description of the false positive**

In the code below it warns that `spanDirective` is never read even though the value is passed to a method in which it is read:

```csharp
if (directiveNode is LineSpanDirectiveTriviaSyntax spanDirective)
{
return GetLineSpanDirectiveEntry(spanDirective, directiveLineNumber);
}
```

The compiler transforms the code into this (you can view the IL [here](https://sharplab.io/#v2:CYLg1APgAgTAjAWAFDKgZgASwwGQJYB2ApgMoAOAhgQCJ4BORAxgC54BuRAKne3hSQE8CzCgA8MAb2QYZWTIWa5CRDAF4AfBgAsMANzIAvslSZsAYUnTZ6DAowBZABQB5AEYArJouD0v7IgByAPbAKgCUlkiy0bYAZhiOPgws/sGhtgDOSsTkVLTJrBzcvPxCIuIZlDS+KRxhVjGRjY1QAOwYAOJEzPg5Vfl+HACiwnQCjpV5NYVEYfpRzUYLjQ0xbRihsRQArgA2zPPRS9GrZDxsFMwqdl09yrnVBf4jzGOOvaT90/7FbHyCwjEGEmj0Gs1WUmWa3aIIGtSIADoPodZEsDEA===))
```csharp
LineSpanDirectiveTriviaSyntax lineSpanDirectiveTriviaSyntax = directiveNode as LineSpanDirectiveTriviaSyntax;
if (lineSpanDirectiveTriviaSyntax != null)
{
return GetLineSpanDirectiveEntry(spanDirective, directiveLineNumber);
}
```

So this is a false positive unless we can prove that there exists no conversion to `LineSpanDirectiveTriviaSyntax` that can ever succeed.

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

https://lgtm.com/projects/g/dotnet/roslyn/snapshot/c9e0dd1ec0e440897388bbd55184fb53a555e3a4/files/src/Compilers/CSharp/Portable/Syntax/CSharpLineDirectiveMap.cs?sort=name&dir=ASC&mode=heatmap#xfcee166e229ccb35:1

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.