refactor: extract final rustc_parse touchpoint from macros.rs
This commit is contained in:
parent
c8cf454173
commit
62987562e2
2 changed files with 11 additions and 4 deletions
|
|
@ -29,7 +29,7 @@ use crate::expr::{rewrite_array, rewrite_assign_rhs, RhsAssignKind};
|
|||
use crate::lists::{itemize_list, write_list, ListFormatting};
|
||||
use crate::overflow;
|
||||
use crate::parse::macros::lazy_static::parse_lazy_static;
|
||||
use crate::parse::macros::{build_parser, parse_macro_args, ParsedMacroArgs};
|
||||
use crate::parse::macros::{parse_expr, parse_macro_args, ParsedMacroArgs};
|
||||
use crate::rewrite::{Rewrite, RewriteContext};
|
||||
use crate::shape::{Indent, Shape};
|
||||
use crate::source_map::SpanUtils;
|
||||
|
|
@ -1060,11 +1060,10 @@ pub(crate) fn convert_try_mac(
|
|||
let path = &pprust::path_to_string(&mac.path);
|
||||
if path == "try" || path == "r#try" {
|
||||
let ts = mac.args.inner_tokens();
|
||||
let mut parser = build_parser(context, ts);
|
||||
|
||||
Some(ast::Expr {
|
||||
id: ast::NodeId::root(), // dummy value
|
||||
kind: ast::ExprKind::Try(parser.parse_expr().ok()?),
|
||||
kind: ast::ExprKind::Try(parse_expr(context, ts)?),
|
||||
span: mac.span(), // incorrect span, but shouldn't matter too much
|
||||
attrs: ast::AttrVec::new(),
|
||||
tokens: None,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ use crate::rewrite::{Rewrite, RewriteContext};
|
|||
|
||||
pub(crate) mod lazy_static;
|
||||
|
||||
pub(crate) fn build_parser<'a>(context: &RewriteContext<'a>, tokens: TokenStream) -> Parser<'a> {
|
||||
fn build_parser<'a>(context: &RewriteContext<'a>, tokens: TokenStream) -> Parser<'a> {
|
||||
stream_to_parser(context.parse_sess.inner(), tokens, MACRO_ARGUMENTS)
|
||||
}
|
||||
|
||||
|
|
@ -155,6 +155,14 @@ pub(crate) fn parse_macro_args(
|
|||
})
|
||||
}
|
||||
|
||||
pub(crate) fn parse_expr(
|
||||
context: &RewriteContext<'_>,
|
||||
tokens: TokenStream,
|
||||
) -> Option<ptr::P<ast::Expr>> {
|
||||
let mut parser = build_parser(context, tokens);
|
||||
parser.parse_expr().ok()
|
||||
}
|
||||
|
||||
const RUST_KW: [Symbol; 59] = [
|
||||
kw::PathRoot,
|
||||
kw::DollarCrate,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue