Skip to content

Commit 398f29a

Browse files
authored
Merge pull request #20292 from michaelnebel/csharp/code-quality-extended
C#: Add most `medium` precision queries to the `code-quality-extended` suite.
2 parents f3802ec + d903448 commit 398f29a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+155
-91
lines changed

csharp/ql/integration-tests/posix/query-suite/csharp-code-quality-extended.qls.expected

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,50 @@
11
ql/csharp/ql/src/API Abuse/CallToGCCollect.ql
22
ql/csharp/ql/src/API Abuse/CallToObsoleteMethod.ql
3+
ql/csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql
34
ql/csharp/ql/src/API Abuse/ClassImplementsICloneable.ql
5+
ql/csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql
46
ql/csharp/ql/src/API Abuse/FormatInvalid.ql
7+
ql/csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql
8+
ql/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql
9+
ql/csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql
510
ql/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql
11+
ql/csharp/ql/src/API Abuse/NonOverridingMethod.ql
612
ql/csharp/ql/src/API Abuse/NullArgumentToEquals.ql
713
ql/csharp/ql/src/ASP/BlockCodeResponseWrite.ql
14+
ql/csharp/ql/src/ASP/SplitControlStructure.ql
815
ql/csharp/ql/src/Bad Practices/CallsUnmanagedCode.ql
916
ql/csharp/ql/src/Bad Practices/CatchOfNullReferenceException.ql
17+
ql/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql
18+
ql/csharp/ql/src/Bad Practices/Comments/TodoComments.ql
1019
ql/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql
1120
ql/csharp/ql/src/Bad Practices/Declarations/LocalScopeVariableShadowsMember.ql
21+
ql/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql
1222
ql/csharp/ql/src/Bad Practices/EmptyCatchBlock.ql
23+
ql/csharp/ql/src/Bad Practices/ErroneousClassCompare.ql
24+
ql/csharp/ql/src/Bad Practices/Implementation Hiding/AbstractToConcreteCollection.ql
1325
ql/csharp/ql/src/Bad Practices/Implementation Hiding/ExposeRepresentation.ql
26+
ql/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql
27+
ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql
28+
ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql
29+
ql/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql
30+
ql/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql
1431
ql/csharp/ql/src/Bad Practices/Naming Conventions/FieldMasksSuperField.ql
1532
ql/csharp/ql/src/Bad Practices/Naming Conventions/SameNameAsSuper.ql
1633
ql/csharp/ql/src/Bad Practices/PathCombine.ql
1734
ql/csharp/ql/src/Bad Practices/UnmanagedCodeCheck.ql
35+
ql/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql
36+
ql/csharp/ql/src/Bad Practices/VirtualCallInConstructorOrDestructor.ql
1837
ql/csharp/ql/src/CSI/CompareIdenticalValues.ql
1938
ql/csharp/ql/src/CSI/NullAlways.ql
2039
ql/csharp/ql/src/CSI/NullMaybe.ql
2140
ql/csharp/ql/src/Concurrency/FutileSyncOnField.ql
2241
ql/csharp/ql/src/Concurrency/LockOrder.ql
2342
ql/csharp/ql/src/Concurrency/LockThis.ql
2443
ql/csharp/ql/src/Concurrency/LockedWait.ql
44+
ql/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql
45+
ql/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql
46+
ql/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql
2547
ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql
26-
ql/csharp/ql/src/Documentation/XmldocMissingSummary.ql
2748
ql/csharp/ql/src/Language Abuse/CastThisToTypeParameter.ql
2849
ql/csharp/ql/src/Language Abuse/CatchOfGenericException.ql
2950
ql/csharp/ql/src/Language Abuse/DubiousDowncastOfThis.ql
@@ -35,27 +56,42 @@ ql/csharp/ql/src/Language Abuse/NestedIf.ql
3556
ql/csharp/ql/src/Language Abuse/RethrowException.ql
3657
ql/csharp/ql/src/Language Abuse/SimplifyBoolExpr.ql
3758
ql/csharp/ql/src/Language Abuse/UnusedPropertyValue.ql
59+
ql/csharp/ql/src/Language Abuse/UselessCastToSelf.ql
60+
ql/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql
61+
ql/csharp/ql/src/Language Abuse/UselessNullCoalescingExpression.ql
62+
ql/csharp/ql/src/Language Abuse/UselessTypeTest.ql
63+
ql/csharp/ql/src/Language Abuse/UselessUpcast.ql
3864
ql/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql
3965
ql/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql
4066
ql/csharp/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql
4167
ql/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql
4268
ql/csharp/ql/src/Likely Bugs/ConstantComparison.ql
4369
ql/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql
70+
ql/csharp/ql/src/Likely Bugs/Dynamic/BadDynamicCall.ql
4471
ql/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql
4572
ql/csharp/ql/src/Likely Bugs/EqualsArray.ql
73+
ql/csharp/ql/src/Likely Bugs/EqualsUsesAs.ql
74+
ql/csharp/ql/src/Likely Bugs/EqualsUsesIs.ql
4675
ql/csharp/ql/src/Likely Bugs/HashedButNoHash.ql
4776
ql/csharp/ql/src/Likely Bugs/ImpossibleArrayCast.ql
4877
ql/csharp/ql/src/Likely Bugs/IncomparableEquals.ql
78+
ql/csharp/ql/src/Likely Bugs/InconsistentCompareTo.ql
79+
ql/csharp/ql/src/Likely Bugs/LeapYear/UnsafeYearConstruction.ql
80+
ql/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql
4981
ql/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql
82+
ql/csharp/ql/src/Likely Bugs/ObjectComparison.ql
5083
ql/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql
5184
ql/csharp/ql/src/Likely Bugs/RecursiveEquals.ql
85+
ql/csharp/ql/src/Likely Bugs/RecursiveOperatorEquals.ql
5286
ql/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql
5387
ql/csharp/ql/src/Likely Bugs/SelfAssignment.ql
5488
ql/csharp/ql/src/Likely Bugs/Statements/EmptyBlock.ql
5589
ql/csharp/ql/src/Likely Bugs/Statements/EmptyLockStatement.ql
90+
ql/csharp/ql/src/Likely Bugs/Statements/UseBraces.ql
5691
ql/csharp/ql/src/Likely Bugs/StaticFieldWrittenByInstance.ql
5792
ql/csharp/ql/src/Likely Bugs/StringBuilderCharInit.ql
5893
ql/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql
94+
ql/csharp/ql/src/Linq/BadMultipleIteration.ql
5995
ql/csharp/ql/src/Linq/MissedAllOpportunity.ql
6096
ql/csharp/ql/src/Linq/MissedCastOpportunity.ql
6197
ql/csharp/ql/src/Linq/MissedOfTypeOpportunity.ql
@@ -68,5 +104,6 @@ ql/csharp/ql/src/Performance/UseTryGetValue.ql
68104
ql/csharp/ql/src/Useless code/DefaultToString.ql
69105
ql/csharp/ql/src/Useless code/FutileConditional.ql
70106
ql/csharp/ql/src/Useless code/IntGetHashCode.ql
107+
ql/csharp/ql/src/Useless code/PointlessForwardingMethod.ql
71108
ql/csharp/ql/src/Useless code/RedundantToStringCall.ql
72109
ql/csharp/ql/src/Useless code/UnusedLabel.ql

csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ ql/csharp/ql/src/Concurrency/LockOrder.ql
2323
ql/csharp/ql/src/Concurrency/LockThis.ql
2424
ql/csharp/ql/src/Concurrency/LockedWait.ql
2525
ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql
26-
ql/csharp/ql/src/Documentation/XmldocMissingSummary.ql
2726
ql/csharp/ql/src/Language Abuse/CastThisToTypeParameter.ql
2827
ql/csharp/ql/src/Language Abuse/CatchOfGenericException.ql
2928
ql/csharp/ql/src/Language Abuse/DubiousDowncastOfThis.ql

csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,20 @@
11
ql/csharp/ql/src/API Abuse/MissingDisposeCall.ql
22
ql/csharp/ql/src/API Abuse/MissingDisposeMethod.ql
3-
ql/csharp/ql/src/API Abuse/NonOverridingMethod.ql
43
ql/csharp/ql/src/API Abuse/UncheckedReturnValue.ql
54
ql/csharp/ql/src/ASP/ComplexInlineCode.ql
65
ql/csharp/ql/src/ASP/NonInternationalizedText.ql
7-
ql/csharp/ql/src/ASP/SplitControlStructure.ql
86
ql/csharp/ql/src/AlertSuppression.ql
97
ql/csharp/ql/src/Architecture/Dependencies/MutualDependency.ql
108
ql/csharp/ql/src/Architecture/Refactoring Opportunities/FeatureEnvy.ql
11-
ql/csharp/ql/src/Bad Practices/Comments/CommentedOutCode.ql
12-
ql/csharp/ql/src/Bad Practices/Comments/TodoComments.ql
139
ql/csharp/ql/src/Bad Practices/Declarations/EmptyInterface.ql
14-
ql/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql
15-
ql/csharp/ql/src/Bad Practices/Implementation Hiding/StaticArray.ql
1610
ql/csharp/ql/src/Bad Practices/LeftoverDebugCode.ql
1711
ql/csharp/ql/src/Bad Practices/Magic Constants/MagicConstantsNumbers.ql
1812
ql/csharp/ql/src/Bad Practices/Magic Constants/MagicConstantsString.ql
1913
ql/csharp/ql/src/Bad Practices/Magic Constants/MagicNumbersUseConstant.ql
2014
ql/csharp/ql/src/Bad Practices/Magic Constants/MagicStringsUseConstant.ql
21-
ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingMethodNames.ql
22-
ql/csharp/ql/src/Bad Practices/Naming Conventions/ConfusingOverridesNames.ql
2315
ql/csharp/ql/src/Bad Practices/Naming Conventions/ConstantNaming.ql
24-
ql/csharp/ql/src/Bad Practices/Naming Conventions/ControlNamePrefixes.ql
25-
ql/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql
2616
ql/csharp/ql/src/Bad Practices/Naming Conventions/VariableNameTooShort.ql
2717
ql/csharp/ql/src/Bad Practices/UseOfHtmlInputHidden.ql
28-
ql/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql
2918
ql/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql
3019
ql/csharp/ql/src/Dead Code/DeadRefTypes.ql
3120
ql/csharp/ql/src/Dead Code/NonAssignedFields.ql
@@ -39,7 +28,6 @@ ql/csharp/ql/src/Documentation/XmldocMissingParam.ql
3928
ql/csharp/ql/src/Documentation/XmldocMissingReturn.ql
4029
ql/csharp/ql/src/Documentation/XmldocMissingTypeParam.ql
4130
ql/csharp/ql/src/Language Abuse/ForeachCapture.ql
42-
ql/csharp/ql/src/Language Abuse/UselessIsBeforeAs.ql
4331
ql/csharp/ql/src/Likely Bugs/BadCheckOdd.ql
4432
ql/csharp/ql/src/Likely Bugs/RandomUsedOnce.ql
4533
ql/csharp/ql/src/Metrics/Callables/CCyclomaticComplexity.ql
@@ -93,7 +81,6 @@ ql/csharp/ql/src/Security Features/CWE-611/UseXmlSecureResolver.ql
9381
ql/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql
9482
ql/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql
9583
ql/csharp/ql/src/Security Features/CWE-838/InappropriateEncoding.ql
96-
ql/csharp/ql/src/Useless code/PointlessForwardingMethod.ql
9784
ql/csharp/ql/src/definitions.ql
9885
ql/csharp/ql/src/experimental/CWE-099/TaintedWebClient.ql
9986
ql/csharp/ql/src/experimental/CWE-918/RequestForgery.ql

