/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/Test2/Simplification/SimplificationTests.vb
581 строка
10 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 Microsoft.CodeAnalysis.CodeStyle Imports Microsoft.CodeAnalysis.CSharp.CodeStyle Imports Microsoft.CodeAnalysis.Editor.UnitTests.CodeActions Namespace Microsoft.CodeAnalysis.Editor.UnitTests.Simplification <Trait(Traits.Feature, Traits.Features.Simplification)> Public Class SimplificationTests Inherits AbstractSimplificationTests Private Shared ReadOnly DoNotPreferBraces As New OptionsCollection(LanguageNames.VisualBasic) From { {CSharpCodeStyleOptions.PreferBraces, New CodeStyleOption2(Of PreferBracesPreference)(PreferBracesPreference.None, NotificationOption2.Silent)} } <Fact> Public Async Function TestCSharp_DoNotSimplifyIfBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { if (true) {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { if (true) { return; } } } </code> Await TestAsync(input, expected) End Function <Fact> Public Async Function TestCSharp_DoNotSimplifyMethodBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() {|Simplify:{ return; }|} } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_DoNotSimplifyTryBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { try {|Simplify:{ return; }|} finally { } } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { try { return; } finally { } } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyIfBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { if (true) {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { if (true) return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyElseBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { if (true) { } else {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { if (true) { } else return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyWhileBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { while (true) {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { while (true) return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyDoBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { do {|Simplify:{ return; }|} while (true); } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { do return; while (true); } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyUsingBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { using (x) {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { using (x) return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyLockBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { lock (x) {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { lock (x) return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyForBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { for (;;) {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { for (;;) return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact> Public Async Function TestCSharp_SimplifyForeachBlock() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> class Program { void M() { foreach (var x in y) {|Simplify:{ return; }|} } } </Document> </Project> </Workspace> Dim expected = <code> class Program { void M() { foreach (var x in y) return; } } </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact, WorkItem("https://github.com/dotnet/roslyn/issues/67867")> Public Async Function TestCSharp_SimplifyBaseConstructorCall() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> <![CDATA[ using System.Collections.Generic; public partial class A { public A(Id id, IEnumerable<D> deps) { } } {|Simplify: public partial class B : A { public B() : base(default(Id), default(IEnumerable<D>)) { } } |} public partial class D { } public partial class Id { } public partial class V { } ]]> </Document> </Project> </Workspace> Dim expected = <code> <![CDATA[ using System.Collections.Generic; public partial class A { public A(Id id, IEnumerable<D> deps) { } } public partial class B : A { public B() : base(default, default) { } } public partial class D { } public partial class Id { } public partial class V { } ]]> </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact, WorkItem("https://github.com/dotnet/roslyn/issues/67867")> Public Async Function TestCSharp_DoNotSimplifyBothArgumentsInAmbiguousBaseConstructorCall() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> <![CDATA[ using System.Collections.Generic; public partial class A { public A(Id id, IEnumerable<D> deps) { } public A(string s, V v) { } } {|Simplify: public partial class B : A { public B() : base(default(Id), default(IEnumerable<D>)) { } } |} public partial class D { } public partial class Id { } public partial class V { } ]]> </Document> </Project> </Workspace> Dim expected = <code> <![CDATA[ using System.Collections.Generic; public partial class A { public A(Id id, IEnumerable<D> deps) { } public A(string s, V v) { } } public partial class B : A { public B() : base(default, default(IEnumerable<D>)) { } } public partial class D { } public partial class Id { } public partial class V { } ]]> </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function <Fact, WorkItem("https://github.com/dotnet/roslyn/issues/67867")> Public Async Function TestCSharp_DoNotSimplifyBothArgumentsInAmbiguousCall() As Task Dim input = <Workspace> <Project Language="C#" CommonReferences="true"> <Document> <![CDATA[ using System.Collections.Generic; public partial class A { public void Goo(Id id, IEnumerable<D> deps) { } public void Goo(string s, V v) { } } {|Simplify: public partial class B : A { public B() { Goo((Id)default, (IEnumerable<D>)default); } } |} public partial class D { } public partial class Id { } public partial class V { } ]]> </Document> </Project> </Workspace> Dim expected = <code> <![CDATA[ using System.Collections.Generic; public partial class A { public void Goo(Id id, IEnumerable<D> deps) { } public void Goo(string s, V v) { } } public partial class B : A { public B() { Goo(default, (IEnumerable<D>)default); } } public partial class D { } public partial class Id { } public partial class V { } ]]> </code> Await TestAsync(input, expected, DoNotPreferBraces) End Function End Class End Namespace