Skip to content

Commit cba97a9

Browse files
merge source and target bindings into single field
1 parent 855e0fe commit cba97a9

File tree

3 files changed

+138
-131
lines changed

3 files changed

+138
-131
lines changed

compiler/rustc_resolve/src/build_reduced_graph.rs

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
88
use std::cell::Cell;
99
use std::sync::Arc;
10+
use std::task::Poll;
1011

1112
use rustc_ast::visit::{self, AssocCtxt, Visitor, WalkItemKind};
1213
use rustc_ast::{
@@ -32,10 +33,9 @@ use crate::def_collector::collect_definitions;
3233
use crate::imports::{ImportData, ImportKind};
3334
use crate::macros::{MacroRulesBinding, MacroRulesScope, MacroRulesScopeRef};
3435
use crate::{
35-
BindingKey, Determinacy, ExternPreludeEntry, Finalize, MacroData, Module, ModuleKind,
36-
ModuleOrUniformRoot, NameBinding, NameBindingData, NameBindingKind, ParentScope, PathResult,
37-
ResolutionError, Resolver, ResolverArenas, Segment, ToNameBinding, Used, VisResolutionError,
38-
errors,
36+
BindingKey, ExternPreludeEntry, Finalize, MacroData, Module, ModuleKind, ModuleOrUniformRoot,
37+
NameBinding, NameBindingData, NameBindingKind, ParentScope, PathResult, ResolutionError,
38+
Resolver, ResolverArenas, Segment, ToNameBinding, Used, VisResolutionError, errors,
3939
};
4040

4141
type Res = def::Res<NodeId>;
@@ -620,19 +620,24 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
620620
let kind = ImportKind::Single {
621621
source: source.ident,
622622
target: ident,
623-
source_bindings: PerNS {
624-
type_ns: Cell::new(Err(Determinacy::Undetermined)),
625-
value_ns: Cell::new(Err(Determinacy::Undetermined)),
626-
macro_ns: Cell::new(Err(Determinacy::Undetermined)),
627-
},
628-
target_bindings: PerNS {
629-
type_ns: Cell::new(None),
630-
value_ns: Cell::new(None),
631-
macro_ns: Cell::new(None),
632-
},
623+
// source_bindings: PerNS {
624+
// type_ns: Cell::new(Err(Determinacy::Undetermined)),
625+
// value_ns: Cell::new(Err(Determinacy::Undetermined)),
626+
// macro_ns: Cell::new(Err(Determinacy::Undetermined)),
627+
// },
628+
// target_bindings: PerNS {
629+
// type_ns: Cell::new(None),
630+
// value_ns: Cell::new(None),
631+
// macro_ns: Cell::new(None),
632+
// },
633633
type_ns_only,
634634
nested,
635635
id,
636+
bindings: PerNS {
637+
value_ns: Cell::new(Poll::Pending),
638+
type_ns: Cell::new(Poll::Pending),
639+
macro_ns: Cell::new(Poll::Pending),
640+
},
636641
};
637642

638643
self.add_import(module_path, kind, use_tree.span, item, root_span, item.id, vis);

compiler/rustc_resolve/src/ident.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use rustc_span::{Ident, Span, kw, sym};
1313
use tracing::{debug, instrument};
1414

1515
use crate::errors::{ParamKindInEnumDiscriminant, ParamKindInNonTrivialAnonConst};
16-
use crate::imports::{Import, NameResolution};
16+
use crate::imports::{Import, NameResolution, Progress};
1717
use crate::late::{ConstantHasGenerics, NoConstantGenericsReason, PathSource, Rib, RibKind};
1818
use crate::macros::{MacroRulesScope, sub_namespace_match};
1919
use crate::{
@@ -1090,14 +1090,17 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
10901090
let Some(module) = single_import.imported_module.get() else {
10911091
return true;
10921092
};
1093-
let ImportKind::Single { source, target, target_bindings, .. } = &single_import.kind
1094-
else {
1093+
let ImportKind::Single { source, target, bindings, .. } = &single_import.kind else {
10951094
unreachable!();
10961095
};
10971096
if source != target {
1098-
if target_bindings.iter().all(|binding| binding.get().is_none()) {
1097+
if bindings.iter().all(|binding| {
1098+
matches!(binding.get(), Progress::Ready(None) | Progress::Pending)
1099+
}) {
10991100
return true;
1100-
} else if target_bindings[ns].get().is_none() && binding.is_some() {
1101+
} else if matches!(bindings[ns].get(), Progress::Ready(None) | Progress::Pending)
1102+
&& binding.is_some()
1103+
{
11011104
return true;
11021105
}
11031106
}

0 commit comments

Comments
 (0)