Skip to content

Commit

Permalink
Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
tmat committed Jan 7, 2025
1 parent 17cdf41 commit 0865c09
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ private static async Task<DocumentAnalysisResults> AnalyzeDocumentAsync(
EditAndContinueCapabilities capabilities = EditAndContinueTestVerifier.Net5RuntimeCapabilities,
ImmutableArray<ActiveStatementLineSpan> newActiveStatementSpans = default)
{
var analyzer = EditAndContinueTestVerifier.CreateAnalyzer(faultInjector: null, LanguageNames.CSharp);
var analyzer = oldProject.Services.GetRequiredService<IEditAndContinueAnalyzer>();
var baseActiveStatements = AsyncLazy.Create(activeStatementMap ?? ActiveStatementsMap.Empty);
var lazyCapabilities = AsyncLazy.Create(capabilities);
return await analyzer.AnalyzeDocumentAsync(oldProject, baseActiveStatements, newDocument, newActiveStatementSpans.NullToEmpty(), lazyCapabilities, CancellationToken.None);
Expand Down Expand Up @@ -749,13 +749,14 @@ public async Task AnalyzeDocumentAsync_InternalError(bool outOfMemory)
var baseActiveStatements = AsyncLazy.Create(ActiveStatementsMap.Empty);
var capabilities = AsyncLazy.Create(EditAndContinueTestVerifier.Net5RuntimeCapabilities);

var analyzer = EditAndContinueTestVerifier.CreateAnalyzer(faultInjector: node =>
var analyzer = Assert.IsType<CSharpEditAndContinueAnalyzer>(oldProject.Services.GetRequiredService<IEditAndContinueAnalyzer>());
analyzer.GetTestAccessor().FaultInjector = node =>
{
if (node is CompilationUnitSyntax)
{
throw outOfMemory ? new OutOfMemoryException() : new NullReferenceException("NullRef!");
}
}, LanguageNames.CSharp);
};

var result = await analyzer.AnalyzeDocumentAsync(oldProject, baseActiveStatements, newDocument, [], capabilities, CancellationToken.None);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
using Xunit;
using static Microsoft.CodeAnalysis.EditAndContinue.AbstractEditAndContinueAnalyzer;
using Microsoft.CodeAnalysis.Host.Mef;
using Microsoft.CodeAnalysis.Host;

namespace Microsoft.CodeAnalysis.EditAndContinue.UnitTests
{
Expand Down Expand Up @@ -61,7 +62,12 @@ protected EditAndContinueTestVerifier(Action<SyntaxNode>? faultInjector)
internal static AbstractEditAndContinueAnalyzer CreateAnalyzer(Action<SyntaxNode>? faultInjector, string languageName)
{
var exportProvider = FeaturesTestCompositions.Features.ExportProviderFactory.CreateExportProvider();
var analyzer = (AbstractEditAndContinueAnalyzer)exportProvider.GetExports<IEditAndContinueAnalyzer, LanguageMetadata>().Single(e => e.Metadata.Language == languageName).Value;

var analyzer = (AbstractEditAndContinueAnalyzer)exportProvider
.GetExports<ILanguageService, LanguageServiceMetadata>()
.Single(e => e.Metadata.Language == languageName && e.Metadata.ServiceType == typeof(IEditAndContinueAnalyzer).AssemblyQualifiedName)
.Value;

analyzer.GetTestAccessor().FaultInjector = faultInjector;
return analyzer;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.EditAndContinue.UnitTests
End Sub

Private Shared Async Function AnalyzeDocumentAsync(oldProject As Project, newDocument As Document, Optional activeStatementMap As ActiveStatementsMap = Nothing) As Task(Of DocumentAnalysisResults)
Dim analyzer = EditAndContinueTestVerifier.CreateAnalyzer(faultInjector:=Nothing, LanguageNames.VisualBasic)
Dim analyzer = oldProject.Services.GetRequiredService(Of IEditAndContinueAnalyzer)
Dim baseActiveStatements = AsyncLazy.Create(If(activeStatementMap, ActiveStatementsMap.Empty))
Dim capabilities = AsyncLazy.Create(EditAndContinueTestVerifier.Net5RuntimeCapabilities)
Return Await analyzer.AnalyzeDocumentAsync(oldProject, baseActiveStatements, newDocument, ImmutableArray(Of ActiveStatementLineSpan).Empty, capabilities, CancellationToken.None)
Expand Down

0 comments on commit 0865c09

Please sign in to comment.