resolve: Rename CrateLint
to Finalize
And `crate_lint`/`record_used` to `finalize`
This commit is contained in:
parent
74d079d566
commit
1ad64a23d4
7 changed files with 147 additions and 170 deletions
|
@ -9,7 +9,7 @@ use crate::def_collector::collect_definitions;
|
|||
use crate::imports::{Import, ImportKind};
|
||||
use crate::macros::{MacroRulesBinding, MacroRulesScope, MacroRulesScopeRef};
|
||||
use crate::Namespace::{self, MacroNS, TypeNS, ValueNS};
|
||||
use crate::{CrateLint, Determinacy, ExternPreludeEntry, Module, ModuleKind, ModuleOrUniformRoot};
|
||||
use crate::{Determinacy, ExternPreludeEntry, Finalize, Module, ModuleKind, ModuleOrUniformRoot};
|
||||
use crate::{NameBinding, NameBindingKind, ParentScope, PathResult, PerNS, ResolutionError};
|
||||
use crate::{Resolver, ResolverArenas, Segment, ToNameBinding, VisResolutionError};
|
||||
|
||||
|
@ -235,16 +235,16 @@ impl<'a> AsMut<Resolver<'a>> for BuildReducedGraphVisitor<'a, '_> {
|
|||
|
||||
impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
|
||||
fn resolve_visibility(&mut self, vis: &ast::Visibility) -> ty::Visibility {
|
||||
self.resolve_visibility_speculative(vis, false).unwrap_or_else(|err| {
|
||||
self.try_resolve_visibility(vis, true).unwrap_or_else(|err| {
|
||||
self.r.report_vis_error(err);
|
||||
ty::Visibility::Public
|
||||
})
|
||||
}
|
||||
|
||||
fn resolve_visibility_speculative<'ast>(
|
||||
fn try_resolve_visibility<'ast>(
|
||||
&mut self,
|
||||
vis: &'ast ast::Visibility,
|
||||
speculative: bool,
|
||||
finalize: bool,
|
||||
) -> Result<ty::Visibility, VisResolutionError<'ast>> {
|
||||
let parent_scope = &self.parent_scope;
|
||||
match vis.kind {
|
||||
|
@ -296,11 +296,11 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
|
|||
&segments,
|
||||
Some(TypeNS),
|
||||
parent_scope,
|
||||
if speculative { CrateLint::No } else { CrateLint::SimplePath(id, path.span) },
|
||||
if finalize { Finalize::SimplePath(id, path.span) } else { Finalize::No },
|
||||
) {
|
||||
PathResult::Module(ModuleOrUniformRoot::Module(module)) => {
|
||||
let res = module.res().expect("visibility resolved to unnamed block");
|
||||
if !speculative {
|
||||
if finalize {
|
||||
self.r.record_partial_res(id, PartialRes::new(res));
|
||||
}
|
||||
if module.is_normal() {
|
||||
|
@ -770,7 +770,7 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
|
|||
// correct visibilities for unnamed field placeholders specifically, so the
|
||||
// constructor visibility should still be determined correctly.
|
||||
let field_vis = self
|
||||
.resolve_visibility_speculative(&field.vis, true)
|
||||
.try_resolve_visibility(&field.vis, false)
|
||||
.unwrap_or(ty::Visibility::Public);
|
||||
if ctor_vis.is_at_least(field_vis, &*self.r) {
|
||||
ctor_vis = field_vis;
|
||||
|
@ -1269,9 +1269,9 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
|
|||
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),
|
||||
ItemKind::Fn(..) => {
|
||||
self.try_resolve_visibility(&item.vis, false).unwrap_or(ty::Visibility::Public)
|
||||
}
|
||||
_ => self.resolve_visibility(&item.vis),
|
||||
};
|
||||
if vis != ty::Visibility::Public {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue