Merge branch 'main' into redsun82/rust-qltest-proc-macro

This commit is contained in:
Paolo Tranquilli
2025-06-18 10:32:42 +02:00
84 changed files with 283 additions and 130 deletions

View File

@@ -0,0 +1,4 @@
---
category: fix
---
* `resolveTypedefs` now properly resolves typedefs for `ArrayType`s.

View File

@@ -1589,6 +1589,11 @@ class ArrayType extends DerivedType {
* Holds if this array is a variable-length array (VLA).
*/
predicate isVla() { type_is_vla(underlyingElement(this)) }
override Type resolveTypedefs() {
result.(ArrayType).getBaseType() = this.getBaseType().resolveTypedefs() and
result.(ArrayType).getArraySize() = this.getArraySize()
}
}
/**

View File

@@ -0,0 +1,7 @@
typedef int int_t;
int_t g1[10];
int_t g2[2][4];
typedef float float_t;
float_t arr1[5];
float_t (*a_pointer)[10];

View File

@@ -0,0 +1,5 @@
| file://:0:0:0:0 | float_t[5] | file://:0:0:0:0 | float[5] | ArrayTypedefs.cpp:6:9:6:12 | definition of arr1 |
| file://:0:0:0:0 | float_t[10] | file://:0:0:0:0 | float[10] | ArrayTypedefs.cpp:7:11:7:19 | definition of a_pointer |
| file://:0:0:0:0 | int_t[2][4] | file://:0:0:0:0 | int[2][4] | ArrayTypedefs.cpp:3:7:3:8 | definition of g2 |
| file://:0:0:0:0 | int_t[4] | file://:0:0:0:0 | int[4] | ArrayTypedefs.cpp:3:7:3:8 | definition of g2 |
| file://:0:0:0:0 | int_t[10] | file://:0:0:0:0 | int[10] | ArrayTypedefs.cpp:2:7:2:8 | definition of g1 |

View File

@@ -0,0 +1,4 @@
import cpp
from ArrayType type
select type, type.resolveTypedefs(), type.getATypeNameUse()

View File

@@ -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

View File

@@ -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

View File

@@ -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
*/

View File

@@ -6,7 +6,7 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/class-implements-icloneable
* @tags reliability
* @tags quality
* maintainability
*/

View File

@@ -6,9 +6,9 @@
* @problem.severity error
* @precision high
* @id cs/invalid-string-formatting
* @tags reliability
* maintainability
* quality
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -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

View File

@@ -6,7 +6,8 @@
* @problem.severity warning
* @precision high
* @id cs/null-argument-to-equals
* @tags reliability
* @tags quality
* reliability
* correctness
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/asp/response-write
* @tags maintainability
* @tags quality
* maintainability
* readability
* frameworks/asp.net
*/

View File

@@ -7,6 +7,7 @@
* @precision high
* @id cs/coupled-types
* @tags maintainability
* complexity
* modularity
*/

View File

@@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/call-to-unmanaged-code
* @tags reliability
* maintainability
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -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
*/

View File

@@ -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
*/

View File

@@ -6,7 +6,8 @@
* @problem.severity recommendation
* @precision high
* @id cs/local-shadows-member
* @tags maintainability
* @tags quality
* maintainability
* readability
*/

View File

@@ -6,8 +6,9 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/too-many-ref-parameters
* @tags testability
* @tags maintainability
* readability
* testability
*/
import csharp

View File

@@ -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

View File

@@ -6,7 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/expose-implementation
* @tags reliability
* @tags quality
* reliability
* correctness
* external/cwe/cwe-485
*/

View File

@@ -7,7 +7,8 @@
* @problem.severity warning
* @precision high
* @id cs/field-masks-base-field
* @tags reliability
* @tags quality
* maintainability
* readability
* naming
*/

View File

@@ -5,7 +5,8 @@
* @problem.severity recommendation
* @precision high
* @id cs/class-name-matches-base-class
* @tags maintainability
* @tags quality
* maintainability
* readability
* naming
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/path-combine
* @tags reliability
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/unmanaged-code
* @tags reliability
* maintainability
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -7,7 +7,9 @@
* @problem.severity warning
* @precision high
* @id cs/comparison-of-identical-expressions
* @tags reliability
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -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

View File

@@ -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

View File

@@ -8,8 +8,8 @@
* @precision high
* @id cs/complex-block
* @tags maintainability
* testability
* complexity
* testability
*/
import csharp

View File

@@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/complex-condition
* @tags testability
* @tags maintainability
* readability
* testability
*/
import csharp

View File

@@ -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
*/

View File

@@ -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
*/

View File

@@ -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
*/

View File

@@ -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
*/

View File

