From 6af239035baa5c129f454d0649e7c521ecda7f7f Mon Sep 17 00:00:00 2001 From: Thom Lamb Date: Tue, 26 May 2026 15:49:20 -0500 Subject: [PATCH] chore(sonar): use concrete return types where binary-safe (CA1859) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CA1859 has no `dotnet format` batch fixer, so applied manually after verifying each site is private/internal/test (no public-surface impact): - Markdown.TryParseLogicalOperation: Expression? -> BoolExpr? (private) - Markdown.TryParseComparison: Expression? -> Comparison? (private) - RuleSet.GetAllSingleRules(IGroup): IEnumerable -> List (private overload) - SqlExpressionClause.SplitOnComma: IEnumerable -> List (private) - QueryBreakdownRepositoryTests._repository: IQueryBreakdownRepository -> QueryBreakdownRepository (test private field) - UnitTest1.StartsWith(...,string): Expression -> MethodCallExpression (test private helper) The public `RuleSet.GetAllSingleRules()` overload still returns IEnumerable — only the private recursive helper was tightened. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/Strata.SqlTools.Rules/Rule/Expression/Markdown.cs | 4 ++-- src/Strata.SqlTools.Rules/Rule/RuleSet.cs | 2 +- .../Classes/SqlExpressionClause.cs | 2 +- .../QueryBreakdownRepositoryTests.cs | 2 +- tests/Strata.SqlTools.Rules.Tests/UnitTest1.cs | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Strata.SqlTools.Rules/Rule/Expression/Markdown.cs b/src/Strata.SqlTools.Rules/Rule/Expression/Markdown.cs index ca1c590..716a14f 100644 --- a/src/Strata.SqlTools.Rules/Rule/Expression/Markdown.cs +++ b/src/Strata.SqlTools.Rules/Rule/Expression/Markdown.cs @@ -115,7 +115,7 @@ public static class Markdown return ParseAtomicExpression(text); } - private static Expression? TryParseLogicalOperation(string text) + private static BoolExpr? TryParseLogicalOperation(string text) { foreach (var op in LogicalOperators.Keys) { @@ -130,7 +130,7 @@ public static class Markdown return null; } - private static Expression? TryParseComparison(string text) + private static Comparison? TryParseComparison(string text) { foreach (var op in ComparisonOperators.Keys) { diff --git a/src/Strata.SqlTools.Rules/Rule/RuleSet.cs b/src/Strata.SqlTools.Rules/Rule/RuleSet.cs index 6dbc2d0..a90d5b2 100644 --- a/src/Strata.SqlTools.Rules/Rule/RuleSet.cs +++ b/src/Strata.SqlTools.Rules/Rule/RuleSet.cs @@ -50,7 +50,7 @@ public class RuleSet : IGroup /// /// The rule group to traverse. /// An enumerable of all single rules found in the group. - private static IEnumerable GetAllSingleRules(IGroup group) + private static List GetAllSingleRules(IGroup group) { var rules = new List(); foreach (var rule in group.Rules) diff --git a/src/Strata.SqlTools.SqlBreakdown/Classes/SqlExpressionClause.cs b/src/Strata.SqlTools.SqlBreakdown/Classes/SqlExpressionClause.cs index e1bffdc..c747d40 100644 --- a/src/Strata.SqlTools.SqlBreakdown/Classes/SqlExpressionClause.cs +++ b/src/Strata.SqlTools.SqlBreakdown/Classes/SqlExpressionClause.cs @@ -85,7 +85,7 @@ public class SqlExpressionClause : SqlClause, ISqlExpressionClause /// /// The clause to split. /// An enumerable collection of individual items. - private static IEnumerable SplitOnComma(string clause) + private static List SplitOnComma(string clause) { var items = new List(); var current = new StringBuilder(); diff --git a/tests/Strata.SqlTools.EFCore.Tests/QueryBreakdownRepositoryTests.cs b/tests/Strata.SqlTools.EFCore.Tests/QueryBreakdownRepositoryTests.cs index 2641cde..eaad8d3 100644 --- a/tests/Strata.SqlTools.EFCore.Tests/QueryBreakdownRepositoryTests.cs +++ b/tests/Strata.SqlTools.EFCore.Tests/QueryBreakdownRepositoryTests.cs @@ -11,7 +11,7 @@ public class QueryBreakdownRepositoryTests { private DbContext _dbContext = null!; private IQueryBreakdownMapper _mapper = null!; - private IQueryBreakdownRepository _repository = null!; + private QueryBreakdownRepository _repository = null!; [SetUp] public void Setup() diff --git a/tests/Strata.SqlTools.Rules.Tests/UnitTest1.cs b/tests/Strata.SqlTools.Rules.Tests/UnitTest1.cs index 83f2a63..382ed2d 100644 --- a/tests/Strata.SqlTools.Rules.Tests/UnitTest1.cs +++ b/tests/Strata.SqlTools.Rules.Tests/UnitTest1.cs @@ -148,7 +148,7 @@ public class Tests return result; } - static System.Linq.Expressions.Expression StartsWith(System.Linq.Expressions.Expression expression, string value) + static MethodCallExpression StartsWith(System.Linq.Expressions.Expression expression, string value) { return StartsWith(expression, LinqExpression.Constant(value)); }