/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/Test2/Rename/CSharp/ImplicitReferenceConflictTests.vb
224 строки
7 KB
Cyrus Najmabadi
Organize VB imports
27 июн 2025, 21:53
27 июн 2025, 21:53
e9c47fd
Код
Авторство
О чём код?
' 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 Microsoft.CodeAnalysis.Rename.ConflictEngine Namespace Microsoft.CodeAnalysis.Editor.UnitTests.Rename.CSharp <[UseExportProvider]> <Trait(Traits.Feature, Traits.Features.Rename)> Public Class ImplicitReferenceConflictTests Private ReadOnly _outputHelper As Abstractions.ITestOutputHelper Public Sub New(outputHelper As Abstractions.ITestOutputHelper) _outputHelper = outputHelper End Sub <Theory, CombinatorialData> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/528966")> Public Sub RenameMoveNextCausesConflictInForEach(host As RenameTestHost) Using result = RenameEngineResult.Create(_outputHelper, <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class B { public int Current { get; set; } public bool [|$$MoveNext|]() { return false; } } class C { static void Main() { foreach (var x in {|foreachconflict:new C()|}) { } } public B GetEnumerator() { return null; } } </Document> </Project> </Workspace>, host:=host, renameTo:="Next") result.AssertLabeledSpansAre("foreachconflict", type:=RelatedLocationType.UnresolvedConflict) End Using End Sub <Theory, CombinatorialData> Public Sub RenameDeconstructCausesConflictInDeconstructionAssignment(host As RenameTestHost) Using result = RenameEngineResult.Create(_outputHelper, <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class C { void M() { {|deconstructconflict:var (y1, y2)|} = this; } public void [|$$Deconstruct|](out int x1, out int x2) { x1 = 1; x2 = 2; } } </Document> </Project> </Workspace>, host:=host, renameTo:="Deconstruct2") result.AssertLabeledSpansAre("deconstructconflict", type:=RelatedLocationType.UnresolvedConflict) End Using End Sub <Theory, CombinatorialData> Public Sub RenameDeconstructCausesConflictInDeconstructionForEach(host As RenameTestHost) Using result = RenameEngineResult.Create(_outputHelper, <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class C { void M() { foreach({|deconstructconflict:var (y1, y2)|} in new[] { this }) { } } public void [|$$Deconstruct|](out int x1, out int x2) { x1 = 1; x2 = 2; } } </Document> </Project> </Workspace>, host:=host, renameTo:="Deconstruct2") result.AssertLabeledSpansAre("deconstructconflict", type:=RelatedLocationType.UnresolvedConflict) End Using End Sub <Theory, CombinatorialData> Public Sub RenameGetAwaiterCausesConflict(host As RenameTestHost) Using result = RenameEngineResult.Create(_outputHelper, <Workspace> <Project Language="C#" CommonReferences="true"> <Document><![CDATA[ using System.Threading.Tasks; using System.Runtime.CompilerServices; public class C { public TaskAwaiter<bool> [|Get$$Awaiter|]() => Task.FromResult(true).GetAwaiter(); static async void M(C c) { {|awaitconflict:await|} c; } } ]]></Document> </Project> </Workspace>, host:=host, renameTo:="GetAwaiter2") result.AssertLabeledSpansAre("awaitconflict", type:=RelatedLocationType.UnresolvedConflict) End Using End Sub <Theory, CombinatorialData> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/528966")> Public Sub RenameMoveNextInVBCausesConflictInForEach(host As RenameTestHost) Using result = RenameEngineResult.Create(_outputHelper, <Workspace> <Project Language="Visual Basic" AssemblyName="Project1" CommonReferences="true"> <Document> Option Infer On Imports System Public Class B Public Property Current As Integer Public Function [|$$MoveNext|]() As Boolean Return False End Function End Class Public Class C Public Function GetEnumerator() As B Return Nothing End Function End Class </Document> </Project> <Project Language="C#" AssemblyName="Project2" CommonReferences="true"> <ProjectReference>Project1</ProjectReference> <Document> class D { static void Main() { foreach (var x in {|foreachconflict:new C()|}) { } } } </Document> </Project> </Workspace>, host:=host, renameTo:="MovNext") result.AssertLabeledSpansAre("foreachconflict", type:=RelatedLocationType.UnresolvedConflict) End Using End Sub <Theory, CombinatorialData> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/528966")> Public Sub RenameMoveNextInVBToUpperCaseOnlyCausesConflictInCSForEach(host As RenameTestHost) Using result = RenameEngineResult.Create(_outputHelper, <Workspace> <Project Language="Visual Basic" AssemblyName="Project1" CommonReferences="true"> <Document> Option Infer On Imports System Public Class B Public Property Current As Integer Public Function [|$$MoveNext|]() As Boolean Return False End Function End Class Public Class C Public Function GetEnumerator() As B Return Nothing End Function End Class Public Class E Public Sub Goo for each x in new C() next End Sub End Class </Document> </Project> <Project Language="C#" AssemblyName="Project2" CommonReferences="true"> <ProjectReference>Project1</ProjectReference> <Document> class D { static void Main() { foreach (var x in {|foreachconflict:new C()|}) { } } } </Document> </Project> </Workspace>, host:=host, renameTo:="MoveNEXT") result.AssertLabeledSpansAre("foreachconflict", type:=RelatedLocationType.UnresolvedConflict) End Using End Sub End Class End Namespace