From a45649d3d1b680fa5da802bf3fbd12f36b8325e5 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Tue, 11 Mar 2025 19:19:17 +0100 Subject: [PATCH] Added handling for default values for methods --- .../UsageAnalyzers/EmptyStringAnalyzer.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/SourceCodeRules/SourceCodeRules/UsageAnalyzers/EmptyStringAnalyzer.cs b/app/SourceCodeRules/SourceCodeRules/UsageAnalyzers/EmptyStringAnalyzer.cs index f6cc65b7..5092d436 100644 --- a/app/SourceCodeRules/SourceCodeRules/UsageAnalyzers/EmptyStringAnalyzer.cs +++ b/app/SourceCodeRules/SourceCodeRules/UsageAnalyzers/EmptyStringAnalyzer.cs @@ -46,6 +46,9 @@ public sealed class EmptyStringAnalyzer : DiagnosticAnalyzer if (IsInConstContext(stringLiteral)) return; + if (IsInParameterDefaultValue(stringLiteral)) + return; + var diagnostic = Diagnostic.Create(RULE, stringLiteral.GetLocation()); context.ReportDiagnostic(diagnostic); } @@ -65,4 +68,21 @@ public sealed class EmptyStringAnalyzer : DiagnosticAnalyzer _ => false }; } + + private static bool IsInParameterDefaultValue(LiteralExpressionSyntax stringLiteral) + { + // Prüfen, ob das String-Literal Teil eines Parameter-Defaults ist + var parameter = stringLiteral.FirstAncestorOrSelf(); + if (parameter is null) + return false; + + // Überprüfen, ob das String-Literal im Default-Wert des Parameters verwendet wird + if (parameter.Default is not null && + parameter.Default.Value == stringLiteral) + { + return true; + } + + return false; + } } \ No newline at end of file