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); } }
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); } }
public static void AssertAreGenerics(this FinalizationResults result, SolvingNode targetGenericNode, params string[] varNames) { foreach (var varName in varNames) { Assert.AreEqual(targetGenericNode, result.GetVariableNode(varName).GetNonReference()); } }
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); }
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(); } } }
public static void AssertNoGenerics(this FinalizationResults results) => Assert.AreEqual(0, results.GenericsCount, "Unexpected generic types");
public static SolvingNode AssertAndGetSingleArithGeneric(this FinalizationResults result) => AssertAndGetSingleGeneric(result, Primitive.U24, Primitive.Real, false);