From 17735a9a432c9e1931bd426db1ba5e89a07ce527 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 5 Sep 2025 13:01:33 +0200 Subject: [PATCH 1/9] C#: Add queries medium precision queries to the code-quality-extended suite (and update tags). --- csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql | 5 +++-- csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql | 6 ++++-- csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql | 5 +++-- csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql | 5 +++-- csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql | 3 ++- csharp/ql/src/API Abuse/NonOverridingMethod.ql | 5 +++-- csharp/ql/src/ASP/SplitControlStructure.ql | 5 +++-- csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql | 6 +++--- csharp/ql/src/Bad Practices/Comments/TodoComments.ql | 3 ++- csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql | 5 +++-- csharp/ql/src/Bad Practices/ErroneousClassCompare.ql | 3 ++- .../Implementation Hiding/AbstractToConcreteCollection.ql | 6 +++--- .../src/Bad Practices/Implementation Hiding/StaticArray.ql | 6 +++--- .../Naming Conventions/ConfusingMethodNames.ql | 4 ++-- .../Naming Conventions/ConfusingOverridesNames.ql | 5 +++-- .../Bad Practices/Naming Conventions/ControlNamePrefixes.ql | 4 +++- .../Bad Practices/Naming Conventions/DefaultControlNames.ql | 5 +++-- csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql | 4 +++- .../Bad Practices/VirtualCallInConstructorOrDestructor.ql | 6 +++--- csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql | 4 +++- csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql | 3 ++- csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql | 4 +++- csharp/ql/src/Documentation/XmldocExtraParam.ql | 4 +++- csharp/ql/src/Documentation/XmldocExtraTypeParam.ql | 4 +++- csharp/ql/src/Documentation/XmldocMissing.ql | 4 +++- csharp/ql/src/Language Abuse/ForeachCapture.ql | 6 +++--- csharp/ql/src/Language Abuse/UselessCastToSelf.ql | 5 +++-- csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql | 5 +++-- .../src/Language Abuse/UselessNullCoalescingExpression.ql | 5 +++-- csharp/ql/src/Language Abuse/UselessTypeTest.ql | 5 +++-- csharp/ql/src/Language Abuse/UselessUpcast.ql | 5 +++-- csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql | 4 ++-- csharp/ql/src/Likely Bugs/EqualsUsesAs.ql | 5 +++-- csharp/ql/src/Likely Bugs/EqualsUsesIs.ql | 5 +++-- csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql | 5 +++-- .../ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql | 3 ++- csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql | 5 +++-- csharp/ql/src/Likely Bugs/ObjectComparison.ql | 3 ++- csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql | 5 +++-- csharp/ql/src/Likely Bugs/Statements/UseBraces.ql | 5 +++-- csharp/ql/src/Linq/BadMultipleIteration.ql | 6 +++--- csharp/ql/src/Useless code/PointlessForwardingMethod.ql | 3 ++- 42 files changed, 118 insertions(+), 76 deletions(-) diff --git a/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql b/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql index 0539cd27a667..dc6ce132c9a6 100644 --- a/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql +++ b/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql @@ -7,8 +7,9 @@ * @problem.severity error * @precision medium * @id cs/class-missing-equals - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql b/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql index 3349ee932510..989d2ecd499b 100644 --- a/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql +++ b/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql @@ -7,8 +7,10 @@ * @problem.severity warning * @precision medium * @id cs/dispose-not-called-on-throw - * @tags efficiency - * maintainability + * @tags quality + * reliability + * error-handling + * performance * external/cwe/cwe-404 * external/cwe/cwe-459 * external/cwe/cwe-460 diff --git a/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql b/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql index 569716b3bc0a..6ad43aad3a11 100644 --- a/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql +++ b/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision medium * @id cs/inconsistent-equals-and-gethashcode - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-581 */ diff --git a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql index 6f6c17566bfd..63d947e02c7d 100644 --- a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql +++ b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/wrong-compareto-signature - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql b/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql index 7103cae4906a..721b30bcf8c9 100644 --- a/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql +++ b/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql @@ -5,7 +5,8 @@ * @problem.severity warning * @precision medium * @id cs/wrong-equals-signature - * @tags reliability + * @tags quality + * reliability * maintainability */ diff --git a/csharp/ql/src/API Abuse/NonOverridingMethod.ql b/csharp/ql/src/API Abuse/NonOverridingMethod.ql index 598ce670d9f4..bff2c17b3068 100644 --- a/csharp/ql/src/API Abuse/NonOverridingMethod.ql +++ b/csharp/ql/src/API Abuse/NonOverridingMethod.ql @@ -5,9 +5,10 @@ * @problem.severity recommendation * @precision medium * @id cs/nonoverriding-method - * @tags reliability + * @tags quality + * reliability + * correctness * readability - * naming */ import csharp diff --git a/csharp/ql/src/ASP/SplitControlStructure.ql b/csharp/ql/src/ASP/SplitControlStructure.ql index de7d44ccc1ea..701433c05608 100644 --- a/csharp/ql/src/ASP/SplitControlStructure.ql +++ b/csharp/ql/src/ASP/SplitControlStructure.ql @@ -5,8 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/asp/split-control-structure - * @tags maintainability - * frameworks/asp.net + * @tags quality + * maintainability + * readability */ import semmle.code.asp.AspNet diff --git a/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql b/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql index c079cc16a2ab..9da9e789e0c9 100644 --- a/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql +++ b/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql @@ -5,9 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/commented-out-code - * @tags maintainability - * statistical - * non-attributable + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/Comments/TodoComments.ql b/csharp/ql/src/Bad Practices/Comments/TodoComments.ql index 751c064bccf6..50104f55eb76 100644 --- a/csharp/ql/src/Bad Practices/Comments/TodoComments.ql +++ b/csharp/ql/src/Bad Practices/Comments/TodoComments.ql @@ -6,7 +6,8 @@ * @problem.severity recommendation * @precision medium * @id cs/todo-comment - * @tags maintainability + * @tags quality + * maintainability * external/cwe/cwe-546 */ diff --git a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql index 896b78046629..8ae848feaebb 100644 --- a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql +++ b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql @@ -6,8 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/constants-only-interface - * @tags maintainability - * modularity + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql b/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql index 134d612979b5..658484c2ba73 100644 --- a/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql +++ b/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql @@ -5,7 +5,8 @@ * @problem.severity warning * @precision medium * @id cs/class-name-comparison - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-486 */ diff --git a/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql b/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql index 4becd8b58c35..80b108d2736e 100644 --- a/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql +++ b/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql @@ -7,9 +7,9 @@ * @problem.severity warning * @precision medium * @id cs/cast-from-abstract-to-concrete-collection - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness * external/cwe/cwe-485 */ diff --git a/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql b/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql index 0d00adb50519..086182b697ca 100644 --- a/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql +++ b/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql @@ -5,9 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/static-array - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness * external/cwe/cwe-582 */ diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql index 5e3f39d7a87a..199647b5f1f7 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql @@ -5,9 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/confusing-method-name - * @tags maintainability + * @tags quality + * maintainability * readability - * naming */ import csharp diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql index ae0853897298..1ef0ccad22a5 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql @@ -6,9 +6,10 @@ * @problem.severity recommendation * @precision medium * @id cs/confusing-override-name - * @tags reliability + * @tags quality + * maintainability * readability - * naming + * correctness */ import csharp diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql b/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql index 550385d68286..7e80d4334bd4 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/web/unprefixed-control-name - * @tags maintainability + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql b/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql index 92aa5e9e0c2d..e12bd2e6af30 100644 --- a/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql +++ b/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql @@ -6,8 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/forms/default-control-name - * @tags readability - * naming + * @tags quality + * maintainability + * readability */ import csharp diff --git a/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql b/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql index a5a9418bb157..b9a45126d3c6 100644 --- a/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql +++ b/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/console-output - * @tags maintainability + * @tags quality + * reliability + * error-handling */ import csharp diff --git a/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql b/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql index d754f1a03c59..a29b39d33a10 100644 --- a/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql +++ b/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql @@ -6,9 +6,9 @@ * @precision medium * @id cs/virtual-call-in-constructor * @alternate-ids cs/virtual-call-in-constructor-or-destructor - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql b/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql index 9c8bb72708cf..569aa1e53663 100644 --- a/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql +++ b/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql @@ -6,8 +6,10 @@ * @problem.severity error * @precision medium * @id cs/unsynchronized-getter - * @tags correctness + * @tags quality + * reliability * concurrency + * correctness * external/cwe/cwe-662 */ diff --git a/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql b/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql index 97b4fbdba8ee..db674d9c5c3f 100644 --- a/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql +++ b/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision medium * @id cs/unsafe-double-checked-lock - * @tags correctness + * @tags quality + * reliability * concurrency * external/cwe/cwe-609 */ diff --git a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql index 1ce94edee3d2..150ae78ae090 100644 --- a/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql +++ b/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql @@ -6,7 +6,9 @@ * @problem.severity error * @precision medium * @id cs/unsynchronized-static-access - * @tags concurrency + * @tags quality + * reliability + * concurrency * external/cwe/cwe-362 * external/cwe/cwe-567 */ diff --git a/csharp/ql/src/Documentation/XmldocExtraParam.ql b/csharp/ql/src/Documentation/XmldocExtraParam.ql index a745edfb6d8f..5c8536858530 100644 --- a/csharp/ql/src/Documentation/XmldocExtraParam.ql +++ b/csharp/ql/src/Documentation/XmldocExtraParam.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/xmldoc/unknown-parameter - * @tags maintainability + * @tags quality + * maintainability + * readability */ import Documentation diff --git a/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql b/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql index 76c2039920dd..90b51569c3d4 100644 --- a/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql +++ b/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/xmldoc/unknown-type-parameter - * @tags maintainability + * @tags quality + * maintainability + * readability */ import Documentation diff --git a/csharp/ql/src/Documentation/XmldocMissing.ql b/csharp/ql/src/Documentation/XmldocMissing.ql index e0e05c4893bf..4ac6d86f9625 100644 --- a/csharp/ql/src/Documentation/XmldocMissing.ql +++ b/csharp/ql/src/Documentation/XmldocMissing.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision medium * @id cs/xmldoc/missing-xmldoc - * @tags maintainability + * @tags quality + * maintainability + * readability */ import Documentation diff --git a/csharp/ql/src/Language Abuse/ForeachCapture.ql b/csharp/ql/src/Language Abuse/ForeachCapture.ql index 2f8346817a6f..f04d99b93177 100644 --- a/csharp/ql/src/Language Abuse/ForeachCapture.ql +++ b/csharp/ql/src/Language Abuse/ForeachCapture.ql @@ -7,9 +7,9 @@ * @problem.severity recommendation * @precision medium * @id cs/captured-foreach-variable - * @tags portability - * maintainability - * language-features + * @tags quality + * reliability + * correctness * external/cwe/cwe-758 */ diff --git a/csharp/ql/src/Language Abuse/UselessCastToSelf.ql b/csharp/ql/src/Language Abuse/UselessCastToSelf.ql index a182009dfc2d..d1a08e1db1c5 100644 --- a/csharp/ql/src/Language Abuse/UselessCastToSelf.ql +++ b/csharp/ql/src/Language Abuse/UselessCastToSelf.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/useless-cast-to-self - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql b/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql index 6a82c40d8404..6b6d710bdf04 100644 --- a/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql +++ b/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql @@ -5,8 +5,9 @@ * @problem.severity recommendation * @precision medium * @id cs/useless-is-before-as - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql b/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql index ec73df23741c..7790fc5ba4ab 100644 --- a/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql +++ b/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql @@ -6,8 +6,9 @@ * @problem.severity error * @precision medium * @id cs/coalesce-of-identical-expressions - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessTypeTest.ql b/csharp/ql/src/Language Abuse/UselessTypeTest.ql index 11e7df050471..f89ffbdd637f 100644 --- a/csharp/ql/src/Language Abuse/UselessTypeTest.ql +++ b/csharp/ql/src/Language Abuse/UselessTypeTest.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/useless-type-test - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Language Abuse/UselessUpcast.ql b/csharp/ql/src/Language Abuse/UselessUpcast.ql index a06dc60cc7ab..81ff2cfe253c 100644 --- a/csharp/ql/src/Language Abuse/UselessUpcast.ql +++ b/csharp/ql/src/Language Abuse/UselessUpcast.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/useless-upcast - * @tags maintainability - * language-features + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 */ diff --git a/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql b/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql index 2efac6773f72..75f152b38de1 100644 --- a/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql +++ b/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql @@ -5,9 +5,9 @@ * @problem.severity error * @precision medium * @id cs/invalid-dynamic-call - * @tags reliability + * @tags quality + * reliability * correctness - * logic * external/cwe/cwe-628 */ diff --git a/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql b/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql index 5c11e10c36b1..12a0802aa9f1 100644 --- a/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql +++ b/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/equals-uses-as - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql b/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql index 775a295a6cb0..1c209af4dfb4 100644 --- a/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql +++ b/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/equals-uses-is - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql b/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql index 2c4e69cb2060..5209cf6438bf 100644 --- a/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql +++ b/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/inconsistent-compareto-and-equals - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import semmle.code.csharp.frameworks.System diff --git a/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql b/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql index 8da3a910b0da..72cc9b1908a5 100644 --- a/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql +++ b/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/unsafe-year-construction - * @tags date-time + * @tags quality * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql index a188fbe1b8ee..c8df36bf7bf2 100644 --- a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql +++ b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity warning * @precision medium - * @tags reliability - * date-time + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/ObjectComparison.ql b/csharp/ql/src/Likely Bugs/ObjectComparison.ql index eec1961fbf50..5479ff69b34c 100644 --- a/csharp/ql/src/Likely Bugs/ObjectComparison.ql +++ b/csharp/ql/src/Likely Bugs/ObjectComparison.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision medium * @id cs/reference-equality-with-object - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-595 */ diff --git a/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql b/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql index fe01683578f0..2e4764965c96 100644 --- a/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql +++ b/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql @@ -5,8 +5,9 @@ * @problem.severity error * @precision medium * @id cs/recursive-operator-equals-call - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import csharp diff --git a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql index ba64dc1bf949..f639b060ac17 100644 --- a/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql +++ b/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql @@ -6,9 +6,10 @@ * @problem.severity warning * @precision medium * @id cs/misleading-indentation - * @tags changeability + * @tags quality + * maintainability + * readability * correctness - * logic */ import csharp diff --git a/csharp/ql/src/Linq/BadMultipleIteration.ql b/csharp/ql/src/Linq/BadMultipleIteration.ql index e07de273e63d..8146bbf167d8 100644 --- a/csharp/ql/src/Linq/BadMultipleIteration.ql +++ b/csharp/ql/src/Linq/BadMultipleIteration.ql @@ -5,9 +5,9 @@ * @problem.severity warning * @precision medium * @id cs/linq/inconsistent-enumeration - * @tags reliability - * maintainability - * language-features + * @tags quality + * reliability + * correctness * external/cwe/cwe-834 */ diff --git a/csharp/ql/src/Useless code/PointlessForwardingMethod.ql b/csharp/ql/src/Useless code/PointlessForwardingMethod.ql index 723c5b190a57..24a184b3274e 100644 --- a/csharp/ql/src/Useless code/PointlessForwardingMethod.ql +++ b/csharp/ql/src/Useless code/PointlessForwardingMethod.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision medium * @id cs/useless-forwarding-method - * @tags maintainability + * @tags quality + * maintainability * useless-code */ From 906e9de5eebf117a1c098696145738a62be1fee1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 28 Aug 2025 12:35:01 +0200 Subject: [PATCH 2/9] C#: Update query-suite integration tests expected output. --- .../csharp-code-quality-extended.qls.expected | 42 +++++++++++++++++++ .../query-suite/not_included_in_qls.expected | 17 -------- 2 files changed, 42 insertions(+), 17 deletions(-) diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected index 53810418624d..d07c4c620aa7 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected @@ -1,20 +1,39 @@ ql/csharp/ql/src/API Abuse/CallToGCCollect.ql ql/csharp/ql/src/API Abuse/CallToObsoleteMethod.ql +ql/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql ql/csharp/ql/src/API Abuse/ClassImplementsICloneable.ql +ql/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql ql/csharp/ql/src/API Abuse/FormatInvalid.ql +ql/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql +ql/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql +ql/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql ql/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql +ql/csharp/ql/src/API Abuse/NonOverridingMethod.ql ql/csharp/ql/src/API Abuse/NullArgumentToEquals.ql ql/csharp/ql/src/ASP/BlockCodeResponseWrite.ql +ql/csharp/ql/src/ASP/SplitControlStructure.ql ql/csharp/ql/src/Bad Practices/CallsUnmanagedCode.ql ql/csharp/ql/src/Bad Practices/CatchOfNullReferenceException.ql +ql/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql +ql/csharp/ql/src/Bad Practices/Comments/TodoComments.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/Declarations/NoConstantsOnly.ql ql/csharp/ql/src/Bad Practices/EmptyCatchBlock.ql +ql/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql +ql/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql ql/csharp/ql/src/Bad Practices/Implementation Hiding/ExposeRepresentation.ql +ql/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql +ql/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.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/Bad Practices/UseOfSystemOutputStream.ql +ql/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql ql/csharp/ql/src/CSI/CompareIdenticalValues.ql ql/csharp/ql/src/CSI/NullAlways.ql ql/csharp/ql/src/CSI/NullMaybe.ql @@ -22,12 +41,19 @@ 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/Concurrency/SynchSetUnsynchGet.ql +ql/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql +ql/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql +ql/csharp/ql/src/Documentation/XmldocExtraParam.ql +ql/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql +ql/csharp/ql/src/Documentation/XmldocMissing.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/ForeachCapture.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 @@ -35,27 +61,42 @@ 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/Language Abuse/UselessCastToSelf.ql +ql/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql +ql/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql +ql/csharp/ql/src/Language Abuse/UselessTypeTest.ql +ql/csharp/ql/src/Language Abuse/UselessUpcast.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/Dynamic/BadDynamicCall.ql ql/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql ql/csharp/ql/src/Likely Bugs/EqualsArray.ql +ql/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql +ql/csharp/ql/src/Likely Bugs/EqualsUsesIs.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/InconsistentCompareTo.ql +ql/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql +ql/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql ql/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql +ql/csharp/ql/src/Likely Bugs/ObjectComparison.ql ql/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql ql/csharp/ql/src/Likely Bugs/RecursiveEquals.ql +ql/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.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/Statements/UseBraces.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/BadMultipleIteration.ql ql/csharp/ql/src/Linq/MissedAllOpportunity.ql ql/csharp/ql/src/Linq/MissedCastOpportunity.ql ql/csharp/ql/src/Linq/MissedOfTypeOpportunity.ql @@ -68,5 +109,6 @@ 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/PointlessForwardingMethod.ql ql/csharp/ql/src/Useless code/RedundantToStringCall.ql ql/csharp/ql/src/Useless code/UnusedLabel.ql diff --git a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected index dff6574dddd0..310fb74bed62 100644 --- a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected @@ -1,45 +1,29 @@ ql/csharp/ql/src/API Abuse/MissingDisposeCall.ql ql/csharp/ql/src/API Abuse/MissingDisposeMethod.ql -ql/csharp/ql/src/API Abuse/NonOverridingMethod.ql ql/csharp/ql/src/API Abuse/UncheckedReturnValue.ql ql/csharp/ql/src/ASP/ComplexInlineCode.ql ql/csharp/ql/src/ASP/NonInternationalizedText.ql -ql/csharp/ql/src/ASP/SplitControlStructure.ql ql/csharp/ql/src/AlertSuppression.ql ql/csharp/ql/src/Architecture/Dependencies/MutualDependency.ql ql/csharp/ql/src/Architecture/Refactoring Opportunities/FeatureEnvy.ql -ql/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql -ql/csharp/ql/src/Bad Practices/Comments/TodoComments.ql ql/csharp/ql/src/Bad Practices/Declarations/EmptyInterface.ql -ql/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql -ql/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql ql/csharp/ql/src/Bad Practices/LeftoverDebugCode.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicConstantsNumbers.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicConstantsString.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicNumbersUseConstant.ql ql/csharp/ql/src/Bad Practices/Magic Constants/MagicStringsUseConstant.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql ql/csharp/ql/src/Bad Practices/Naming Conventions/ConstantNaming.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql -ql/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql ql/csharp/ql/src/Bad Practices/Naming Conventions/VariableNameTooShort.ql ql/csharp/ql/src/Bad Practices/UseOfHtmlInputHidden.ql -ql/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql ql/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql ql/csharp/ql/src/Dead Code/DeadRefTypes.ql ql/csharp/ql/src/Dead Code/NonAssignedFields.ql ql/csharp/ql/src/Dead Code/UnusedField.ql ql/csharp/ql/src/Dead Code/UnusedMethod.ql -ql/csharp/ql/src/Documentation/XmldocExtraParam.ql -ql/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql -ql/csharp/ql/src/Documentation/XmldocMissing.ql ql/csharp/ql/src/Documentation/XmldocMissingException.ql ql/csharp/ql/src/Documentation/XmldocMissingParam.ql ql/csharp/ql/src/Documentation/XmldocMissingReturn.ql ql/csharp/ql/src/Documentation/XmldocMissingTypeParam.ql -ql/csharp/ql/src/Language Abuse/ForeachCapture.ql -ql/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql ql/csharp/ql/src/Likely Bugs/BadCheckOdd.ql ql/csharp/ql/src/Likely Bugs/RandomUsedOnce.ql ql/csharp/ql/src/Metrics/Callables/CCyclomaticComplexity.ql @@ -93,7 +77,6 @@ ql/csharp/ql/src/Security Features/CWE-611/UseXmlSecureResolver.ql ql/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql ql/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql ql/csharp/ql/src/Security Features/CWE-838/InappropriateEncoding.ql -ql/csharp/ql/src/Useless code/PointlessForwardingMethod.ql ql/csharp/ql/src/definitions.ql ql/csharp/ql/src/experimental/CWE-099/TaintedWebClient.ql ql/csharp/ql/src/experimental/CWE-918/RequestForgery.ql From c9a761f2022e3b10663959cff0b02bc69d03ff7e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 8 Sep 2025 09:00:34 +0200 Subject: [PATCH 3/9] C#: Remove the cs/xmldoc/missing-xmldoc from the code-quality-extended. --- .../query-suite/csharp-code-quality-extended.qls.expected | 1 - .../posix/query-suite/not_included_in_qls.expected | 1 + csharp/ql/src/Documentation/XmldocMissing.ql | 3 +-- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected index d07c4c620aa7..b3015b0838a4 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected @@ -47,7 +47,6 @@ ql/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql ql/csharp/ql/src/Documentation/XmldocExtraParam.ql ql/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql -ql/csharp/ql/src/Documentation/XmldocMissing.ql ql/csharp/ql/src/Documentation/XmldocMissingSummary.ql ql/csharp/ql/src/Language Abuse/CastThisToTypeParameter.ql ql/csharp/ql/src/Language Abuse/CatchOfGenericException.ql diff --git a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected index 310fb74bed62..8dac7e45fce4 100644 --- a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected @@ -20,6 +20,7 @@ ql/csharp/ql/src/Dead Code/DeadRefTypes.ql ql/csharp/ql/src/Dead Code/NonAssignedFields.ql ql/csharp/ql/src/Dead Code/UnusedField.ql ql/csharp/ql/src/Dead Code/UnusedMethod.ql +ql/csharp/ql/src/Documentation/XmldocMissing.ql ql/csharp/ql/src/Documentation/XmldocMissingException.ql ql/csharp/ql/src/Documentation/XmldocMissingParam.ql ql/csharp/ql/src/Documentation/XmldocMissingReturn.ql diff --git a/csharp/ql/src/Documentation/XmldocMissing.ql b/csharp/ql/src/Documentation/XmldocMissing.ql index 4ac6d86f9625..237e5224120c 100644 --- a/csharp/ql/src/Documentation/XmldocMissing.ql +++ b/csharp/ql/src/Documentation/XmldocMissing.ql @@ -6,8 +6,7 @@ * @problem.severity recommendation * @precision medium * @id cs/xmldoc/missing-xmldoc - * @tags quality - * maintainability + * @tags maintainability * readability */ From 47873c20de4e27587f682cfdb7c937acc32e6698 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 8 Sep 2025 10:58:00 +0200 Subject: [PATCH 4/9] C#: Fix incorrect tagging. --- csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql b/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql index 721b30bcf8c9..5367b0ac6049 100644 --- a/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql +++ b/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql @@ -7,7 +7,7 @@ * @id cs/wrong-equals-signature * @tags quality * reliability - * maintainability + * correctness */ import csharp From cdd379113eb5676e059af988a04c8a374b921be7 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Sep 2025 13:45:02 +0200 Subject: [PATCH 5/9] C#: Remove cs/captured-foreach-variable from the code-quality-extended suite. --- csharp/ql/src/Language Abuse/ForeachCapture.ql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/csharp/ql/src/Language Abuse/ForeachCapture.ql b/csharp/ql/src/Language Abuse/ForeachCapture.ql index f04d99b93177..03f1f99a044c 100644 --- a/csharp/ql/src/Language Abuse/ForeachCapture.ql +++ b/csharp/ql/src/Language Abuse/ForeachCapture.ql @@ -7,8 +7,7 @@ * @problem.severity recommendation * @precision medium * @id cs/captured-foreach-variable - * @tags quality - * reliability + * @tags reliability * correctness * external/cwe/cwe-758 */ From 0ce0e834ed41a7522c03f358f757987a2849e929 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 10 Sep 2025 13:45:29 +0200 Subject: [PATCH 6/9] C#: Update integration tests expected output. --- .../posix/query-suite/csharp-code-quality-extended.qls.expected | 1 - .../posix/query-suite/not_included_in_qls.expected | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected index b3015b0838a4..f4128abf3213 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected @@ -52,7 +52,6 @@ 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/ForeachCapture.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 diff --git a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected index 8dac7e45fce4..2d923ab8ff7d 100644 --- a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected @@ -25,6 +25,7 @@ ql/csharp/ql/src/Documentation/XmldocMissingException.ql ql/csharp/ql/src/Documentation/XmldocMissingParam.ql ql/csharp/ql/src/Documentation/XmldocMissingReturn.ql ql/csharp/ql/src/Documentation/XmldocMissingTypeParam.ql +ql/csharp/ql/src/Language Abuse/ForeachCapture.ql ql/csharp/ql/src/Likely Bugs/BadCheckOdd.ql ql/csharp/ql/src/Likely Bugs/RandomUsedOnce.ql ql/csharp/ql/src/Metrics/Callables/CCyclomaticComplexity.ql From 98a7cd24c0c1f5621a560de3d1467553b2f4ca65 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Sep 2025 08:56:57 +0200 Subject: [PATCH 7/9] C#: Remove all cs/xmldoc/* queries from the code-quality-extended suite. --- csharp/ql/src/Documentation/XmldocExtraParam.ql | 3 +-- csharp/ql/src/Documentation/XmldocExtraTypeParam.ql | 3 +-- csharp/ql/src/Documentation/XmldocMissingSummary.ql | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/csharp/ql/src/Documentation/XmldocExtraParam.ql b/csharp/ql/src/Documentation/XmldocExtraParam.ql index 5c8536858530..a7ff7eaec70c 100644 --- a/csharp/ql/src/Documentation/XmldocExtraParam.ql +++ b/csharp/ql/src/Documentation/XmldocExtraParam.ql @@ -6,8 +6,7 @@ * @problem.severity recommendation * @precision medium * @id cs/xmldoc/unknown-parameter - * @tags quality - * maintainability + * @tags maintainability * readability */ diff --git a/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql b/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql index 90b51569c3d4..60ea1dd5a96d 100644 --- a/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql +++ b/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql @@ -6,8 +6,7 @@ * @problem.severity recommendation * @precision medium * @id cs/xmldoc/unknown-type-parameter - * @tags quality - * maintainability + * @tags maintainability * readability */ diff --git a/csharp/ql/src/Documentation/XmldocMissingSummary.ql b/csharp/ql/src/Documentation/XmldocMissingSummary.ql index 43b76d38017a..5d7d9c931adf 100644 --- a/csharp/ql/src/Documentation/XmldocMissingSummary.ql +++ b/csharp/ql/src/Documentation/XmldocMissingSummary.ql @@ -5,8 +5,7 @@ * @problem.severity recommendation * @precision high * @id cs/xmldoc/missing-summary - * @tags quality - * maintainability + * @tags maintainability * readability */ From f9cecfb666785fe62213ad19a108f8f62f58e9b1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 11 Sep 2025 09:00:00 +0200 Subject: [PATCH 8/9] C#: Update integration test expected output. --- .../query-suite/csharp-code-quality-extended.qls.expected | 3 --- .../posix/query-suite/csharp-code-quality.qls.expected | 1 - .../posix/query-suite/not_included_in_qls.expected | 2 ++ 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected index f4128abf3213..fdc5e6eae9d1 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected @@ -45,9 +45,6 @@ ql/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql ql/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql ql/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql -ql/csharp/ql/src/Documentation/XmldocExtraParam.ql -ql/csharp/ql/src/Documentation/XmldocExtraTypeParam.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 diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected index 53810418624d..6694cc8461b8 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected @@ -23,7 +23,6 @@ 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 diff --git a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected index 2d923ab8ff7d..4c8d4d42e98a 100644 --- a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected @@ -20,6 +20,8 @@ ql/csharp/ql/src/Dead Code/DeadRefTypes.ql ql/csharp/ql/src/Dead Code/NonAssignedFields.ql ql/csharp/ql/src/Dead Code/UnusedField.ql ql/csharp/ql/src/Dead Code/UnusedMethod.ql +ql/csharp/ql/src/Documentation/XmldocExtraParam.ql +ql/csharp/ql/src/Documentation/XmldocExtraTypeParam.ql ql/csharp/ql/src/Documentation/XmldocMissing.ql ql/csharp/ql/src/Documentation/XmldocMissingException.ql ql/csharp/ql/src/Documentation/XmldocMissingParam.ql From d903448695c574b6ee2162aa5ef503470deab587 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 16 Sep 2025 13:58:28 +0200 Subject: [PATCH 9/9] C#: Add change note. --- .../ql/src/change-notes/2025-09-16-code-quality-doc-query.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/src/change-notes/2025-09-16-code-quality-doc-query.md diff --git a/csharp/ql/src/change-notes/2025-09-16-code-quality-doc-query.md b/csharp/ql/src/change-notes/2025-09-16-code-quality-doc-query.md new file mode 100644 index 000000000000..8972be616b9a --- /dev/null +++ b/csharp/ql/src/change-notes/2025-09-16-code-quality-doc-query.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Remove the query `cs/xmldoc/missing-summary` from the `code-quality` suite (align with other languages).