Skip to content

C#: Mass add quality queries to the Code Quality suite. #19783

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jun 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,20 +1,72 @@
ql/csharp/ql/src/API Abuse/CallToGCCollect.ql
ql/csharp/ql/src/API Abuse/CallToObsoleteMethod.ql
ql/csharp/ql/src/API Abuse/ClassImplementsICloneable.ql
ql/csharp/ql/src/API Abuse/FormatInvalid.ql
ql/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql
ql/csharp/ql/src/API Abuse/NullArgumentToEquals.ql
ql/csharp/ql/src/ASP/BlockCodeResponseWrite.ql
ql/csharp/ql/src/Bad Practices/CallsUnmanagedCode.ql
ql/csharp/ql/src/Bad Practices/CatchOfNullReferenceException.ql
ql/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql
ql/csharp/ql/src/Bad Practices/Declarations/LocalScopeVariableShadowsMember.ql
ql/csharp/ql/src/Bad Practices/EmptyCatchBlock.ql
ql/csharp/ql/src/Bad Practices/Implementation Hiding/ExposeRepresentation.ql
ql/csharp/ql/src/Bad Practices/Naming Conventions/FieldMasksSuperField.ql
ql/csharp/ql/src/Bad Practices/Naming Conventions/SameNameAsSuper.ql
ql/csharp/ql/src/Bad Practices/PathCombine.ql
ql/csharp/ql/src/Bad Practices/UnmanagedCodeCheck.ql
ql/csharp/ql/src/CSI/CompareIdenticalValues.ql
ql/csharp/ql/src/CSI/NullAlways.ql
ql/csharp/ql/src/CSI/NullMaybe.ql
ql/csharp/ql/src/Concurrency/FutileSyncOnField.ql
ql/csharp/ql/src/Concurrency/LockOrder.ql
ql/csharp/ql/src/Concurrency/LockThis.ql
ql/csharp/ql/src/Concurrency/LockedWait.ql
ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql
ql/csharp/ql/src/Documentation/XmldocMissingSummary.ql
ql/csharp/ql/src/Language Abuse/CastThisToTypeParameter.ql
ql/csharp/ql/src/Language Abuse/CatchOfGenericException.ql
ql/csharp/ql/src/Language Abuse/DubiousDowncastOfThis.ql
ql/csharp/ql/src/Language Abuse/DubiousTypeTestOfThis.ql
ql/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql
ql/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql
ql/csharp/ql/src/Language Abuse/MissedUsingOpportunity.ql
ql/csharp/ql/src/Language Abuse/NestedIf.ql
ql/csharp/ql/src/Language Abuse/RethrowException.ql
ql/csharp/ql/src/Language Abuse/SimplifyBoolExpr.ql
ql/csharp/ql/src/Language Abuse/UnusedPropertyValue.ql
ql/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql
ql/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql
ql/csharp/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql
ql/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql
ql/csharp/ql/src/Likely Bugs/ConstantComparison.ql
ql/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql
ql/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql
ql/csharp/ql/src/Likely Bugs/EqualsArray.ql
ql/csharp/ql/src/Likely Bugs/HashedButNoHash.ql
ql/csharp/ql/src/Likely Bugs/ImpossibleArrayCast.ql
ql/csharp/ql/src/Likely Bugs/IncomparableEquals.ql
ql/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql
ql/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql
ql/csharp/ql/src/Likely Bugs/RecursiveEquals.ql
ql/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql
ql/csharp/ql/src/Likely Bugs/SelfAssignment.ql
ql/csharp/ql/src/Likely Bugs/Statements/EmptyBlock.ql
ql/csharp/ql/src/Likely Bugs/Statements/EmptyLockStatement.ql
ql/csharp/ql/src/Likely Bugs/StaticFieldWrittenByInstance.ql
ql/csharp/ql/src/Likely Bugs/StringBuilderCharInit.ql
ql/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql
ql/csharp/ql/src/Linq/MissedAllOpportunity.ql
ql/csharp/ql/src/Linq/MissedCastOpportunity.ql
ql/csharp/ql/src/Linq/MissedOfTypeOpportunity.ql
ql/csharp/ql/src/Linq/MissedSelectOpportunity.ql
ql/csharp/ql/src/Linq/MissedWhereOpportunity.ql
ql/csharp/ql/src/Linq/RedundantSelect.ql
ql/csharp/ql/src/Performance/StringBuilderInLoop.ql
ql/csharp/ql/src/Performance/StringConcatenationInLoop.ql
ql/csharp/ql/src/Performance/UseTryGetValue.ql
ql/csharp/ql/src/Useless code/DefaultToString.ql
ql/csharp/ql/src/Useless code/FutileConditional.ql
ql/csharp/ql/src/Useless code/IntGetHashCode.ql
ql/csharp/ql/src/Useless code/RedundantToStringCall.ql
ql/csharp/ql/src/Useless code/UnusedLabel.ql
6 changes: 3 additions & 3 deletions csharp/ql/src/API Abuse/CallToGCCollect.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
* @problem.severity warning
* @precision very-high
* @id cs/call-to-gc
* @tags efficiency
* maintainability
* quality
* @tags quality
* reliability
* performance
*/

