summaryrefslogtreecommitdiff
path: root/tests/src/Regressions/coreclr/9414/readonlyPrefix.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/Regressions/coreclr/9414/readonlyPrefix.cs')
-rw-r--r--tests/src/Regressions/coreclr/9414/readonlyPrefix.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/src/Regressions/coreclr/9414/readonlyPrefix.cs b/tests/src/Regressions/coreclr/9414/readonlyPrefix.cs
new file mode 100644
index 0000000000..05148a1800
--- /dev/null
+++ b/tests/src/Regressions/coreclr/9414/readonlyPrefix.cs
@@ -0,0 +1,36 @@
+// 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.
+
+class Program
+{
+ interface IFrobber
+ {
+ void Frob();
+ }
+
+ class Frobber : IFrobber
+ {
+ public void Frob()
+ {
+ }
+ }
+
+ class Foo<T> where T : IFrobber
+ {
+ public static void FrobAll(T[,] arr)
+ {
+ for (int i = 0; i < arr.Length; i++)
+ {
+ // 'readonly' prefix on call to array's Address method must be respected, and the type check bypassed
+ arr[0, i].Frob();
+ }
+ }
+ }
+
+ private static int Main()
+ {
+ Foo<IFrobber>.FrobAll(new Frobber[,] { { new Frobber() } });
+ return 100;
+ }
+}