Exemplo n.º 1
0
    static void TestMovedGenericVirtualMethod()
    {
        var o = new MyChildGeneric <Object>();

        Assert.AreEqual(o.MovedToBaseClass <WeakReference>(), typeof(List <WeakReference>).ToString());
        Assert.AreEqual(o.ChangedToVirtual <WeakReference>(), typeof(List <WeakReference>).ToString());

        if (!LLILCJitEnabled)
        {
            o = null;

            try
            {
                o.MovedToBaseClass <WeakReference>();
            }
            catch (NullReferenceException)
            {
                try
                {
                    o.ChangedToVirtual <WeakReference>();
                }
                catch (NullReferenceException)
                {
                    return;
                }
            }

            Assert.AreEqual("NullReferenceException", "thrown");
        }
    }
Exemplo n.º 2
0
    static void TestMovedGenericVirtualMethod()
    {
        var o = new MyChildGeneric <Object>();

        Assert.AreEqual(o.MovedToBaseClass <WeakReference>(), typeof(List <WeakReference>).ToString());
        Assert.AreEqual(o.ChangedToVirtual <WeakReference>(), typeof(List <WeakReference>).ToString());
    }
Exemplo n.º 3
0
    static void TestGenericOverStruct()
    {
        var o1 = new MyGeneric <String, MyGrowingStruct>();

        Assert.AreEqual(o1.GenericVirtualMethod <MyChangingStruct, IEnumerable <Program> >(),
                        "System.StringMyGrowingStructMyChangingStructSystem.Collections.Generic.IEnumerable`1[Program]");

        var o2 = new MyChildGeneric <MyChangingStruct>();

        Assert.AreEqual(o2.MovedToBaseClass <MyGrowingStruct>(), typeof(List <MyGrowingStruct>).ToString());
        Assert.AreEqual(o2.ChangedToVirtual <MyGrowingStruct>(), typeof(List <MyGrowingStruct>).ToString());
    }
Exemplo n.º 4
0
    static void TestMovedGenericVirtualMethodOnNullReference()
    {
        MyChildGeneric <Object> o = null;

        try
        {
            o.MovedToBaseClass <WeakReference>();
        }
        catch (NullReferenceException)
        {
            try
            {
                o.ChangedToVirtual <WeakReference>();
            }
            catch (NullReferenceException)
            {
                return;
            }
        }

        Assert.AreEqual("NullReferenceException", "thrown");
    }
Exemplo n.º 5
0
    static void TestGenericNonVirtualMethod()
    {
        var c = new MyChildGeneric <string>();

        Assert.AreEqual(CallGeneric(c), "MyGeneric.NonVirtualMethod");
    }
Exemplo n.º 6
0
    static void TestMovedGenericVirtualMethod()
    {
        var o = new MyChildGeneric<Object>();

        Assert.AreEqual(o.MovedToBaseClass<WeakReference>(), typeof(List<WeakReference>).ToString());
        Assert.AreEqual(o.ChangedToVirtual<WeakReference>(), typeof(List<WeakReference>).ToString());

        o = null;

        try
        {
            o.MovedToBaseClass<WeakReference>();
        }
        catch (NullReferenceException)
        {
            try
            {
                o.ChangedToVirtual<WeakReference>();
            }
            catch (NullReferenceException)
            {
                return;
            }
        }

        Assert.AreEqual("NullReferenceException", "thrown");
    }