Wrap macros in expr position in MacroExpr node
This commit is contained in:
@@ -552,7 +552,7 @@ fn path_expr(p: &mut Parser, r: Restrictions) -> (CompletedMarker, BlockLike) {
|
||||
}
|
||||
T![!] if !p.at(T![!=]) => {
|
||||
let block_like = items::macro_call_after_excl(p);
|
||||
(m.complete(p, MACRO_CALL), block_like)
|
||||
(m.complete(p, MACRO_CALL).precede(p).complete(p, MACRO_EXPR), block_like)
|
||||
}
|
||||
_ => (m.complete(p, PATH_EXPR), BlockLike::NotBlock),
|
||||
}
|
||||
|
||||
@@ -605,6 +605,7 @@ fn try_block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
|
||||
if p.nth_at(1, T![!]) {
|
||||
// test try_macro_fallback
|
||||
// fn foo() { try!(Ok(())); }
|
||||
let macro_call = p.start();
|
||||
let path = p.start();
|
||||
let path_segment = p.start();
|
||||
let name_ref = p.start();
|
||||
@@ -613,7 +614,8 @@ fn try_block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
|
||||
path_segment.complete(p, PATH_SEGMENT);
|
||||
path.complete(p, PATH);
|
||||
let _block_like = items::macro_call_after_excl(p);
|
||||
return m.complete(p, MACRO_CALL);
|
||||
macro_call.complete(p, MACRO_CALL);
|
||||
return m.complete(p, MACRO_EXPR);
|
||||
}
|
||||
|
||||
p.bump(T![try]);
|
||||
|
||||
@@ -190,6 +190,7 @@ pub enum SyntaxKind {
|
||||
YIELD_EXPR,
|
||||
LET_EXPR,
|
||||
UNDERSCORE_EXPR,
|
||||
MACRO_EXPR,
|
||||
MATCH_EXPR,
|
||||
MATCH_ARM_LIST,
|
||||
MATCH_ARM,
|
||||
|
||||
Reference in New Issue
Block a user