Я хотел бы компилировать код похож на этот минимальный тестовый пример:Почему этот макрос приводит к ошибке неразрешенного имени?
macro_rules! why {
([ $saved:ident ] $body:block) => {
let $saved = 3;
$body
let _a = $saved;
}
}
fn bar() {
why!([saved] {
});
}
fn main() {
}
Когда я пытаюсь скомпилировать его, я получаю следующее сообщение об ошибке:
src/main.rs:10:20: 10:21 error: unresolved name `saved` [E0425]
src/main.rs:10 why!([saved] {
^
src/main.rs:10:9: 11:12 note: in this expansion of why! (defined in src/main.rs)
src/main.rs:10:20: 10:21 help: run `rustc --explain E0425` to see a detailed explanation
Другие макросы, которые вводят переменные работы; в чем проблема?
Это решает его и заставляет меня понять проблему. (Я не хочу писать, что это имеет смысл :)) –