Exemplo n.º 1
0
 public void TestAssignableFromSameType2()
 {
     RType type1 = new RType("Foo");
     RType type2 = new RType("Foo");
     Assert.IsFalse(type1.IsAssignable(type2)); // Same types should point to the same type object
     Assert.IsTrue(type1.IsAssignable(type1));
 }
Exemplo n.º 2
0
 public void TestSubclassOfWithInterface()
 {
     RType iBarTy = new RType("IBar", RTypeAttributes.Interface);
     RType fooTy = new RType("Foo");
     fooTy.AddInterfaceImplementation(iBarTy);
     Assert.IsTrue(iBarTy.IsAssignable(fooTy));
 }
Exemplo n.º 3
0
 public void TestSubclassOfWithBaseBaseClass()
 {
     RType barTy = new RType("Bar");
     RType zooTy = new RType("Zoo", RTypeAttributes.Class, barTy);
     RType fooTy = new RType("Foo", RTypeAttributes.Class, zooTy);
     Assert.IsTrue(barTy.IsAssignable(fooTy));
 }
Exemplo n.º 4
0
        public static bool CanCast(RType source, RType dest)
        {
            if (source.IsPrimitive && Equals(dest, RppTypeSystem.AnyTy))
            {
                return true;
            }

            if ((dest.IsClass || dest.IsGenericParameter) && Equals(source, RppTypeSystem.NullTy))
            {
                return true;
            }

            if (dest.IsAssignable(source))
            {
                return true;
            }

            if (Equals(source, RppTypeSystem.NothingTy))
            {
                return true;
            }

            return false;
        }
Exemplo n.º 5
0
 public void TestSubclassOfWithBaseClass()
 {
     RType baseType = new RType("Bar");
     RType type = new RType("Foo", RTypeAttributes.Class, baseType);
     Assert.IsTrue(baseType.IsAssignable(type));
 }
Exemplo n.º 6
0
 public void TestAssignableFromSameType()
 {
     RType type = new RType("Foo");
     Assert.IsTrue(type.IsAssignable(type));
 }
Exemplo n.º 7
0
 public void TestAssignablableFromNull()
 {
     RType type = new RType("Foo");
     Assert.IsFalse(type.IsAssignable(null));
 }