Все привет.
Реализовал следующую возможность.
Если мы имеем класс с автоматически создаваемым конструкторо (например, с помощью макроса 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.