diff options
| author | bors <bors@rust-lang.org> | 2019-06-12 07:38:01 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-06-12 07:38:01 +0000 |
| commit | 3f511ade5b0bc42028e42b81392feec770d90ead (patch) | |
| tree | cb5c0d96ce58721918115a689274280c0de8e722 /src/libsyntax/ext | |
| parent | c4797fa4f4a696b183b3aa1517ee22c78d0f5d7a (diff) | |
| parent | 1eaaf440d5173f090d6e937f4b4cffec6c038984 (diff) | |
| download | rust-3f511ade5b0bc42028e42b81392feec770d90ead.tar.gz rust-3f511ade5b0bc42028e42b81392feec770d90ead.zip | |
Auto merge of #60669 - c410-f3r:attrs-fn, r=petrochenkov
Allow attributes in formal function parameters Implements https://github.com/rust-lang/rust/issues/60406. This is my first contribution to the compiler and since this is a large and complex project, I am not fully aware of the consequences of the changes I have made. **TODO** - [x] Forbid some built-in attributes. - [x] Expand cfg/cfg_attr
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 2a03e49996b..9d4bf7d518d 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -963,9 +963,10 @@ impl<'a> AstBuilder for ExtCtxt<'a> { fn arg(&self, span: Span, ident: ast::Ident, ty: P<ast::Ty>) -> ast::Arg { let arg_pat = self.pat_ident(span, ident); ast::Arg { - ty, + attrs: ThinVec::default(), + id: ast::DUMMY_NODE_ID, pat: arg_pat, - id: ast::DUMMY_NODE_ID + ty, } } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 084d4fd3820..3fa96c60bff 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1578,6 +1578,11 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> { *id = self.cx.resolver.next_node_id() } } + + fn visit_fn_decl(&mut self, mut fn_decl: &mut P<ast::FnDecl>) { + self.cfg.configure_fn_decl(&mut fn_decl); + noop_visit_fn_decl(fn_decl, self); + } } pub struct ExpansionConfig<'feat> { |
