Здравствуйте, catbert, Вы писали:
C>Мой макрос должен генерировать специализированный код, если некое выражение имеет тип из подмножества примитивных: String, Double, Int32 и еще парочки.
C>Как это сделать лучше?
О GetSystemType лучше забыть.
Для получения хорошо известных FixedType можно использовать следующий код:
def manager : ManagerClass = .....
FixedType.Class(manager.LookupTypeInfo("Dot.Separated.Name", 0), []);
Встроенные примитивные типы можно получить из InternalTypeClass, экземпляр которого доступен из манагера:
manager.InternalType.String // или Double или еще много всякого
Таким образом полученные FixedType можно стандартно через Equals сравнить с типом, который вывелся.