diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-12-22 06:03:19 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-12-23 05:49:34 +0000 |
| commit | c12fc66a9d643a6942d0bf4175d1a046e8d808de (patch) | |
| tree | a0b9495755b4ffbcc95f2d8b603b7ee355873166 /src/librustc_resolve | |
| parent | 164619a8cfe6d376d25bd3a6a9a5f2856c8de64d (diff) | |
| download | rust-c12fc66a9d643a6942d0bf4175d1a046e8d808de.tar.gz rust-c12fc66a9d643a6942d0bf4175d1a046e8d808de.zip | |
Allow legacy custom derive authors to disable warnings in downstream crates.
Diffstat (limited to 'src/librustc_resolve')
| -rw-r--r-- | src/librustc_resolve/lib.rs | 2 | ||||
| -rw-r--r-- | src/librustc_resolve/macros.rs | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index f73227681c5..fa9e67bb40a 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -1111,6 +1111,7 @@ pub struct Resolver<'a> { lexical_macro_resolutions: Vec<(Name, &'a Cell<LegacyScope<'a>>)>, macro_map: FxHashMap<DefId, Rc<SyntaxExtension>>, macro_exports: Vec<Export>, + pub whitelisted_legacy_custom_derives: Vec<Name>, // Maps the `Mark` of an expansion to its containing module or block. invocations: FxHashMap<Mark, &'a InvocationData<'a>>, @@ -1292,6 +1293,7 @@ impl<'a> Resolver<'a> { macro_exports: Vec::new(), invocations: invocations, name_already_seen: FxHashMap(), + whitelisted_legacy_custom_derives: Vec::new(), } } diff --git a/src/librustc_resolve/macros.rs b/src/librustc_resolve/macros.rs index 204d1127fc4..cdff84c8b8a 100644 --- a/src/librustc_resolve/macros.rs +++ b/src/librustc_resolve/macros.rs @@ -123,6 +123,10 @@ impl<'a> base::Resolver for Resolver<'a> { EliminateCrateVar(self).fold_item(item).expect_one("") } + fn is_whitelisted_legacy_custom_derive(&self, name: Name) -> bool { + self.whitelisted_legacy_custom_derives.contains(&name) + } + fn visit_expansion(&mut self, mark: Mark, expansion: &Expansion) { let invocation = self.invocations[&mark]; self.collect_def_ids(invocation, expansion); |
