示例#1
0
 public static void AssertNamed(this FinalizationResults results, IType type, params string[] varNames)
 {
     foreach (var varName in varNames)
     {
         Assert.AreEqual(type, results.GetVariableNode(varName).GetNonReference().State);
     }
 }
示例#2
0
 public static void AssertNode(this FinalizationResults results, IType type, params int[] nodeIds)
 {
     foreach (var id in nodeIds)
     {
         Assert.AreEqual(type, results.GetSyntaxNode(id).GetNonReference().State);
     }
 }
示例#3
0
 public static void AssertAreGenerics(this FinalizationResults result, SolvingNode targetGenericNode,
                                      params string[] varNames)
 {
     foreach (var varName in varNames)
     {
         Assert.AreEqual(targetGenericNode, result.GetVariableNode(varName).GetNonReference());
     }
 }
示例#4
0
        public static SolvingNode AssertAndGetSingleGeneric(this FinalizationResults result, Primitive desc,
                                                            Primitive anc, bool isComparable = false)
        {
            Assert.AreEqual(1, result.GenericsCount, "Incorrect generics count");
            var genericNode = result.Generics.Single();

            AssertGenericType(genericNode, desc, anc, isComparable);
            return(genericNode);
        }
示例#5
0
 public static void AssertNamedEqualToArrayOf(this FinalizationResults results, object typeOrNode, params string[] varNames)
 {
     foreach (var varName in varNames)
     {
         var node = results.GetVariableNode(varName).GetNonReference();
         if (node.State is Array array)
         {
             var element = array.ElementNode;
             if (typeOrNode is Primitive concrete)
             {
                 Assert.IsTrue(concrete.Equals(element.State));
             }
             else
             {
                 Assert.AreEqual(typeOrNode, array.ElementNode);
             }
         }
         else
         {
             Assert.Fail();
         }
     }
 }
示例#6
0
 public static void AssertNoGenerics(this FinalizationResults results)
 => Assert.AreEqual(0, results.GenericsCount, "Unexpected generic types");
示例#7
0
 public static SolvingNode AssertAndGetSingleArithGeneric(this FinalizationResults result)
 => AssertAndGetSingleGeneric(result, Primitive.U24, Primitive.Real, false);