Closed sudokoko closed 2 weeks ago
1085 new problems were found
Inspection name | Severity | Problems |
---|---|---|
XML highlighting |
🔴 Failure | 8 |
Unresolved reference |
🔴 Failure | 4 |
Annotator |
🔴 Failure | 1 |
Possible performance issues caused by unlimited string length |
🔶 Warning | 74 |
Redundant nullable directive |
🔶 Warning | 60 |
Auto-property accessor is never used (non-private accessibility) |
🔶 Warning | 14 |
Path error |
🔶 Warning | 8 |
Missing required 'alt' attribute |
🔶 Warning | 6 |
Redundant using directive |
🔶 Warning | 5 |
Element is localizable |
🔶 Warning | 4 |
Unused schema declaration |
🔶 Warning | 4 |
Usage of navigational property can return incomplete data |
🔶 Warning | 3 |
RoslynAnalyzers Avoid using 'async void' for test methods as it is deprecated in xUnit.net v3 |
🔶 Warning | 3 |
Conditional access qualifier expression is not null according to nullable reference types' annotations |
🔶 Warning | 2 |
Non-accessed field (private accessibility) |
🔶 Warning | 2 |
Specify string culture explicitly |
🔶 Warning | 2 |
Auto-property accessor is never used (private accessibility) |
🔶 Warning | 2 |
Unused nullable directive |
🔶 Warning | 2 |
Unknown HTML entity |
🔶 Warning | 1 |
Unused selector |
🔶 Warning | 1 |
Disposal of a variable already captured by the 'using' statement |
🔶 Warning | 1 |
Empty statement is redundant |
🔶 Warning | 1 |
Return value must be disposed but the method or function is not annotated with [MustDisposeResource] |
🔶 Warning | 1 |
Redundant cast |
🔶 Warning | 1 |
Redundant member initializer |
🔶 Warning | 1 |
Redundant nullable warning suppression expression |
🔶 Warning | 1 |
Do not use object initializer for 'using' variable |
🔶 Warning | 1 |
Property can be made init-only (non-private accessibility) |
◽️ Notice | 252 |
Use collection expression syntax |
◽️ Notice | 191 |
Convert constructor into primary constructor |
◽️ Notice | 135 |
Auto-property can be made get-only (non-private accessibility) |
◽️ Notice | 73 |
RoslynAnalyzers Do not use boolean asserts for simple equality tests |
◽️ Notice | 38 |
Type member is never used (non-private accessibility) |
◽️ Notice | 26 |
Member can be made private (non-private accessibility) |
◽️ Notice | 21 |
Add/remove 'this.' qualifier |
◽️ Notice | 14 |
Property can be made init-only (private accessibility) |
◽️ Notice | 12 |
Unresolved reference |
◽️ Notice | 10 |
Redundant type declaration body |
◽️ Notice | 8 |
Type is never used (non-private accessibility) |
◽️ Notice | 8 |
RoslynAnalyzers Use the 'StringComparison' method overloads to perform case-insensitive string comparisons |
◽️ Notice | 6 |
Important tags or attributes missing (<img> should specify alternative text) |
◽️ Notice | 6 |
Remove redundant parentheses |
◽️ Notice | 4 |
RoslynAnalyzers Avoid constant arrays as arguments |
◽️ Notice | 4 |
RoslynAnalyzers Use char overload |
◽️ Notice | 4 |
RoslynAnalyzers Instantiate argument exceptions correctly |
◽️ Notice | 4 |
Merge null/pattern/value checks into 'or'/'and' patterns |
◽️ Notice | 4 |
Use raw string |
◽️ Notice | 4 |
RoslynAnalyzers Use concrete types when possible for improved performance |
◽️ Notice | 3 |
Convert constructor into member initializers |
◽️ Notice | 3 |
Member can be made protected (non-private accessibility) |
◽️ Notice | 3 |
Unused parameter (non-private accessibility) |
◽️ Notice | 3 |
Use preferred style for trailing comma before new line in multiline lists |
◽️ Notice | 2 |
Class with virtual (overridable) members never inherited (non-private accessibility) |
◽️ Notice | 2 |
'if-return' statement can be rewritten as 'return' statement |
◽️ Notice | 2 |
Query can return incomplete data for related entities |
◽️ Notice | 2 |
Part of foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used |
◽️ Notice | 2 |
Merge null/pattern checks into complex pattern |
◽️ Notice | 2 |
Non-accessed field (non-private accessibility) |
◽️ Notice | 2 |
Unassigned field (non-private accessibility) |
◽️ Notice | 2 |
Mapped path |
◽️ Notice | 2 |
RoslynAnalyzers Suggest using IHeaderDictionary properties |
◽️ Notice | 1 |
Use preferred body style (convert into method or operator with preferred body style) |
◽️ Notice | 1 |
Auto-property can be made get-only (private accessibility) |
◽️ Notice | 1 |
RoslynAnalyzers Mark members as static |
◽️ Notice | 1 |
RoslynAnalyzers Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method |
◽️ Notice | 1 |
RoslynAnalyzers Avoid using 'Enumerable.Any()' extension method |
◽️ Notice | 1 |
RoslynAnalyzers Non-constant fields should not be visible |
◽️ Notice | 1 |
Dictionary lookup can be simplified with 'GetValueOrDefault' |
◽️ Notice | 1 |
Class is never instantiated (non-private accessibility) |
◽️ Notice | 1 |
'if' statement can be rewritten as '?:' expression |
◽️ Notice | 1 |
Member can be made static (shared) (non-private accessibility) |
◽️ Notice | 1 |
Method has async overload |
◽️ Notice | 1 |
Put local function after 'return' or 'continue' |
◽️ Notice | 1 |
Redundant empty argument list on object creation expression |
◽️ Notice | 1 |
Redundant string interpolation |
◽️ Notice | 1 |
Some values of the enum are not processed inside 'switch' statement and are handled via default section |
◽️ Notice | 1 |
Type member is never accessed via base type (non-private accessibility) |
◽️ Notice | 1 |
Method return value is never used (non-private accessibility) |
◽️ Notice | 1 |
☁️ View the detailed Qodana report
This PR refactors the web comment deletion routine within ModerationRemovalController.cs by reworking how the notification text is determined, as well as adding handles for cases where the user is trying to delete comments on their own profile/level (this currently throws an exception in prod, it was never handled when notifications were implemented apparently).
Brings the cognitive complexity of the method down by about 30%, for those interested in that sort of thing.