/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/Test2/Diagnostics/AddMissingReference/AddMissingReferenceCrossLanguageUserDiagnosticTests.vb
185 строк
11 KB
Cyrus Najmabadi
Rename files to match type within
12 сен 2025, 01:57
12 сен 2025, 01:57
727e1a1
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports System.Reflection Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.CSharp.AddMissingReference Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.VisualBasic.AddMissingReference Namespace Microsoft.CodeAnalysis.Editor.UnitTests.Diagnostics.AddMissingReference <Trait(Traits.Feature, Traits.Features.CodeActionsAddMissingReference)> Public Class AddMissingReferenceCrossLanguageUserDiagnosticTests Inherits AbstractCrossLanguageUserDiagnosticTests Private Shared ReadOnly s_presentationCoreAssembly As Assembly Private Shared ReadOnly s_presentationFrameworkAssembly As Assembly Private Shared ReadOnly s_windowsBaseAssembly As Assembly Private Shared ReadOnly s_systemXamlAssembly As Assembly Shared Sub New() s_presentationCoreAssembly = Assembly.Load("PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35") s_presentationFrameworkAssembly = Assembly.Load("PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35") s_windowsBaseAssembly = Assembly.Load("WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35") s_systemXamlAssembly = Assembly.Load("System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") End Sub Friend Overrides Function CreateDiagnosticProviderAndFixer(workspace As Workspace, language As String) As (DiagnosticAnalyzer, CodeFixProvider) Dim fixer As CodeFixProvider = CType(If(language = LanguageNames.CSharp, DirectCast(New CSharpAddMissingReferenceCodeFixProvider(), CodeFixProvider), DirectCast(New VisualBasicAddMissingReferenceCodeFixProvider(), CodeFixProvider)), CodeFixProvider) Return (Nothing, fixer) End Function <Fact> Public Async Function AddProjectReferenceBetweenCSharpProjects() As Task Await TestAddProjectReferenceAsync(<Workspace> <Project Language="C#" AssemblyName="ProjectA" CommonReferences="true"> <Document>public class A { }</Document> </Project> <Project Language="C#" AssemblyName="ProjectB" CommonReferences="true"> <ProjectReference>ProjectA</ProjectReference> <Document>public class B : A { }</Document> </Project> <Project Language="C#" AssemblyName="ProjectC" CommonReferences="true"> <ProjectReference>ProjectB</ProjectReference> <Document>public class C : B$$ { }</Document> </Project> </Workspace>, "ProjectC", "ProjectA") End Function <Fact> Public Async Function AddProjectReferenceBetweenVisualBasicProjects() As Task Await TestAddProjectReferenceAsync(<Workspace> <Project Language="Visual Basic" AssemblyName="ProjectA" CommonReferences="true"> <Document>Public Class A : End Class</Document> </Project> <Project Language="Visual Basic" AssemblyName="ProjectB" CommonReferences="true"> <ProjectReference>ProjectA</ProjectReference> <Document>Public Class B : Inherits A : End Class</Document> </Project> <Project Language="Visual Basic" AssemblyName="ProjectC" CommonReferences="true"> <ProjectReference>ProjectB</ProjectReference> <Document>Public Class C : Inherits $$B : End Class</Document> </Project> </Workspace>, "ProjectC", "ProjectA") End Function <Fact> Public Async Function AddProjectReferenceBetweenMixedLanguages1() As Task Await TestAddProjectReferenceAsync(<Workspace> <Project Language="C#" AssemblyName="ProjectA" CommonReferences="true"> <Document>public class A { }</Document> </Project> <Project Language="Visual Basic" AssemblyName="ProjectB" CommonReferences="true"> <ProjectReference>ProjectA</ProjectReference> <Document>Public Class B : Inherits A : End Class</Document> </Project> <Project Language="Visual Basic" AssemblyName="ProjectC" CommonReferences="true"> <ProjectReference>ProjectB</ProjectReference> <Document>Public Class C : Inherits $$B : End Class</Document> </Project> </Workspace>, "ProjectC", "ProjectA") End Function <Fact> Public Async Function AddProjectReferenceBetweenMixedLanguages2() As Task Await TestAddProjectReferenceAsync(<Workspace> <Project Language="Visual Basic" AssemblyName="ProjectA" CommonReferences="true"> <Document>Public Class A : End Class</Document> </Project> <Project Language="C#" AssemblyName="ProjectB" CommonReferences="true"> <ProjectReference>ProjectA</ProjectReference> <Document>public class B : A { }</Document> </Project> <Project Language="C#" AssemblyName="ProjectC" CommonReferences="true"> <ProjectReference>ProjectB</ProjectReference> <Document>public class C : B$$ { }</Document> </Project> </Workspace>, "ProjectC", "ProjectA") End Function <Fact> Public Async Function AddMetadataReferenceToVisualBasicProjectErrorCode30005() As Task Await TestAddUnresolvedMetadataReferenceAsync( <Workspace> <Project Language="Visual Basic" AssemblyName="VBProject" CommonReferences="true"> <ProjectReference>VBProject2</ProjectReference> <Document> Public Class Goo Sub M() AddHandler ModuleWithEvent.E$$, Sub() Exit Sub End Sub End Class </Document> </Project> <Project Language="Visual Basic" AssemblyName="VBProject2" CommonReferences="true"> <MetadataReference><%= s_windowsBaseAssembly.Location %></MetadataReference> <Document> Public Module ModuleWithEvent Public Event E As System.Windows.PropertyChangedCallback End Module </Document> </Project> </Workspace>, "VBProject", s_windowsBaseAssembly.FullName) End Function <Fact> Public Async Function AddMetadataReferenceToVisualBasicProjectErrorCode30007() As Task Await TestAddUnresolvedMetadataReferenceAsync( <Workspace> <Project Language="Visual Basic" AssemblyName="VBProject" CommonReferences="true"> <MetadataReference><%= s_presentationCoreAssembly.Location %></MetadataReference> <Document>Public Class Goo : Inherits System.Windows.UIElement$$ : End Class</Document> </Project> </Workspace>, "VBProject", s_windowsBaseAssembly.FullName) End Function <Fact> Public Async Function AddMetadataReferenceToVisualBasicProjectErrorCode30652() As Task Await TestAddUnresolvedMetadataReferenceAsync( <Workspace> <Project Language="Visual Basic" AssemblyName="VBProject" CommonReferences="true"> <ProjectReference>VBProject2</ProjectReference> <Document> Public Class Goo Sub M() ModuleWithEvent.E$$(Nothing) End Sub End Class </Document> </Project> <Project Language="Visual Basic" AssemblyName="VBProject2" CommonReferences="true"> <MetadataReference><%= s_windowsBaseAssembly.Location %></MetadataReference> <Document> Public Module ModuleWithEvent Public Sub E(x As System.Windows.DependencyProperty) : End Sub End Module </Document> </Project> </Workspace>, "VBProject", s_windowsBaseAssembly.FullName) End Function <Fact> Public Async Function AddMetadataReferenceToCSharpProject() As Task Await TestAddUnresolvedMetadataReferenceAsync( <Workspace> <Project Language="C#" AssemblyName="CSharpProject" CommonReferences="true"> <MetadataReference><%= s_presentationCoreAssembly.Location %></MetadataReference> <Document>public class Goo : System.Windows.UIElement$$ { }</Document> </Project> </Workspace>, "CSharpProject", s_windowsBaseAssembly.FullName) End Function End Class End Namespace