Skip to content

Commit 4da86f1

Browse files
Add test for object list
1 parent 3e76d52 commit 4da86f1

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

Tests/CSharp/ExpressionTests/ByRefTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,26 +469,32 @@ public async Task Issue567Extended()
469469
await TestConversionVisualBasicToCSharpAsync(@"Public Class Issue567
470470
Sub DoSomething(ByRef str As String)
471471
lst = New List(Of String)({4.ToString(), 5.ToString(), 6.ToString()})
472+
lst2 = New List(Of Object)({4.ToString(), 5.ToString(), 6.ToString()})
472473
str = 999.ToString()
473474
End Sub
474475
475476
Sub Main()
476477
DoSomething(lst(1))
477478
Debug.Assert(lst(1) = 4.ToString())
479+
DoSomething(lst2(1))
480+
Debug.Assert(lst2(1) = 5.ToString())
478481
End Sub
479482
480483
End Class
481484
482485
Friend Module Other
483486
Public lst As List(Of String) = New List(Of String)({ 1.ToString(), 2.ToString(), 3.ToString()})
487+
Public lst2 As List(Of Object) = New List(Of Object)({ 1.ToString(), 2.ToString(), 3.ToString()})
484488
End Module", @"using System.Collections.Generic;
485489
using System.Diagnostics;
490+
using Microsoft.VisualBasic.CompilerServices;
486491
487492
public partial class Issue567
488493
{
489494
public void DoSomething(ref string str)
490495
{
491496
Other.lst = new List<string>(new[] { 4.ToString(), 5.ToString(), 6.ToString() });
497+
Other.lst2 = new List<object>(new[] { 4.ToString(), 5.ToString(), 6.ToString() });
492498
str = 999.ToString();
493499
}
494500
@@ -499,12 +505,18 @@ public void Main()
499505
DoSomething(ref argstr);
500506
tmp[1] = argstr;
501507
Debug.Assert((Other.lst[1] ?? """") == (4.ToString() ?? """"));
508+
var tmp1 = Other.lst2;
509+
string argstr1 = Conversions.ToString(Other.lst2[1]);
510+
DoSomething(ref argstr1);
511+
tmp1[1] = argstr1;
512+
Debug.Assert(Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(Other.lst2[1], 5.ToString(), false)));
502513
}
503514
}
504515
505516
internal static partial class Other
506517
{
507518
public static List<string> lst = new List<string>(new[] { 1.ToString(), 2.ToString(), 3.ToString() });
519+
public static List<object> lst2 = new List<object>(new[] { 1.ToString(), 2.ToString(), 3.ToString() });
508520
}");
509521
}
510522
}

0 commit comments

Comments
 (0)