private static bool TargetMemberTypeComparer(ITypePair typePair, ITypePair otherTypePair) { if (TypePairExtensions.IsForTargetType(typePair, otherTypePair)) { return(true); } return((otherTypePair is IQualifiedMemberContext context) && (context.TargetMember?.HasCompatibleType(typePair.TargetType) == 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); }