diff options
| author | bors <bors@rust-lang.org> | 2018-09-13 03:36:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-09-13 03:36:15 +0000 |
| commit | 994cdd918589535d705177545bf503cd0c3c5148 (patch) | |
| tree | a8421aa3c41628ddb964d1ff2785241d7f64c4cd /src/libsyntax/ext | |
| parent | f2302daef3608c09e2b50193a64611b18ced86f3 (diff) | |
| parent | 2b3e98f4e389ddec4f4ebea4b500cffd73f4928a (diff) | |
| download | rust-994cdd918589535d705177545bf503cd0c3c5148.tar.gz rust-994cdd918589535d705177545bf503cd0c3c5148.zip | |
Auto merge of #54086 - petrochenkov:derhelp, r=alexcrichton
resolve: Future proof derive helper attributes Derive helpers no longer require going through recovery mode (fixes https://github.com/rust-lang/rust/issues/53481). They also report an error if they are ambiguous with any other macro in scope, so we can resolve the question about their exact priority sometime later (cc https://github.com/rust-lang/rust/issues/52226).
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 07c3e578e5b..e42624bf41f 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -730,7 +730,7 @@ pub trait Resolver { fn resolve_macro_invocation(&mut self, invoc: &Invocation, invoc_id: Mark, force: bool) -> Result<Option<Lrc<SyntaxExtension>>, Determinacy>; fn resolve_macro_path(&mut self, path: &ast::Path, kind: MacroKind, invoc_id: Mark, - derives_in_scope: &[ast::Path], force: bool) + derives_in_scope: Vec<ast::Path>, force: bool) -> Result<Lrc<SyntaxExtension>, Determinacy>; fn check_unused_macros(&self); @@ -768,7 +768,7 @@ impl Resolver for DummyResolver { Err(Determinacy::Determined) } fn resolve_macro_path(&mut self, _path: &ast::Path, _kind: MacroKind, _invoc_id: Mark, - _derives_in_scope: &[ast::Path], _force: bool) + _derives_in_scope: Vec<ast::Path>, _force: bool) -> Result<Lrc<SyntaxExtension>, Determinacy> { Err(Determinacy::Determined) } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 7b4e1814a33..40903e8ad6c 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -384,7 +384,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> { let mark = Mark::fresh(self.cx.current_expansion.mark); derives.push(mark); let item = match self.cx.resolver.resolve_macro_path( - path, MacroKind::Derive, Mark::root(), &[], false) { + path, MacroKind::Derive, Mark::root(), Vec::new(), false) { Ok(ext) => match *ext { BuiltinDerive(..) => item_with_markers.clone(), _ => item.clone(), |
