diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-03-23 10:29:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-23 10:29:16 +0100 |
| commit | bb85308ce73a730a5f0f7014490cb9335f5096d2 (patch) | |
| tree | f7e7a6e83b75e4ba6fe930ebd9d76170046ed620 /src/librustc_resolve | |
| parent | edbbb4908c818115bfea05e2fb05bc473de7d8c0 (diff) | |
| parent | c3c0a097a7c6a68c0fcaee3cc3b8fda119f3c5a4 (diff) | |
Rollup merge of #70233 - petrochenkov:superproc, r=ecstatic-morse
resolve: Do not resolve visibilities on proc macro definitions twice Fixes https://github.com/rust-lang/rust/issues/68921
Diffstat (limited to 'src/librustc_resolve')
| -rw-r--r-- | src/librustc_resolve/build_reduced_graph.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index 77d6e4560ab..db500a8b1fd 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -1149,7 +1149,14 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> { })) } else { let module = parent_scope.module; - let vis = self.resolve_visibility(&item.vis); + let vis = match item.kind { + // Visibilities must not be resolved non-speculatively twice + // and we already resolved this one as a `fn` item visibility. + ItemKind::Fn(..) => self + .resolve_visibility_speculative(&item.vis, true) + .unwrap_or(ty::Visibility::Public), + _ => self.resolve_visibility(&item.vis), + }; if vis != ty::Visibility::Public { self.insert_unused_macro(ident, item.id, span); } |
