diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-10-17 19:32:34 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-11-28 15:48:55 +0800 |
| commit | 141c6cc78ece04fb8330b2c28a42c025500d2d0e (patch) | |
| tree | e018a0cf0be39dee3946397bef2ea965210a72f8 /compiler/rustc_expand/src/placeholders.rs | |
| parent | 4919988fe1765e51232558647f2260fff3544658 (diff) | |
| download | rust-141c6cc78ece04fb8330b2c28a42c025500d2d0e.tar.gz rust-141c6cc78ece04fb8330b2c28a42c025500d2d0e.zip | |
expand: Turn `ast::Crate` into a first class expansion target
And stop creating a fake `mod` item for the crate root when expanding a crate.
Diffstat (limited to 'compiler/rustc_expand/src/placeholders.rs')
| -rw-r--r-- | compiler/rustc_expand/src/placeholders.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/compiler/rustc_expand/src/placeholders.rs b/compiler/rustc_expand/src/placeholders.rs index 12b6bc7bbe7..25b3a5820e6 100644 --- a/compiler/rustc_expand/src/placeholders.rs +++ b/compiler/rustc_expand/src/placeholders.rs @@ -46,6 +46,12 @@ pub fn placeholder( || P(ast::Pat { id, kind: ast::PatKind::MacCall(mac_placeholder()), span, tokens: None }); match kind { + AstFragmentKind::Crate => AstFragment::Crate(ast::Crate { + attrs: Default::default(), + items: Default::default(), + span, + is_placeholder: Some(id), + }), AstFragmentKind::Expr => AstFragment::Expr(expr_placeholder()), AstFragmentKind::OptExpr => AstFragment::OptExpr(Some(expr_placeholder())), AstFragmentKind::Items => AstFragment::Items(smallvec