Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/Loader/classloader')
-rw-r--r--src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.cs52
-rw-r--r--src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.csproj8
2 files changed, 60 insertions, 0 deletions
diff --git a/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.cs b/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.cs
new file mode 100644
index 00000000000..f0f461777e7
--- /dev/null
+++ b/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.cs
@@ -0,0 +1,52 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System;
+
+
+namespace ReproMAUI6811;
+
+public static class Program
+{
+ public static int Main()
+ {
+ Leaf l = new Leaf();
+
+ if (l.getI().ToString() != "Leaf")
+ return 1;
+ if (((Intermediate)l).getI().ToString() != "Leaf")
+ return 2;
+ if (((PseudoBase)l).getI().ToString() != "Leaf")
+ return 3;
+ if (((Base)l).getI().ToString() != "Leaf")
+ return 4;
+ return 100;
+ }
+}
+
+public abstract class Base {
+ public abstract I getI();
+}
+
+public class PseudoBase : Base {
+ public override I getI() => new C ("PseudoBase");
+}
+
+public abstract class Intermediate : PseudoBase {
+ public override abstract I getI();
+}
+
+public class Leaf : Intermediate {
+ public Leaf() {}
+ public override C getI() { return new C ("Leaf"); }
+}
+
+public interface I {}
+
+public class C : I {
+ private readonly string _repr;
+ public C(string s) { _repr = s; }
+ public override string ToString() => _repr;
+}
+
+
diff --git a/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.csproj b/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.csproj
new file mode 100644
index 00000000000..570644f1dbc
--- /dev/null
+++ b/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/OverrideReabstracted.csproj
@@ -0,0 +1,8 @@
+<Project Sdk="Microsoft.NET.Sdk">
+ <PropertyGroup>
+ <OutputType>Exe</OutputType>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="$(MSBuildProjectName).cs" />
+ </ItemGroup>
+</Project>