Bonjour, j’ai eu cette erreur :
error: proc macro panicked
--> src/main.rs:16:5
|
16 | load_extension_parser!(B);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: use-after-free of `proc_macro` symbol
Je ne sais pas pourquoi cela fait cett erreur mon main.rs :
use extension_popper::load_all_extension_parser;
use popper;
use popper::extension::ExtensionParser;
use popper::parser::Parser;
use popper::ast::expr::{Expr, ExprType};
#[extension_parser(B)]
fn a(parser: &mut Parser) -> Expr {
Expr::new(Box::new(ExprType::Eof), 0..1, String::new())
}
fn main() {
load_extension_parser!(B);
B.parse(&mut popper::parser::Parser::new(Vec::new(), String::new()));
}
mon macro:
#[proc_macro_error]
#[proc_macro]
pub fn load_extension_parser(item: TokenStream) -> TokenStream {
let mut input = parse_macro_input!(item as Ident);
unsafe {
if EXTENSIONS.contains(&input) {
return TokenStream::from(quote! {
let mut parser = popper::parser::Parser::new();
parser.add_extension(Box::new(&mut #input));
})
} else {
panic!("Extension not found");
}
}
}
si quelqu’un pouvait m’aider ce serait sympa
+0
-0