示例#1
0
        static int GetHashCodeHelper2(GenericInstanceType type)
        {
            var hashCode = type.GenericArguments.Count;

            for (int i = 0; i < type.GenericArguments.Count; i++)
            {
                hashCode ^= MetadataResolver.GetHashCode(type.GenericArguments[i]) << (i % 16);
            }

            return(hashCode);
        }
示例#2
0
        static int GetHashCodeHelper(TypeSpecification type)
        {
            var hashCode = MetadataResolver.GetHashCode(type.ElementType);

            if (type.IsGenericInstance)
            {
                hashCode ^= GetHashCodeHelper2((GenericInstanceType)type);
            }
            else if (type.IsRequiredModifier || type.IsOptionalModifier)
            {
                hashCode ^= GetHashCodeHelper2((IModifierType)type);
            }
            else if (type.IsArray)
            {
                hashCode ^= GetHashCodeHelper2((ArrayType)type);
            }

            return(hashCode);
        }
示例#3
0
 static int GetHashCodeHelper2(IModifierType type)
 {
     return(MetadataResolver.GetHashCode(type.ModifierType));
 }