Здравствуйте, Аноним, Вы писали:
А>А> modifiers.AddCustomAttribute(<[ Nemerle.Extensions.StructuralHashCode ]>);
А>
StructuralHashCode теперь указывать не надо. StructuralEquality реализует GetHashCode автоматом.
А>При компиляции выдает ошибку error : Can't find EqualsImpl(...). После ковыряния кода старой и новой версии Nemerle нашел интересную особенность. В старой версии StructuralEquality вызывался один метод класса StructuralEquality_type_postaddMacro на фазе WithTypeMembers, все хорошо компилировалось, генерировался код и все хорошо работало. В новой же версии вызывается, на фазе BeforeInheritance, StructuralEquality_type_postscanMacro который подставляет в генерируемый код пустой метод EqualsImpl(...), а на фазе WithTypeMembers, StructuralEquality_type_postaddMacro который переопределяет EqualsImpl(...), а если нет выдает ошибку написанную выше. Так вот не понятно почему на фазе BeforeInheritance макроса Persistent не вызывается StructuralEquality_type_postscanMacro? И как это можно исправить?
Поглядел беглым взглядом. Проблема в том, что класс для которого добавляется макрос как раз в это время обрабатывается и компилятор просто не понимает, что добавляется новый макрос для той же стадии.
Как решать проблему пока думаю. Видимо нужно что-то в компиляторе менять. Простых путей обхода пока не вижу. Разве что попробовать добавлять данный макрос из макро-атрибутов уровня сборки.