コード例 #1
0
ファイル: AssignableFromTest.cs プロジェクト: dubik/csharprpp
 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));
 }
コード例 #2
0
ファイル: AssignableFromTest.cs プロジェクト: dubik/csharprpp
 public void TestSubclassOfWithInterface()
 {
     RType iBarTy = new RType("IBar", RTypeAttributes.Interface);
     RType fooTy = new RType("Foo");
     fooTy.AddInterfaceImplementation(iBarTy);
     Assert.IsTrue(iBarTy.IsAssignable(fooTy));
 }
コード例 #3
0
ファイル: AssignableFromTest.cs プロジェクト: dubik/csharprpp
 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));
 }
コード例 #4
0
ファイル: ImplicitCast.cs プロジェクト: dubik/csharprpp
        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;
        }
コード例 #5
0
ファイル: AssignableFromTest.cs プロジェクト: dubik/csharprpp
 public void TestSubclassOfWithBaseClass()
 {
     RType baseType = new RType("Bar");
     RType type = new RType("Foo", RTypeAttributes.Class, baseType);
     Assert.IsTrue(baseType.IsAssignable(type));
 }
コード例 #6
0
ファイル: AssignableFromTest.cs プロジェクト: dubik/csharprpp
 public void TestAssignableFromSameType()
 {
     RType type = new RType("Foo");
     Assert.IsTrue(type.IsAssignable(type));
 }
コード例 #7
0
ファイル: AssignableFromTest.cs プロジェクト: dubik/csharprpp
 public void TestAssignablableFromNull()
 {
     RType type = new RType("Foo");
     Assert.IsFalse(type.IsAssignable(null));
 }