Skip to content

Commit b25c063

Browse files
committed
Refactor out PerNS.
1 parent 1bbf7a4 commit b25c063

File tree

6 files changed

+186
-178
lines changed

6 files changed

+186
-178
lines changed

src/librustc_resolve/build_reduced_graph.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
1616
use macros::{InvocationData, LegacyScope};
1717
use resolve_imports::ImportDirective;
18-
use resolve_imports::ImportDirectiveSubclass::{self, GlobImport};
18+
use resolve_imports::ImportDirectiveSubclass::{self, GlobImport, SingleImport};
1919
use {Resolver, Module, ModuleS, ModuleKind, NameBinding, NameBindingKind, ToNameBinding};
2020
use Namespace::{self, TypeNS, ValueNS, MacroNS};
2121
use ResolveResult::Success;
@@ -37,6 +37,7 @@ use syntax::ast::{self, Block, ForeignItem, ForeignItemKind, Item, ItemKind};
3737
use syntax::ast::{Mutability, StmtKind, TraitItem, TraitItemKind};
3838
use syntax::ast::{Variant, ViewPathGlob, ViewPathList, ViewPathSimple};
3939
use syntax::ext::base::SyntaxExtension;
40+
use syntax::ext::base::Determinacy::Undetermined;
4041
use syntax::ext::expand::mark_tts;
4142
use syntax::ext::hygiene::Mark;
4243
use syntax::ext::tt::macro_rules;
@@ -157,7 +158,11 @@ impl<'b> Resolver<'b> {
157158
.emit();
158159
}
159160

160-
let subclass = ImportDirectiveSubclass::single(binding.name, source.name);
161+
let subclass = SingleImport {
162+
target: binding.name,
163+
source: source.name,
164+
result: self.per_ns(|_, _| Cell::new(Err(Undetermined))),
165+
};
161166
self.add_import_directive(
162167
module_path, subclass, view_path.span, item.id, vis, expansion,
163168
);
@@ -206,7 +211,11 @@ impl<'b> Resolver<'b> {
206211
(module_path.to_vec(), name, rename)
207212
}
208213
};
209-
let subclass = ImportDirectiveSubclass::single(rename, name);
214+
let subclass = SingleImport {
215+
target: rename,
216+
source: name,
217+
result: self.per_ns(|_, _| Cell::new(Err(Undetermined))),
218+
};
210219
let id = source_item.node.id;
211220
self.add_import_directive(
212221
module_path, subclass, source_item.span, id, vis, expansion,

src/librustc_resolve/check_unused.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
use std::ops::{Deref, DerefMut};
2323

2424
use Resolver;
25-
use Namespace::{TypeNS, ValueNS};
2625

2726
use rustc::lint;
2827
use rustc::util::nodemap::NodeMap;
@@ -56,8 +55,9 @@ impl<'a, 'b> UnusedImportCheckVisitor<'a, 'b> {
5655
// We have information about whether `use` (import) directives are actually
5756
// used now. If an import is not used at all, we signal a lint error.
5857
fn check_import(&mut self, item_id: ast::NodeId, id: ast::NodeId, span: Span) {
59-
if !self.used_imports.contains(&(id, TypeNS)) &&
60-
!self.used_imports.contains(&(id, ValueNS)) {
58+
let mut used = false;
59+
self.per_ns(|this, ns| used |= this.used_imports.contains(&(id, ns)));
60+
if !used {
6161
if self.maybe_unused_trait_imports.contains(&id) {
6262
// Check later.
6363
return;

0 commit comments

Comments
 (0)