@@ -5,8 +5,9 @@
* @kind problem
* @problem.severity warning
* @id cs/useless-assignment-to-local
* @tags maintainability
* quality
* @tags quality
* maintainability
* useless-code
* external/cwe/cwe-563
* @precision very-high
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/xmldoc/missing-summary
* @tags maintainability
* @tags quality
* maintainability
* readability
*/
import Documentation

View File

@@ -5,8 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/cast-of-this-to-type-parameter
* @tags reliability
* maintainability
* @tags quality
* reliability
* correctness
* language-features
*/

View File

@@ -6,8 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/catch-of-all-exceptions
* @tags reliability
* maintainability
* @tags quality
* reliability
* error-handling
* external/cwe/cwe-396
*/

View File

@@ -6,8 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/chained-type-tests
* @tags changeability
* maintainability
* @tags reliability
* performance
* changeability
* language-features
*/

View File

@@ -5,8 +5,10 @@
* @problem.severity warning
* @precision high
* @id cs/downcast-of-this
* @tags testability
* maintainability
* @tags quality
* reliability
* correctness
* testability
* language-features
*/

View File

@@ -5,8 +5,10 @@
* @problem.severity warning
* @precision high
* @id cs/type-test-of-this
* @tags testability
* maintainability
* @tags quality
* reliability
* correctness
* testability
* language-features
*/

View File

@@ -6,9 +6,10 @@
* @problem.severity recommendation
* @precision high
* @id cs/missed-readonly-modifier
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
* quality
*/
import csharp

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/missed-ternary-operator
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/missed-using-statement
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/nested-if-statements
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -6,9 +6,10 @@
* @problem.severity warning
* @precision very-high
* @id cs/rethrown-exception-variable
* @tags maintainability
* @tags quality
* reliability
* error-handling
* language-features
* exceptions
*/
import csharp

View File

@@ -5,8 +5,9 @@
* @kind problem
* @problem.severity recommendation
* @precision high
* @tags readability
* @tags quality
* maintainability
* readability
*/
import csharp

View File

@@ -6,8 +6,9 @@
* @problem.severity warning
* @precision high
* @id cs/unused-property-value
* @tags reliability
* maintainability
* @tags quality
* reliability
* correctness
* language-features
*/

View File

@@ -6,11 +6,10 @@
* @problem.severity error
* @precision high
* @id cs/index-out-of-bounds
* @tags reliability
* @tags quality
* reliability
* correctness
* logic
* quality
* external/cwe/cwe-193
* external/cwe/cwe-193
*/
import csharp

View File

@@ -5,10 +5,9 @@
* @problem.severity warning
* @precision very-high
* @id cs/test-for-negative-container-size
* @tags reliability
* @tags quality
* reliability
* correctness
* logic
* quality
*/
import csharp

View File

@@ -5,9 +5,9 @@
* @problem.severity error
* @precision high
* @id cs/empty-collection
* @tags reliability
* maintainability
* useless-code
* @tags quality
* reliability
* correctness
* external/cwe/cwe-561
*/

View File

@@ -5,7 +5,8 @@
* @problem.severity error
* @precision high
* @id cs/unused-collection
* @tags maintainability
* @tags quality
* maintainability
* useless-code
* external/cwe/cwe-561
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity warning
* @precision high
* @id cs/constant-comparison
* @tags correctness
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -6,10 +6,9 @@
* @problem.severity error
* @precision high
* @id cs/non-short-circuit
* @tags reliability
* @tags quality
* reliability
* correctness
* logic
* quality
* external/cwe/cwe-480
* external/cwe/cwe-691
*/

View File

@@ -7,9 +7,9 @@
* @problem.severity warning
* @precision high
* @id cs/equality-on-floats
* @tags reliability
* @tags quality
* reliability
* correctness
* quality
*/
import csharp

View File

@@ -5,7 +5,8 @@
* @problem.severity recommendation
* @precision high
* @id cs/equals-on-arrays
* @tags reliability
* @tags quality
* reliability
* correctness
*/

View File

@@ -5,9 +5,9 @@
* @problem.severity warning
* @precision high
* @id cs/gethashcode-is-not-defined
* @tags reliability
* maintainability
* quality
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -5,9 +5,9 @@
* @problem.severity error
* @precision high
* @id cs/impossible-array-cast
* @tags reliability
* @tags quality
* reliability
* correctness
* logic
*/
import csharp

View File

@@ -5,7 +5,8 @@
* @problem.severity error
* @precision high
* @id cs/equals-on-unrelated-types
* @tags reliability
* @tags quality
* reliability
* correctness
*/

View File

@@ -6,9 +6,9 @@
* @problem.severity warning
* @precision high
* @id cs/nested-loops-with-same-variable
* @tags maintainability
* @tags quality
* reliability
* correctness
* logic
*/
import csharp

