Re: [@IT, Bug] ComparerBuilder<T>, некорректный codegen
От: rameel https://github.com/rsdn/CodeJam
Дата: 21.01.17 13:18
Оценка: 75 (1)
Здравствуйте, Sinix, Вы писали:

S>В деталях пока не копался, самописные компареры сделал.


Это все вот поэтому:
var mi1 = InfoOf<MethodInfo>.Property(m => m.MethodHandle);                 // mi1.ReflectedType == typeof(MethodBase) потому что methodof(MethodBase.get_MethodHandle())
var mi2 = typeof(MethodInfo).GetProperty(nameof(MethodInfo.MethodHandle));  // mi2.ReflectedType == typeof(MethodInfo)

Assert.IsTrue(mi1 == mi2, "Fails");


А значит в ComparerBuilder.GetEqualityComparer вот на этой строчке мы получим пустой список
var members = TypeAccessor<T>.GetAccessor().Members.Where(m => hashSet.Contains(m.MemberInfo)).ToList();
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Отредактировано 21.01.2017 13:20 rameel . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.