mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
Merge pull request #6799 from hvitved/csharp/dead-store-using-discard
C#: Filter using `var _ = ... results` from `DeadStoreOfLocal.ql`
This commit is contained in:
2
csharp/change-notes/2021-10-04-dead-store-of-local.md
Normal file
2
csharp/change-notes/2021-10-04-dead-store-of-local.md
Normal file
@@ -0,0 +1,2 @@
|
||||
lgtm,codescanning
|
||||
* `using` declarations are no longer flagged by the query "Useless assignment to local variable".
|
||||
@@ -72,7 +72,8 @@ predicate mayEscape(LocalVariable v) {
|
||||
|
||||
class RelevantDefinition extends AssignableDefinition {
|
||||
RelevantDefinition() {
|
||||
this instanceof AssignableDefinitions::AssignmentDefinition
|
||||
this.(AssignableDefinitions::AssignmentDefinition).getAssignment() =
|
||||
any(Assignment a | not a = any(UsingDeclStmt uds).getAVariableDeclExpr())
|
||||
or
|
||||
this instanceof AssignableDefinitions::MutationDefinition
|
||||
or
|
||||
|
||||
@@ -461,3 +461,16 @@ public static class AnonymousVariable
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Using
|
||||
{
|
||||
public static void M()
|
||||
{
|
||||
using var x = new System.IO.FileStream("", System.IO.FileMode.Open); // GOOD
|
||||
using var _ = new System.IO.FileStream("", System.IO.FileMode.Open); // GOOD
|
||||
|
||||
using (var y = new System.IO.FileStream("", System.IO.FileMode.Open)) // BAD
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@
|
||||
| DeadStoreOfLocal.cs:331:9:331:32 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:327:23:327:23 | b | b |
|
||||
| DeadStoreOfLocal.cs:372:13:372:20 | String s = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:372:13:372:13 | s | s |
|
||||
| DeadStoreOfLocal.cs:398:13:398:21 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:396:13:396:13 | s | s |
|
||||
| DeadStoreOfLocal.cs:472:20:472:76 | FileStream y = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:472:20:472:20 | y | y |
|
||||
| DeadStoreOfLocalBad.cs:7:13:7:48 | Boolean success = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:7:13:7:19 | success | success |
|
||||
| DeadStoreOfLocalBad.cs:23:32:23:32 | FormatException e | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:23:32:23:32 | e | e |
|
||||
| DeadStoreOfLocalBad.cs:32:22:32:22 | String s | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:32:22:32:22 | s | s |
|
||||
|
||||
Reference in New Issue
Block a user