Skip to content

Commit db7364d

Browse files
Add AI tests for recent changes
1 parent e67b1ab commit db7364d

2 files changed

Lines changed: 100 additions & 0 deletions

File tree

Tests/CSharp/MemberTests/MemberTests.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,6 +1147,50 @@ public async static Task ThenExit<T>(this Task<T> task, Func<T, Task> f)
11471147
}");
11481148
}
11491149

1150+
[Fact]
1151+
public async Task TestAsyncFunctionExitReturnsDefaultAsync()
1152+
{
1153+
await TestConversionVisualBasicToCSharpAsync(
1154+
@"Imports System.Threading.Tasks
1155+
1156+
Class AsyncExit
1157+
Public Async Function AsyncFuncExit() As Task(Of Integer)
1158+
Await Task.Delay(1)
1159+
Exit Function
1160+
End Function
1161+
End Class", @"using System.Threading.Tasks;
1162+
1163+
internal partial class AsyncExit
1164+
{
1165+
public async Task<int> AsyncFuncExit()
1166+
{
1167+
await Task.Delay(1);
1168+
return default;
1169+
}
1170+
}");
1171+
}
1172+
1173+
[Fact]
1174+
public async Task TestAsyncTaskFunctionNoImplicitReturnAsync()
1175+
{
1176+
await TestConversionVisualBasicToCSharpAsync(
1177+
@"Imports System.Threading.Tasks
1178+
1179+
Class AsyncNoReturn
1180+
Public Async Function DoAsync() As Task
1181+
Await Task.Delay(1)
1182+
End Function
1183+
End Class", @"using System.Threading.Tasks;
1184+
1185+
internal partial class AsyncNoReturn
1186+
{
1187+
public async Task DoAsync()
1188+
{
1189+
await Task.Delay(1);
1190+
}
1191+
}");
1192+
}
1193+
11501194
[Fact]
11511195
public async Task TestExternDllImportAsync()
11521196
{

Tests/CSharp/MemberTests/PropertyMemberTests.cs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,62 @@ public int Test3
6868
BC30124: Property without a 'ReadOnly' or 'WriteOnly' specifier must provide both a 'Get' and a 'Set'.");
6969
}
7070

71+
[Fact]
72+
public async Task TestWriteOnlyPropertyExitAsync()
73+
{
74+
await TestConversionVisualBasicToCSharpAsync(
75+
@"Class TestClass
76+
Private m_value As Integer
77+
78+
Public WriteOnly Property Value As Integer
79+
Set(ByVal value As Integer)
80+
If value = 0 Then Exit Property
81+
m_value = value
82+
End Set
83+
End Property
84+
End Class", @"
85+
internal partial class TestClass
86+
{
87+
private int m_value;
88+
89+
public int Value
90+
{
91+
set
92+
{
93+
if (value == 0)
94+
return;
95+
m_value = value;
96+
}
97+
}
98+
}");
99+
}
100+
101+
[Fact]
102+
public async Task TestExitPropertyInTaskReturningGetterAsync()
103+
{
104+
await TestConversionVisualBasicToCSharpAsync(
105+
@"Imports System.Threading.Tasks
106+
107+
Class TestClass
108+
Public ReadOnly Property Value As Task(Of Integer)
109+
Get
110+
Exit Property
111+
End Get
112+
End Property
113+
End Class", @"using System.Threading.Tasks;
114+
115+
internal partial class TestClass
116+
{
117+
public Task<int> Value
118+
{
119+
get
120+
{
121+
return default;
122+
}
123+
}
124+
}");
125+
}
126+
71127
[Fact]
72128
public async Task TestParameterizedPropertyAsync()
73129
{

0 commit comments

Comments
 (0)