Здравствуйте, VladD2, Вы писали:
ie>>Метод то создается, а вот макрос NotNull не раскрывается ie>>Как мне для вновь сгенеренных мемберов прогнать макросы?
VD>И где ты добавляешь макрос? VD>
Здравствуйте, VladD2, Вы писали:
VD>Плюс не надо это делать на WithTypedMembers. Это скорее всего поздно.
Угу, так и вышло. На стадиях BeforeInheritance и BeforeTypedMembers NotNull раскрывается.
Падало с NRE из-за того, что tb.DefineAndReturn (meth) возвращает на этих стадияю null.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[3]: Вызов макросов у вновь сгенеренных мемберов.
Здравствуйте, VladD2, Вы писали:
ie>>Ну так он в списке attrs.
VD>В каком еще списке? NotNull — это вроде мета-атрибут определенный только для параметров. VD>
ie>>Хмм. Щас попробовал на более ранних стадиях, при компиляции проекта использующего макрос, компилятор падает с NRE. Пошел разбираться почему так.
VD>Что такое NRE?
NullReferenceException
VD>Если что-то падает, то это в багтрекер. Думаю, основная причина в том что я сказал выше.
Угу, я ниже уже написал, что ты прав.
Там вообще интересная ситуация, если бы NotNull раскрывался в MacroPhase.WithTypedMembers, то он бы нормально раскрылся после отработки моего макроса, но он в MacroPhase.BeforeInheritance. Однако, судя по коду (тут не уверен, еще копаю), при дефайне, если в вновь задефайненых мемберах есть макро-атрибуты, то для них выполняются фазы BeforeInheritance и BeforeTypedMembers, но они почему-то нифига на деле не выполняются, баг это или нет, пока не понял, но понимание уже близко
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[5]: Вызов макросов у вновь сгенеренных мемберов.