private static bool SourceMemberTypeComparer(ITypePair typePair, ITypePair otherTypePair) { if (TypePairExtensions.IsForSourceType(typePair, otherTypePair)) { return(true); } return((otherTypePair is IQualifiedMemberContext context) && (context.SourceMember?.HasCompatibleType(typePair.SourceType) == true)); }
private static bool SourceDictionaryTypeComparer <TValue>(ITypePair typePair, ITypePair otherTypePair) { if (!TypePairExtensions.IsForSourceType(typePair, otherTypePair)) { return(false); } if (typeof(TValue) == Constants.AllTypes) { return(true); } if ((otherTypePair as IQualifiedMemberContext)?.SourceMember is DictionarySourceMember dictionaryMember) { return(typeof(TValue).IsAssignableTo(dictionaryMember.ValueType)); } return(false); }