того же типа, что и тип, который возвращает функция, из которой я его вызываю?
Если заменить на fn test(input: TokenStream) -> TokenStream то почему-то все компилируется:
fn test(input: TokenStream) {
let input = parse_macro_input!(input as LitStr);
}
238 | let input = parse_macro_input!(input as LitStr);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected (), found struct proc_macro::TokenStream
Это из библиотеки syn?
В итоге я заюзал крейт litrs, для простой интроспекции литералов это то, что доктор прописал. Немного странно, конечно, что в дефолтный API TokenStream не завезли столь базовые вещи
Там есть нормальное что-то
Обсуждают сегодня