в макросе, выполняющимся на этапе BeforeTypedMembers функцией
def xx = typeBuilder.GlobalEnv.LookupType([strtype])
получаю TypeInfo для strtype = "int", IsValueType поле которого == false.
H>Ты получил type alias. Помоему там была какая-то магия с декодированием оного...
да какая магия. Может для TypeInfo от int ValueType == false? может здесь ValueType значит что-то другое?
Здравствуйте, _Claus_, Вы писали:
_C_>в макросе, выполняющимся на этапе BeforeTypedMembers функцией
_C_>_C_> def xx = typeBuilder.GlobalEnv.LookupType([strtype])
_C_>
_C_>получаю TypeInfo для strtype = "int", IsValueType поле которого == false.
Это потому что ты получаешь TypeInfo для псевдонима типа. Может то, что свойство IsValueType псевдонима возвращат значение не относящееся к типу для которого создан псевдоним и не правильно. Но твоя проблема связана не с этим.
Ты используешь АПИ слишком низкого уровня. Для получения ссылки на предопределенный тип лучше использовать цитату:
<[ ttype: int ]>
Или typer.BindFixedType() или GlobalEnv.BindFixedType().
При этом псевдонимы преобразуются в ссылку а реальный тип.
Здравствуйте, _Claus_, Вы писали:
H>>Ты получил type alias. Помоему там была какая-то магия с декодированием оного...
_C_>да какая магия. Может для TypeInfo от int ValueType == false? может здесь ValueType значит что-то другое?
В любом случае TypeInfo для псевдонима не будет идентично TypeInfo для исходного типа. Так что лучше просто не возиться с ним.