Поддержка Conditional атрибутоа.
От: hardcase Пират http://nemerle.org
Дата: 20.02.11 22:20
Оценка: 238 (5)
Встречаем сабж в ревизии r9605.
Собственно давний вопрос
Автор: Пельмешко
Дата: 26.11.09
камрада Пельмешко можно закрыть.

Поддерживается Conditional-атрибут на классах-атрибутах и на методах.

К сожалению, без ломающих изменений обойтись не получилось.
Препроцессор теперь не позволяет выполнять define/undef в коде, только до всяческих объявлений (это поведение аналогично компилятору C#):
#define Foo  // можно

using System;

#define Bar // ошибка компиляции

namespace MegaCorp.Product
{
...
}



Чего пока не сделано:
1) Проверка наследования override-методами Conditional-атрибута для классов, объявленных в собираемом проекте.
2) Нет запрета на получение делегата-функционального типа от Conditional-метода



Для интересующихся кишками: взовы Conditional-методов выбрасываются в T4, т.е. типизация аргументов полностью выполняется, их передача также выбрасывается.
Например:
#undef Bar

...

[Conditional("Bar")]
Bar(_ : int) : void { ... }

...

Bar({x(); y(); z(); 1})

Вызовы x, y, z и 1 непопадут в сборку
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Поддержка Conditional атрибутоа.
От: hardcase Пират http://nemerle.org
Дата: 20.02.11 22:32
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Чего пока не сделано:

H>1) Проверка наследования override-методами Conditional-атрибута для классов, объявленных в собираемом проекте.
H>2) Нет запрета на получение делегата-функционального типа от Conditional-метода

3) поддержка в нашем парсере C#
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Поддержка Conditional атрибутоа.
От: hardcase Пират http://nemerle.org
Дата: 22.02.11 23:13
Оценка: 15 (1)
Фича добита полностью.
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.