Added handling for default values for methods

This commit is contained in:
Thorsten Sommer 2025-03-11 19:19:17 +01:00
parent 37562d37f6
commit a45649d3d1
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108

View File

@ -46,6 +46,9 @@ public sealed class EmptyStringAnalyzer : DiagnosticAnalyzer
if (IsInConstContext(stringLiteral)) if (IsInConstContext(stringLiteral))
return; return;
if (IsInParameterDefaultValue(stringLiteral))
return;
var diagnostic = Diagnostic.Create(RULE, stringLiteral.GetLocation()); var diagnostic = Diagnostic.Create(RULE, stringLiteral.GetLocation());
context.ReportDiagnostic(diagnostic); context.ReportDiagnostic(diagnostic);
} }
@ -65,4 +68,21 @@ public sealed class EmptyStringAnalyzer : DiagnosticAnalyzer
_ => false _ => false
}; };
} }
private static bool IsInParameterDefaultValue(LiteralExpressionSyntax stringLiteral)
{
// Prüfen, ob das String-Literal Teil eines Parameter-Defaults ist
var parameter = stringLiteral.FirstAncestorOrSelf<ParameterSyntax>();
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;
}
} }