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