Наткнулся не непонятности с вариантами, все дело в том что понадобилось создать вариант в макросе уровня класса, добавить вариант можно так обычным способом
<[ variant Test {} ]>
, но нужно добавлять динамически VariantOption пытался сделать квазицитатой:
<[decl: | $(name : usesite) {} ]>
, но он распознает это как EnumOption, вопрос первый как создать цитату VariantOption ?
Далее пытался создать обходными путями например так:
создать пустышку
def td= <[
variant Dummy
{
| $(name : usesite) {}
} ]>;
def opt = td.td.GetMembers().Head;
def opts = // .. собираем множество options
def decl=<[ variant Test
{
..$opts
} ]>;
но после когда запускаем ty.DefineNested(decl).Compile();
Выдается NRE связанное с ошибкой внутренних структур TypeBuilder, которое не знаю как исправить, боюсь что и в любых других способах добавления variant option будет NRE, есть ли у сообщества мысли по поводу решения этой проблемы?