csharp/ql/src/API Abuse/ClassDoesNotImplementEquals.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
* @problem.severity error
88
* @precision medium
99
* @id cs/class-missing-equals
10-
* @tags reliability
11-
* maintainability
10+
* @tags quality
11+
* reliability
12+
* correctness
1213
*/
1314

1415
import csharp

csharp/ql/src/API Abuse/DisposeNotCalledOnException.ql

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
* @problem.severity warning
88
* @precision medium
99
* @id cs/dispose-not-called-on-throw
10-
* @tags efficiency
11-
* maintainability
10+
* @tags quality
11+
* reliability
12+
* error-handling
13+
* performance
1214
* external/cwe/cwe-404
1315
* external/cwe/cwe-459
1416
* external/cwe/cwe-460

csharp/ql/src/API Abuse/InconsistentEqualsGetHashCode.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
* @problem.severity warning
77
* @precision medium
88
* @id cs/inconsistent-equals-and-gethashcode
9-
* @tags reliability
10-
* maintainability
9+
* @tags quality
10+
* reliability
11+
* correctness
1112
* external/cwe/cwe-581
1213
*/
1314

csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
* @problem.severity warning
66
* @precision medium
77
* @id cs/wrong-compareto-signature
8-
* @tags reliability
9-
* maintainability
8+
* @tags quality
9+
* reliability
10+
* correctness
1011
*/
1112

1213
import csharp

csharp/ql/src/API Abuse/IncorrectEqualsSignature.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
* @problem.severity warning
66
* @precision medium
77
* @id cs/wrong-equals-signature
8-
* @tags reliability
9-
* maintainability
8+
* @tags quality
9+
* reliability
10+
* correctness
1011
*/
1112

1213
import csharp

csharp/ql/src/API Abuse/NonOverridingMethod.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
* @problem.severity recommendation
66
* @precision medium
77
* @id cs/nonoverriding-method
8-
* @tags reliability
8+
* @tags quality
9+
* reliability
10+
* correctness
911
* readability
10-
* naming
1112
*/
1213

1314
import csharp

csharp/ql/src/ASP/SplitControlStructure.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
* @problem.severity recommendation
66
* @precision medium
77
* @id cs/asp/split-control-structure
8-
* @tags maintainability
9-
* frameworks/asp.net
8+
* @tags quality
9+
* maintainability
10+
* readability
1011
*/
1112

1213
import semmle.code.asp.AspNet

0 commit comments

Comments
 (0)