github / github/codeql

LGTM.com - false positive - cs/useless-assignment-to-local doesn't always work for ref struct like Span<T>

Open
#2,754 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/useless-assignment-to-local` rule makes sense: https://lgtm.com/rules/1506093386171/

However, assigning a ref struct like `Span` within an instance method of a containing ref struct to `stackalloc` is not redundant and necessary to give the compiler a hint that the local will not escape the stack/method. Otherwise, the compiler would complain since that ref struct local could be stashed as a field of the containing type.

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

https://lgtm.com/projects/g/dotnet/corefx/latest/files/src/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.TryGet.cs?sort=name&dir=ASC&mode=heatmap#V820

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.