summaryrefslogtreecommitdiff
path: root/tests/src/Loader/classloader/DefaultInterfaceMethods/constrainedcall/constrainedcall.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/Loader/classloader/DefaultInterfaceMethods/constrainedcall/constrainedcall.cs')
-rw-r--r--tests/src/Loader/classloader/DefaultInterfaceMethods/constrainedcall/constrainedcall.cs189
1 files changed, 0 insertions, 189 deletions
diff --git a/tests/src/Loader/classloader/DefaultInterfaceMethods/constrainedcall/constrainedcall.cs b/tests/src/Loader/classloader/DefaultInterfaceMethods/constrainedcall/constrainedcall.cs
deleted file mode 100644
index 3f3d1153ee..0000000000
--- a/tests/src/Loader/classloader/DefaultInterfaceMethods/constrainedcall/constrainedcall.cs
+++ /dev/null
@@ -1,189 +0,0 @@
-// 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.
-
-using System;
-using System.Collections.Generic;
-
-interface IFoo
-{
- int Foo(int c);
-}
-
-interface IAdd
-{
- int Add(int c);
-}
-
-// Only needed for writing IFoo.Foo code
-class IFoo_Impl : IFoo
-{
- public int Foo(int c)
- {
- IAdd adder = (IAdd) this;
- return adder.Add(c);
- }
-}
-
-struct FooValue : IFoo, IAdd
-{
- public int val;
-
- public int Foo(int c)
- {
- val +=c;
- return val;
- }
-
- public int Add(int c)
- {
- val +=c;
- return val;
- }
-}
-
-interface IHorrible<T>
-{
- int GetLocalVal();
- void SetLocalVal(int val);
- int Horrible();
-}
-
-// Only needed for the default interface implementation
-class IHorrible_Impl<T> : IHorrible<T>
-{
- public int GetLocalVal() { return 0; }
- public void SetLocalVal(int val) {}
- public int Horrible()
- {
- int val = GetLocalVal();
- val++;
- SetLocalVal(val);
- return val;
- }
-}
-
-struct HorribleCase<Z> : IHorrible<IList<Z>>, IHorrible<IEnumerable<Z>>
-{
- int localVal;
- public int GetLocalVal() { return localVal; }
- public void SetLocalVal(int val) { localVal = val; }
- int IHorrible<IList<Z>>.Horrible() { return ++localVal; }
-
- // Remove
- int IHorrible<IEnumerable<Z>>.Horrible() { return ++localVal; }
-}
-
-class HorribleTest
-{
- public static int Horror<T,U>(T t) where T:IHorrible<U>
- {
- return t.Horrible() + t.Horrible();
- }
-
- public static void RunTest()
- {
- Test.Assert(Horror<HorribleCase<object>,IEnumerable<object>>(new HorribleCase<object>())) == 2, "Fail");
- Test.Assert(Horror<HorribleCase<object>,IList<object>>(default(HorribleCase<object>)) == 3, "Fail");
- }
-}
-
-/*
-interface IFoo<T>
-{
- int Foo(int c);
-}
-
-interface IAdd
-{
- int Add(int c);
-}
-
-// Only needed for writing IFoo.Foo code
-class IFoo_Impl<T> : IFoo<T>
-{
- public int Foo(int c)
- {
- IAdd adder = (IAdd) this;
- return adder.Add(c);
- }
-}
-
-struct FooValue<T> : IFoo<T>, IAdd
-{
- public int val;
-
- public int Foo(int c)
- {
- val +=c;
- return val;
- }
-
- public int Add(int c)
- {
- val +=c;
- return val;
- }
-}
-*/
-
-class SimpleConstraintTest
-{
- public static int CallFoo_WithConstraints<T>(ref T foo, int val) where T : IFoo
- {
- return foo.Foo(val);
- }
-
- /*
- public static int CallFoo_WithConstraints<T>(ref T foo, int val) where T : IFoo<object>
- {
- return foo.Foo(val);
- }
- */
-
- public static void RunTest()
- {
- FooValue foo = new FooValue();
- foo.val = 10;
-
- Console.WriteLine("Calling CallFoo_WithConstraints on FooValue - expecting IFoo::Foo");
- Test.Assert(CallFoo_WithConstraints(ref foo, 10) == 20, "Calling CallFoo_WithConstraints on FooValue");
-
- Test.Assert(foo.val == 10, "Expecting boxing on CallFoo_WithConstraints");
- }
-}
-
-class Program
-{
- public static int Main()
- {
- HorribleTest.RunTest();
- SimpleConstraintTest.RunTest();
-
- return Test.Ret();
- }
-}
-
-class Test
-{
- private static bool Pass = true;
-
- public static int Ret()
- {
- return Pass? 100 : 101;
- }
-
- public static void Assert(bool cond, string msg)
- {
- if (cond)
- {
- Console.WriteLine("PASS");
- }
- else
- {
- Console.WriteLine("FAIL: " + msg);
- Pass = false;
- }
- }
-}
-