void AddExternalType(IReturnType rt, List <ClassNameTypeCountPair> externalTypes, int classCount) { if (rt.IsDefaultReturnType) { ClassNameTypeCountPair pair = new ClassNameTypeCountPair(rt); if (!classIndices.ContainsKey(pair)) { classIndices.Add(pair, externalTypes.Count + classCount); externalTypes.Add(pair); } } else if (rt.IsGenericReturnType) { // ignore } else if (rt.IsArrayReturnType) { AddExternalType(rt.CastToArrayReturnType().ArrayElementType, externalTypes, classCount); } else if (rt.IsConstructedReturnType) { AddExternalType(rt.CastToConstructedReturnType().UnboundType, externalTypes, classCount); foreach (IReturnType typeArgument in rt.CastToConstructedReturnType().TypeArguments) { AddExternalType(typeArgument, externalTypes, classCount); } } else { LoggingService.Warn("Unknown return type: " + rt.ToString()); } }
public override bool Equals(object obj) { if (!(obj is ClassNameTypeCountPair)) { return(false); } ClassNameTypeCountPair myClassNameTypeCountPair = (ClassNameTypeCountPair)obj; if (ClassName != myClassNameTypeCountPair.ClassName) { return(false); } if (TypeParameterCount != myClassNameTypeCountPair.TypeParameterCount) { return(false); } return(true); }
public override bool Equals(object obj) { if (!(obj is ClassNameTypeCountPair)) { return(false); } ClassNameTypeCountPair myClassNameTypeCountPair = (ClassNameTypeCountPair)obj; if (!ClassName.Equals(myClassNameTypeCountPair.ClassName, StringComparison.InvariantCultureIgnoreCase)) { return(false); } if (TypeParameterCount != myClassNameTypeCountPair.TypeParameterCount) { return(false); } return(true); }
void AddExternalType(IReturnType rt, List<ClassNameTypeCountPair> externalTypes, int classCount) { if (rt.IsDefaultReturnType) { ClassNameTypeCountPair pair = new ClassNameTypeCountPair(rt); if (!classIndices.ContainsKey(pair)) { classIndices.Add(pair, externalTypes.Count + classCount); externalTypes.Add(pair); } } else if (rt.IsGenericReturnType) { // ignore } else if (rt.IsArrayReturnType) { AddExternalType(rt.CastToArrayReturnType().ArrayElementType, externalTypes, classCount); } else if (rt.IsConstructedReturnType) { AddExternalType(rt.CastToConstructedReturnType().UnboundType, externalTypes, classCount); foreach (IReturnType typeArgument in rt.CastToConstructedReturnType().TypeArguments) { AddExternalType(typeArgument, externalTypes, classCount); } } else if (rt.IsDecoratingReturnType<PointerReturnType>()) { AddExternalType(rt.CastToDecoratingReturnType<PointerReturnType>().BaseType, externalTypes, classCount); } else { LoggingService.Warn("Unknown return type: " + rt.ToString()); } }