View File

@@ -6,7 +6,8 @@
* @problem.severity error
* @precision high
* @id cs/loss-of-precision
* @tags reliability
* @tags quality
* reliability
* correctness
* external/cwe/cwe-190
* external/cwe/cwe-192

View File

@@ -6,8 +6,9 @@
* @problem.severity error
* @precision high
* @id cs/recursive-equals-call
* @tags reliability
* maintainability
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -5,9 +5,9 @@
* @problem.severity error
* @precision high
* @id cs/reference-equality-on-valuetypes
* @tags reliability
* @tags quality
* reliability
* correctness
* quality
* external/cwe/cwe-595
*/

View File

@@ -5,10 +5,9 @@
* @problem.severity error
* @precision high
* @id cs/self-assignment
* @tags reliability
* @tags quality
* reliability
* correctness
* logic
* quality
*/
import csharp

View File

@@ -6,8 +6,9 @@
* @problem.severity warning
* @precision high
* @id cs/empty-block
* @tags reliability
* readability
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -6,9 +6,10 @@
* @problem.severity warning
* @precision high
* @id cs/empty-lock-statement
* @tags changeability
* readability
* @tags quality
* reliability
* concurrency
* changeability
* language-features
* external/cwe/cwe-585
*/

View File

@@ -7,7 +7,7 @@
* @problem.severity recommendation
* @precision high
* @id cs/static-field-written-by-instance
* @tags reliability
* @tags quality
* maintainability
* modularity
*/

View File

@@ -6,7 +6,9 @@
* @problem.severity error
* @precision high
* @id cs/stringbuilder-initialized-with-character
* @tags maintainability
* @tags quality
* reliability
* correctness
*/
import semmle.code.csharp.frameworks.system.Text

View File

@@ -5,9 +5,9 @@
* @problem.severity warning
* @precision high
* @id cs/unchecked-cast-in-equals
* @tags reliability
* maintainability
* quality
* @tags quality
* reliability
* correctness
*/
import csharp

View File

@@ -6,7 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/linq/missed-all
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -6,7 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/linq/missed-cast
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -6,7 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/linq/missed-oftype
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -6,7 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/linq/missed-select
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/linq/missed-where
* @tags maintainability
* @tags quality
* maintainability
* readability
* language-features
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity warning
* @precision very-high
* @id cs/linq/useless-select
* @tags maintainability
* @tags quality
* maintainability
* useless-code
* language-features
* external/cwe/cwe-561
*/

View File

@@ -5,7 +5,9 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/stringbuilder-creation-in-loop
* @tags efficiency
* @tags quality
* reliability
* performance
*/
import csharp

View File

@@ -5,9 +5,9 @@
* @problem.severity recommendation
* @precision very-high
* @id cs/string-concatenation-in-loop
* @tags efficiency
* maintainability
* quality
* @tags quality
* reliability
* performance
*/
import csharp

View File

@@ -6,9 +6,9 @@
* @problem.severity recommendation
* @precision high
* @id cs/inefficient-containskey
* @tags maintainability
* efficiency
* quality
* @tags quality
* reliability
* performance
*/
import csharp

View File

@@ -6,9 +6,9 @@
* @problem.severity warning
* @precision very-high
* @id cs/call-to-object-tostring
* @tags reliability
* maintainability
* quality
* @tags quality
* reliability
* correctness
*/
import DefaultToStringQuery

View File

@@ -5,8 +5,10 @@
* @problem.severity warning
* @precision very-high
* @id cs/useless-if-statement
* @tags reliability
* @tags quality
* maintainability
* readability
* useless-code
*/
import csharp

View File

@@ -6,9 +6,10 @@
* @problem.severity recommendation
* @precision high
* @id cs/useless-gethashcode-call
* @tags readability
* @tags quality
* maintainability
* readability
* useless-code
* quality
*/
import csharp

View File

@@ -6,7 +6,8 @@
* @problem.severity recommendation
* @precision high
* @id cs/useless-tostring-call
* @tags maintainability
* @tags quality
* maintainability
* useless-code
*/

View File

@@ -5,7 +5,8 @@
* @problem.severity warning
* @precision high
* @id cs/unused-label
* @tags maintainability
* @tags quality
* maintainability
* useless-code
*/

View File

@@ -0,0 +1,4 @@
---
category: queryMetadata
---
* Query metadata tags have been systematically updated for many C# queries. Primary categorization as either `reliability` or `maintainability`, and relevant sub-category tags such as `readability`, `useless-code`, `complexity`, `performance`, `correctness`, `error-handling`, and `concurrency`. Aligns with the established [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags).