public void DontCrash_VB_2() { var code = @" Public Class Class1 Public Custom Event Event2 As EventHandler AddHandler(ByVal value As EventHandler) End AddHandler RemoveHandler(ByVal value As EventHandler) End RemoveHandler RaiseEvent(ByVal sender As Object, ByVal e As EventArgs) e End Event End Class "; var document = CreateDocument(code, LanguageNames.VisualBasic); var semanticModel = document.GetSemanticModelAsync().Result; var root = document.GetSyntaxRootAsync().Result; var accessor = root.DescendantNodes().OfType <VisualBasic.Syntax.AccessorBlockSyntax>().Last(); var factory = new SemanticModelWorkspaceServiceFactory(); var provider = WorkspaceService.GetProvider(document.Project.Solution.Workspace); var service = (ISemanticModelService)factory.CreateService(provider); var newSemanticModel = service.GetSemanticModelForNodeAsync(document, accessor, CancellationToken.None).Result; Assert.NotNull(newSemanticModel); var newDocument = CreateDocument(code, LanguageNames.VisualBasic); var newRoot = newDocument.GetSyntaxRootAsync().Result; var newAccessor = newRoot.DescendantNodes().OfType <VisualBasic.Syntax.AccessorBlockSyntax>().Last(); root = root.ReplaceNode(accessor, newAccessor); document = document.WithSyntaxRoot(root); accessor = root.DescendantNodes().OfType <VisualBasic.Syntax.AccessorBlockSyntax>().Last(); newSemanticModel = service.GetSemanticModelForNodeAsync(document, accessor, CancellationToken.None).Result; Assert.NotNull(newSemanticModel); var cleanDocument = CodeCleaner.CleanupAsync(document).Result; Assert.Equal(document, cleanDocument); }
public TestWorkspace(IWorkspaceServiceProvider workspaceServiceProvider = null) : base(workspaceServiceProvider ?? WorkspaceService.GetProvider(new CustomWorkspace())) { }