Что такое макросы (Swift 5.9+)?
Суть
Макросы — метапрограммирование на этапе компиляции: компилятор передаёт синтаксис аннотированного кода плагину (отдельному процессу на SwiftSyntax), тот возвращает новый код, и результат компилируется как обычный Swift. Макрос может только добавлять код, не изменяя и не удаляя существующий, и работает в песочнице без доступа к файлам и сети.
Важная оговорка: реализация макроса видит только AST без информации о типах. Поэтому «типобезопасность» означает, что результат раскрытия проверяется компилятором как обычный код (в отличие от рефлексии или кодогенерации текстом), а не что макрос знает типы. Раскрытие можно посмотреть в Xcode (Expand Macro).
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep