Skip to content

Commit 0b00a5b

Browse files
Copilotpengweiqhca
andauthored
Fix analyzer missing BuildHost method in multiple overloads detection (#158)
* Initial plan * Add BuildHost method to analyzer's AnalyzeOverride checks and add test Co-authored-by: pengweiqhca <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: pengweiqhca <[email protected]>
1 parent 1189f4c commit 0b00a5b

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

src/Xunit.DependencyInjection.Analyzer/XunitDependencyInjectionAnalyzer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ private void AnalyzeSymbol(SymbolAnalysisContext context)
124124
AnalyzeOverride(context, type, "ConfigureHost");
125125
AnalyzeOverride(context, type, "ConfigureServices");
126126
AnalyzeOverride(context, type, "Configure");
127+
AnalyzeOverride(context, type, "BuildHost");
127128
AnalyzeOverride(context, type, "CreateHostApplicationBuilder");
128129
AnalyzeOverride(context, type, "ConfigureHostApplicationBuilder");
129130
AnalyzeOverride(context, type, "BuildHostApplicationBuilder");

test/Xunit.DependencyInjection.Analyzer.Test/DependencyInjectionTest.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,14 @@ await File.ReadAllTextAsync(Path.Combine("Startup", fixedSource), cancellationTo
151151
}
152152
];
153153
yield return ["BuildHostTestStartup1.cs", null, Array.Empty<DiagnosticResult>()];
154+
yield return
155+
[
156+
"BuildHostMultipleOverloadsTest.cs", null, new[]
157+
{
158+
new DiagnosticResult(Rules.MultipleOverloads).WithSpan(7, 21, 7, 30).WithArguments("BuildHost"),
159+
new DiagnosticResult(Rules.MultipleOverloads).WithSpan(10, 21, 10, 30).WithArguments("BuildHost")
160+
}
161+
];
154162

155163
// CreateHostApplicationBuilder tests
156164
yield return
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Microsoft.Extensions.Hosting;
2+
3+
namespace TestProject
4+
{
5+
public class Startup
6+
{
7+
public IHost BuildHost(IHostBuilder builder) => builder.Build();
8+
9+
// This should trigger MultipleOverloads warning with the fix
10+
public IHost BuildHost(IHostBuilder builder, string extra) => builder.Build();
11+
}
12+
}

0 commit comments

Comments
 (0)