public void GenericParametersFromTwoTypesAreNotEqual() { var listDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(List <>), _mscorlib); var stackDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(Comparer <>), _mscorlib); Assert.That(TypeReferenceEqualityComparer.AreEqual(listDefinition.GenericParameters[0], stackDefinition.GenericParameters[0]), Is.False); }
public void TypeReferenceEqualsTypeDefinition() { var typeDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib); var typeReference = new TypeReference(typeDefinition.Namespace, typeDefinition.Name, typeDefinition.Module, typeDefinition.Scope); Assert.That(TypeReferenceEqualityComparer.AreEqual(typeDefinition, typeReference), Is.True); }
public static List <int> GetFieldOffsetsOf(TypeReference typeToFind, TypeReference typeToLookIn, int archBits) { var offsets = new List <int>(); if (typeToLookIn != null) { GetFieldOffsetsOfRecurse((_, typeRef) => TypeReferenceEqualityComparer.AreEqual(typeRef, typeToFind), 0, typeToLookIn, offsets, archBits); } return(offsets); }
public void GenericInstanceTypeForSameTypeIsEqual() { var int32Definition = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib); var listDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(List <>), _mscorlib); var listGenericInstance = new GenericInstanceType(listDefinition); listGenericInstance.GenericArguments.Add(int32Definition); var listGenericInstance2 = new GenericInstanceType(listDefinition); listGenericInstance2.GenericArguments.Add(int32Definition); Assert.That(TypeReferenceEqualityComparer.AreEqual(listGenericInstance, listGenericInstance2), Is.True); }
public void GenericInstanceTypeFromTwoTypesAreNotEqual() { var int32Definition = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib); var listDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(List <>), _mscorlib); var listGenericInstance = new GenericInstanceType(listDefinition); listGenericInstance.GenericArguments.Add(int32Definition); var stackDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(Comparer <>), _mscorlib); var stackGenericInstance = new GenericInstanceType(stackDefinition); stackGenericInstance.GenericArguments.Add(int32Definition); Assert.That(TypeReferenceEqualityComparer.AreEqual(listGenericInstance, stackGenericInstance), Is.False); }
public void ArrayTypesWithDifferentRanksToNotMatch() { var elementType = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib); Assert.That(TypeReferenceEqualityComparer.AreEqual((TypeSpecification) new ArrayType(elementType, 1), (TypeSpecification) new ArrayType(elementType, 2)), Is.False, "Two type specifications that are array types with different ranks match, which is not expected."); }
public void ArrayTypesDoNotMatchIfElementTypeIsDifferent() { Assert.That(TypeReferenceEqualityComparer.AreEqual(new ArrayType(TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib), 1), new ArrayType(TypeDefinitionUtils.TypeDefinitionFor(typeof(Int64), _mscorlib), 1)), Is.False, "Two array types with different element types match, which is not expected."); }
public override bool Equals(Il2CppTypeData x, Il2CppTypeData y) => ((x.Attrs == y.Attrs) && TypeReferenceEqualityComparer.AreEqual(x.Type, y.Type, TypeComparisonMode.Exact));