Все привет.
Реализовал следующую возможность.
Если мы имеем класс с автоматически создаваемым конструкторо (например, с помощью макроса Record) или вхождение варианта, то раньше нельзя было создать конструктор с той же сигнатурой. Это приводило к тому, что во вхождениях вариантов нельзя было изменить логику конструирования объекта. Теперь если добавить к рукописному конструктору модификатор "new" и у сгенерированного конструктора не будет такого же модификатора, то компилятор предпочтет рукописный конструктор (точнее конструктор помеченный модификатором new). Пример:
public variant X
{
| A
{
x : int;
// this replace autogenerated (by Record macro) ctor
public new this(_x : int)
{
x = _x * 2;
}
}
Соответствующий тест:
redefine-generated-ctor.n.
Здравствуйте, VladD2, Вы писали:
VD>Все привет.
VD>Реализовал следующую возможность.
VD>Если мы имеем класс с автоматически создаваемым конструкторо (например, с помощью макроса Record) или вхождение варианта, то раньше нельзя было создать конструктор с той же сигнатурой. Это приводило к тому, что во вхождениях вариантов нельзя было изменить логику конструирования объекта. Теперь если добавить к рукописному конструктору модификатор "new" и у сгенерированного конструктора не будет такого же модификатора, то компилятор предпочтет рукописный конструктор (точнее конструктор помеченный модификатором new). Пример:
VD>VD>public variant X
VD>{
VD> | A
VD> {
VD> x : int;
VD> // this replace autogenerated (by Record macro) ctor
VD> public new this(_x : int)
VD> {
VD> x = _x * 2;
VD> }
VD> }
VD>
VD>Соответствующий тест: redefine-generated-ctor.n.
Вот за это я пожалуй скажу спасибо. Очень не хватало лично мне данной фичи для вариантов. А в какой сборке эта фича доступна?
Здравствуйте, evilbeaver, Вы писали:
E>А в какой сборке эта фича доступна?
8776
Здравствуйте, VladD2, Вы писали:
VD>Все привет.
VD>Реализовал следующую возможность.
Круто
Два вопроса. 1. Мараторий на новые фичи отменен? 2. Это попадет в документацию? Догадаться самому, что такая фича имеется, будет непросто.
Здравствуйте, SergASh, Вы писали:
SAS>Круто
SAS>Два вопроса. 1. Мараторий на новые фичи отменен?
Нет. Но если кто-то сам успеет до релиза все реализовать, протестировать, накатать тесты и закомитеть, то с ним никто бороться не будет.
Данная фича мне понадобилась при работе над самим компилятором. Дело в том, что очень сложно менять структуры данных в которые раскрываются квази-цитаты. Меняя описание для
ClassMember.Property я понял, что данная фича сняла бы множество проблем. Я почесал репу и реализовал ее.
SAS>2. Это попадет в документацию?
Надо чтобы попало. С документацией у нас вообще все не здорово.
SAS>Догадаться самому, что такая фича имеется, будет непросто.
Зато есть форум на котором можно задать вопрос. Теперь о ней знаю не только я, так что всегда найдется тот кто сможет подскзать.
ЗЫ
Кстати, буду признателен если кто-то опишет эту возможность в вики.