Процедурные макросы могут получить значение числового литерала
08.06.2026У числового литерала в процедурных макросах появились методы получения значения. Раньше это приходилось делать обходным путём.
Какая была проблема
Процедурный макрос получает дерево синтаксиса, где литерал представлен как непрозрачный узел. Чтобы узнать, какое число в нём написано, нужно либо разбирать исходный текст самостоятельно, либо копировать внутренний код компилятора.
Копирование внутреннего кода — плохой выход по простой причине: оно переписывается при каждом изменении компилятора. Крейты, которые это делают, ломаются на каждом обновлении и вынуждены его обходить.
Что добавлено
Методы получения значения для каждого целочисленного типа и для вещественных. Типы половинной и четвертной разрядности исключены намеренно — они пока нестабильны, и опираться на них было бы рано.
Кому это нужно
Всем, кто пишет макросы, работающие с числами: генераторы кода, макросы проверок, переводящие значения в конфигурацию сборки. Это заметная часть экосистемы — такие крейты есть и популярны.
Оригинал
add _value API for number literals in proc-macro
Упоминаний: 1 · Просмотров: 1