Skip to content

Commit 7841247

Browse files
committed
resolve: Rename unusable_binding to ignore_binding
1 parent f0e0434 commit 7841247

File tree

4 files changed

+41
-54
lines changed

4 files changed

+41
-54
lines changed

compiler/rustc_resolve/src/diagnostics.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1807,7 +1807,7 @@ impl<'a> Resolver<'a> {
18071807
opt_ns: Option<Namespace>, // `None` indicates a module path in import
18081808
parent_scope: &ParentScope<'a>,
18091809
ribs: Option<&PerNS<Vec<Rib<'a>>>>,
1810-
unusable_binding: Option<&'a NameBinding<'a>>,
1810+
ignore_binding: Option<&'a NameBinding<'a>>,
18111811
module: Option<ModuleOrUniformRoot<'a>>,
18121812
i: usize,
18131813
ident: Ident,
@@ -1859,7 +1859,7 @@ impl<'a> Resolver<'a> {
18591859
ns_to_try,
18601860
parent_scope,
18611861
None,
1862-
unusable_binding,
1862+
ignore_binding,
18631863
).ok()
18641864
} else if let Some(ribs) = ribs
18651865
&& let Some(TypeNS | ValueNS) = opt_ns
@@ -1870,7 +1870,7 @@ impl<'a> Resolver<'a> {
18701870
parent_scope,
18711871
None,
18721872
&ribs[ns_to_try],
1873-
unusable_binding,
1873+
ignore_binding,
18741874
) {
18751875
// we found a locally-imported or available item/module
18761876
Some(LexicalScopeBinding::Item(binding)) => Some(binding),
@@ -1884,7 +1884,7 @@ impl<'a> Resolver<'a> {
18841884
parent_scope,
18851885
None,
18861886
false,
1887-
unusable_binding,
1887+
ignore_binding,
18881888
).ok()
18891889
};
18901890
if let Some(binding) = binding {
@@ -1917,7 +1917,7 @@ impl<'a> Resolver<'a> {
19171917
parent_scope,
19181918
None,
19191919
&ribs[ValueNS],
1920-
unusable_binding,
1920+
ignore_binding,
19211921
)
19221922
} else {
19231923
None

compiler/rustc_resolve/src/ident.rs

+32-45
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ impl<'a> Resolver<'a> {
281281
parent_scope: &ParentScope<'a>,
282282
finalize: Option<Finalize>,
283283
ribs: &[Rib<'a>],
284-
unusable_binding: Option<&'a NameBinding<'a>>,
284+
ignore_binding: Option<&'a NameBinding<'a>>,
285285
) -> Option<LexicalScopeBinding<'a>> {
286286
assert!(ns == TypeNS || ns == ValueNS);
287287
let orig_ident = ident;
@@ -343,7 +343,7 @@ impl<'a> Resolver<'a> {
343343
ns,
344344
parent_scope,
345345
finalize,
346-
unusable_binding,
346+
ignore_binding,
347347
);
348348
if let Ok(binding) = item {
349349
// The ident resolves to an item.
@@ -356,7 +356,7 @@ impl<'a> Resolver<'a> {
356356
parent_scope,
357357
finalize,
358358
finalize.is_some(),
359-
unusable_binding,
359+
ignore_binding,
360360
)
361361
.ok()
362362
.map(LexicalScopeBinding::Item)
@@ -375,7 +375,7 @@ impl<'a> Resolver<'a> {
375375
parent_scope: &ParentScope<'a>,
376376
finalize: Option<Finalize>,
377377
force: bool,
378-
unusable_binding: Option<&'a NameBinding<'a>>,
378+
ignore_binding: Option<&'a NameBinding<'a>>,
379379
) -> Result<&'a NameBinding<'a>, Determinacy> {
380380
bitflags::bitflags! {
381381
struct Flags: u8 {
@@ -495,7 +495,7 @@ impl<'a> Resolver<'a> {
495495
ns,
496496
parent_scope,
497497
finalize,
498-
unusable_binding,
498+
ignore_binding,
499499
);
500500
match binding {
501501
Ok(binding) => Ok((binding, Flags::MODULE | Flags::MISC_SUGGEST_CRATE)),
@@ -517,7 +517,7 @@ impl<'a> Resolver<'a> {
517517
adjusted_parent_scope,
518518
!matches!(scope_set, ScopeSet::Late(..)),
519519
finalize,
520-
unusable_binding,
520+
ignore_binding,
521521
);
522522
match binding {
523523
Ok(binding) => {
@@ -602,7 +602,7 @@ impl<'a> Resolver<'a> {
602602
ns,
603603
parent_scope,
604604
None,
605-
unusable_binding,
605+
ignore_binding,
606606
) {
607607
if use_prelude || this.is_builtin_macro(binding.res()) {
608608
result = Ok((binding, Flags::MISC_FROM_PRELUDE));
@@ -736,19 +736,10 @@ impl<'a> Resolver<'a> {
736736
ns: Namespace,
737737
parent_scope: &ParentScope<'a>,
738738
finalize: Option<Finalize>,
739-
// This binding should be ignored during in-module resolution, so that we don't get
740-
// "self-confirming" import resolutions during import validation.
741-
unusable_binding: Option<&'a NameBinding<'a>>,
739+
ignore_binding: Option<&'a NameBinding<'a>>,
742740
) -> Result<&'a NameBinding<'a>, Determinacy> {
743-
self.resolve_ident_in_module_ext(
744-
module,
745-
ident,
746-
ns,
747-
parent_scope,
748-
finalize,
749-
unusable_binding,
750-
)
751-
.map_err(|(determinacy, _)| determinacy)
741+
self.resolve_ident_in_module_ext(module, ident, ns, parent_scope, finalize, ignore_binding)
742+
.map_err(|(determinacy, _)| determinacy)
752743
}
753744

754745
#[tracing::instrument(level = "debug", skip(self))]
@@ -759,7 +750,7 @@ impl<'a> Resolver<'a> {
759750
ns: Namespace,
760751
parent_scope: &ParentScope<'a>,
761752
finalize: Option<Finalize>,
762-
unusable_binding: Option<&'a NameBinding<'a>>,
753+
ignore_binding: Option<&'a NameBinding<'a>>,
763754
) -> Result<&'a NameBinding<'a>, (Determinacy, Weak)> {
764755
let tmp_parent_scope;
765756
let mut adjusted_parent_scope = parent_scope;
@@ -785,7 +776,7 @@ impl<'a> Resolver<'a> {
785776
adjusted_parent_scope,
786777
false,
787778
finalize,
788-
unusable_binding,
779+
ignore_binding,
789780
)
790781
}
791782

@@ -797,7 +788,7 @@ impl<'a> Resolver<'a> {
797788
ns: Namespace,
798789
parent_scope: &ParentScope<'a>,
799790
finalize: Option<Finalize>,
800-
unusable_binding: Option<&'a NameBinding<'a>>,
791+
ignore_binding: Option<&'a NameBinding<'a>>,
801792
) -> Result<&'a NameBinding<'a>, Determinacy> {
802793
self.resolve_ident_in_module_unadjusted_ext(
803794
module,
@@ -806,7 +797,7 @@ impl<'a> Resolver<'a> {
806797
parent_scope,
807798
false,
808799
finalize,
809-
unusable_binding,
800+
ignore_binding,
810801
)
811802
.map_err(|(determinacy, _)| determinacy)
812803
}
@@ -822,7 +813,9 @@ impl<'a> Resolver<'a> {
822813
parent_scope: &ParentScope<'a>,
823814
restricted_shadowing: bool,
824815
finalize: Option<Finalize>,
825-
unusable_binding: Option<&'a NameBinding<'a>>,
816+
// This binding should be ignored during in-module resolution, so that we don't get
817+
// "self-confirming" import resolutions during import validation and checking.
818+
ignore_binding: Option<&'a NameBinding<'a>>,
826819
) -> Result<&'a NameBinding<'a>, (Determinacy, Weak)> {
827820
let module = match module {
828821
ModuleOrUniformRoot::Module(module) => module,
@@ -834,7 +827,7 @@ impl<'a> Resolver<'a> {
834827
parent_scope,
835828
finalize,
836829
finalize.is_some(),
837-
unusable_binding,
830+
ignore_binding,
838831
);
839832
return binding.map_err(|determinacy| (determinacy, Weak::No));
840833
}
@@ -874,7 +867,7 @@ impl<'a> Resolver<'a> {
874867
parent_scope,
875868
finalize,
876869
finalize.is_some(),
877-
unusable_binding,
870+
ignore_binding,
878871
);
879872
return binding.map_err(|determinacy| (determinacy, Weak::No));
880873
}
@@ -891,12 +884,8 @@ impl<'a> Resolver<'a> {
891884
// hack to avoid inconsistent resolution ICEs during import validation.
892885
let binding = [resolution.binding, resolution.shadowed_glob]
893886
.into_iter()
894-
.filter_map(|binding| match (binding, unusable_binding) {
895-
(Some(binding), Some(unusable_binding))
896-
if ptr::eq(binding, unusable_binding) =>
897-
{
898-
None
899-
}
887+
.filter_map(|binding| match (binding, ignore_binding) {
888+
(Some(binding), Some(ignored)) if ptr::eq(binding, ignored) => None,
900889
_ => binding,
901890
})
902891
.next();
@@ -943,10 +932,8 @@ impl<'a> Resolver<'a> {
943932
}
944933

945934
let check_usable = |this: &mut Self, binding: &'a NameBinding<'a>| {
946-
if let Some(unusable_binding) = unusable_binding {
947-
if ptr::eq(binding, unusable_binding) {
948-
return Err((Determined, Weak::No));
949-
}
935+
if let Some(ignored) = ignore_binding && ptr::eq(binding, ignored) {
936+
return Err((Determined, Weak::No));
950937
}
951938
let usable = this.is_accessible_from(binding.vis, parent_scope.module);
952939
if usable { Ok(binding) } else { Err((Determined, Weak::No)) }
@@ -979,7 +966,7 @@ impl<'a> Resolver<'a> {
979966
ns,
980967
&single_import.parent_scope,
981968
None,
982-
unusable_binding,
969+
ignore_binding,
983970
) {
984971
Err(Determined) => continue,
985972
Ok(binding)
@@ -1055,7 +1042,7 @@ impl<'a> Resolver<'a> {
10551042
ns,
10561043
adjusted_parent_scope,
10571044
None,
1058-
unusable_binding,
1045+
ignore_binding,
10591046
);
10601047

10611048
match result {
@@ -1362,9 +1349,9 @@ impl<'a> Resolver<'a> {
13621349
opt_ns: Option<Namespace>, // `None` indicates a module path in import
13631350
parent_scope: &ParentScope<'a>,
13641351
finalize: Option<Finalize>,
1365-
unusable_binding: Option<&'a NameBinding<'a>>,
1352+
ignore_binding: Option<&'a NameBinding<'a>>,
13661353
) -> PathResult<'a> {
1367-
self.resolve_path_with_ribs(path, opt_ns, parent_scope, finalize, None, unusable_binding)
1354+
self.resolve_path_with_ribs(path, opt_ns, parent_scope, finalize, None, ignore_binding)
13681355
}
13691356

13701357
crate fn resolve_path_with_ribs(
@@ -1374,7 +1361,7 @@ impl<'a> Resolver<'a> {
13741361
parent_scope: &ParentScope<'a>,
13751362
finalize: Option<Finalize>,
13761363
ribs: Option<&PerNS<Vec<Rib<'a>>>>,
1377-
unusable_binding: Option<&'a NameBinding<'a>>,
1364+
ignore_binding: Option<&'a NameBinding<'a>>,
13781365
) -> PathResult<'a> {
13791366
debug!("resolve_path(path={:?}, opt_ns={:?}, finalize={:?})", path, opt_ns, finalize);
13801367

@@ -1477,7 +1464,7 @@ impl<'a> Resolver<'a> {
14771464
ns,
14781465
parent_scope,
14791466
finalize,
1480-
unusable_binding,
1467+
ignore_binding,
14811468
)
14821469
} else if let Some(ribs) = ribs
14831470
&& let Some(TypeNS | ValueNS) = opt_ns
@@ -1488,7 +1475,7 @@ impl<'a> Resolver<'a> {
14881475
parent_scope,
14891476
finalize,
14901477
&ribs[ns],
1491-
unusable_binding,
1478+
ignore_binding,
14921479
) {
14931480
// we found a locally-imported or available item/module
14941481
Some(LexicalScopeBinding::Item(binding)) => Ok(binding),
@@ -1504,7 +1491,7 @@ impl<'a> Resolver<'a> {
15041491
parent_scope,
15051492
finalize,
15061493
finalize.is_some(),
1507-
unusable_binding,
1494+
ignore_binding,
15081495
)
15091496
};
15101497
FindBindingResult::Binding(binding)
@@ -1577,7 +1564,7 @@ impl<'a> Resolver<'a> {
15771564
opt_ns,
15781565
parent_scope,
15791566
ribs,
1580-
unusable_binding,
1567+
ignore_binding,
15811568
module,
15821569
i,
15831570
ident,

compiler/rustc_resolve/src/imports.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,7 @@ impl<'a, 'b> ImportResolver<'a, 'b> {
588588
/// consolidate multiple unresolved import errors into a single diagnostic.
589589
fn finalize_import(&mut self, import: &'b Import<'b>) -> Option<UnresolvedImportError> {
590590
let orig_vis = import.vis.replace(ty::Visibility::Invisible);
591-
let unusable_binding = match &import.kind {
591+
let ignore_binding = match &import.kind {
592592
ImportKind::Single { target_bindings, .. } => target_bindings[TypeNS].get(),
593593
_ => None,
594594
};
@@ -599,7 +599,7 @@ impl<'a, 'b> ImportResolver<'a, 'b> {
599599
None,
600600
&import.parent_scope,
601601
Some(finalize),
602-
unusable_binding,
602+
ignore_binding,
603603
);
604604
let no_ambiguity = self.r.ambiguity_errors.len() == prev_ambiguity_errors_len;
605605
import.vis.set(orig_vis);

compiler/rustc_resolve/src/late.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -969,15 +969,15 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
969969
ident: Ident,
970970
ns: Namespace,
971971
finalize: Option<Finalize>,
972-
unusable_binding: Option<&'a NameBinding<'a>>,
972+
ignore_binding: Option<&'a NameBinding<'a>>,
973973
) -> Option<LexicalScopeBinding<'a>> {
974974
self.r.resolve_ident_in_lexical_scope(
975975
ident,
976976
ns,
977977
&self.parent_scope,
978978
finalize,
979979
&self.ribs[ns],
980-
unusable_binding,
980+
ignore_binding,
981981
)
982982
}
983983

0 commit comments

Comments
 (0)