import csharp
Expand Down
3 changes: 2 additions & 1 deletion csharp/ql/src/API Abuse/CallToObsoleteMethod.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
* @problem.severity warning
* @precision very-high
* @id cs/call-to-obsolete-method
* @tags changeability
* @tags quality
* maintainability
* changeability
* external/cwe/cwe-477
*/

Expand Down
2 changes: 1 addition & 1 deletion csharp/ql/src/API Abuse/ClassImplementsICloneable.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/class-implements-icloneable
* @tags reliability
* @tags quality
* maintainability
*/

Expand Down
6 changes: 3 additions & 3 deletions csharp/ql/src/API Abuse/FormatInvalid.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
* @problem.severity error
* @precision high
* @id cs/invalid-string-formatting
* @tags reliability
* maintainability
* quality
* @tags quality
* reliability
* correctness
*/

import csharp
Expand Down
7 changes: 4 additions & 3 deletions csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
* @problem.severity warning
* @precision high
* @id cs/local-not-disposed
* @tags efficiency
* maintainability
* quality
* @tags quality
* reliability
* correctness
* efficiency
* external/cwe/cwe-404
* external/cwe/cwe-459
* external/cwe/cwe-460
Expand Down
3 changes: 2 additions & 1 deletion csharp/ql/src/API Abuse/NullArgumentToEquals.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
* @problem.severity warning
* @precision high
* @id cs/null-argument-to-equals
* @tags reliability
* @tags quality
* reliability
* correctness
*/

Expand Down
4 changes: 3 additions & 1 deletion csharp/ql/src/ASP/BlockCodeResponseWrite.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/asp/response-write
* @tags maintainability
* @tags quality
* maintainability
* readability
* frameworks/asp.net
*/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
* @precision high
* @id cs/coupled-types
* @tags maintainability
* complexity
* modularity
*/

Expand Down
5 changes: 3 additions & 2 deletions csharp/ql/src/Bad Practices/CallsUnmanagedCode.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/call-to-unmanaged-code
* @tags reliability
* maintainability
* @tags quality
* reliability
* correctness
*/

import csharp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
* @problem.severity warning
* @precision very-high
* @id cs/catch-nullreferenceexception
* @tags reliability
* @tags quality
* reliability
* correctness
* error-handling
* external/cwe/cwe-395
*/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
* @problem.severity warning
* @precision very-high
* @id cs/constant-condition
* @tags maintainability
* @tags quality
* maintainability
* readability
* quality
* external/cwe/cwe-835
*/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
* @problem.severity recommendation
* @precision high
* @id cs/local-shadows-member
* @tags maintainability
* @tags quality
* maintainability
* readability
*/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/too-many-ref-parameters
* @tags testability
* @tags maintainability
* readability
* testability
*/

import csharp
Expand Down
5 changes: 3 additions & 2 deletions csharp/ql/src/Bad Practices/EmptyCatchBlock.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/empty-catch-block
* @tags reliability
* readability
* @tags quality
* reliability
* error-handling
* exceptions
* external/cwe/cwe-390
* external/cwe/cwe-391
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/expose-implementation
* @tags reliability
* @tags quality
* reliability
* correctness
* external/cwe/cwe-485
*/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
* @problem.severity warning
* @precision high
* @id cs/field-masks-base-field
* @tags reliability
* @tags quality
* maintainability
* readability
* naming
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
* @problem.severity recommendation
* @precision high
* @id cs/class-name-matches-base-class
* @tags maintainability
* @tags quality
* maintainability
* readability
* naming
*/
Expand Down
4 changes: 3 additions & 1 deletion csharp/ql/src/Bad Practices/PathCombine.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/path-combine
* @tags reliability
* @tags quality
* reliability
* correctness
*/

import csharp
Expand Down
5 changes: 3 additions & 2 deletions csharp/ql/src/Bad Practices/UnmanagedCodeCheck.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/unmanaged-code
* @tags reliability
* maintainability
* @tags quality
* reliability
* correctness
*/

import csharp
Expand Down
4 changes: 3 additions & 1 deletion csharp/ql/src/CSI/CompareIdenticalValues.ql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
* @problem.severity warning
* @precision high
* @id cs/comparison-of-identical-expressions
* @tags reliability
* @tags quality
* reliability
* correctness
*/

import csharp
Expand Down
4 changes: 2 additions & 2 deletions csharp/ql/src/CSI/NullAlways.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
* @problem.severity error
* @precision very-high
* @id cs/dereferenced-value-is-always-null
* @tags reliability
* @tags quality
* reliability
* correctness
* exceptions
* external/cwe/cwe-476
* quality
*/

import csharp
Expand Down
4 changes: 2 additions & 2 deletions csharp/ql/src/CSI/NullMaybe.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
* @problem.severity warning
* @precision high
* @id cs/dereferenced-value-may-be-null
* @tags reliability
* @tags quality
* reliability
* correctness
* exceptions
* external/cwe/cwe-476
* quality
*/

import csharp
Expand Down
2 changes: 1 addition & 1 deletion csharp/ql/src/Complexity/BlockWithTooManyStatements.ql
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
* @precision high
* @id cs/complex-block
* @tags maintainability
* testability
* complexity
* testability
*/

import csharp
Expand Down
3 changes: 2 additions & 1 deletion csharp/ql/src/Complexity/ComplexCondition.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/complex-condition
* @tags testability
* @tags maintainability
* readability
* testability
*/

import csharp
Expand Down
5 changes: 3 additions & 2 deletions csharp/ql/src/Concurrency/FutileSyncOnField.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
* @problem.severity error
* @precision high
* @id cs/unsafe-sync-on-field
* @tags reliability
* correctness
* @tags quality
* reliability
* concurrency
* correctness
* external/cwe/cwe-662
* external/cwe/cwe-366
*/
Expand Down
5 changes: 3 additions & 2 deletions csharp/ql/src/Concurrency/LockOrder.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
* @problem.severity error
* @precision high
* @id cs/inconsistent-lock-sequence
* @tags reliability
* correctness
* @tags quality
* reliability
* concurrency
* correctness
* external/cwe/cwe-662
*/

Expand Down
5 changes: 3 additions & 2 deletions csharp/ql/src/Concurrency/LockThis.ql
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
* @problem.severity warning
* @precision high
* @id cs/lock-this
* @tags reliability
* maintainability
* @tags quality
* reliability
* concurrency
* modularity
* external/cwe/cwe-662
*/
Expand Down
5 changes: 3 additions & 2 deletions csharp/ql/src/Concurrency/LockedWait.ql
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
* @problem.severity warning
* @precision high
* @id cs/locked-wait
* @tags reliability
* correctness
* @tags quality
* reliability
* concurrency
* correctness
* external/cwe/cwe-662
* external/cwe/cwe-833
*/
Expand Down
Loading