-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Bug
Copy link
Description
public struct S1
{
public int this[int i, params int[] j]
{
get
{
System.Console.Write("get_Item ");
System.Console.Write(i);
System.Console.Write(j[0]);
System.Console.Write(" ");
return 0;
}
set
{
System.Console.Write("set_Item ");
System.Console.Write(i);
System.Console.Write(j[0]);
System.Console.Write(value);
}
}
}
class Program
{
static void Main()
{
Test1(default);
System.Console.WriteLine();
Test2(default);
}
static void Test1(S1 s)
{
s[Get1(), Get2()] += Get3();
}
static void Test2(S1 s)
{
s[Get1(), [Get2()]] += Get3();
}
public static int Get1()
{
System.Console.Write("Get1 ");
return 1;
}
public static int Get2()
{
System.Console.Write("Get2 ");
return 2;
}
public static int Get3()
{
System.Console.Write("Get3 ");
return 3;
}
}
Observed:
Get2 Get1 get_Item 12 Get3 set_Item 123
Get1 Get2 get_Item 12 Get3 set_Item 123
Expected:
Get1 Get2 get_Item 12 Get3 set_Item 123
Get1 Get2 get_Item 12 Get3 set_Item 123