Skip to content

Commit 5a8845e

Browse files
committed
Refactor away DefModifiers::PRELUDE
1 parent febef47 commit 5a8845e

File tree

2 files changed

+12
-17
lines changed

2 files changed

+12
-17
lines changed

src/librustc_resolve/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -932,8 +932,7 @@ bitflags! {
932932
// Variants are considered `PUBLIC`, but some of them live in private enums.
933933
// We need to track them to prohibit reexports like `pub use PrivEnum::Variant`.
934934
const PRIVATE_VARIANT = 1 << 2,
935-
const PRELUDE = 1 << 3,
936-
const GLOB_IMPORTED = 1 << 4,
935+
const GLOB_IMPORTED = 1 << 3,
937936
}
938937
}
939938

src/librustc_resolve/resolve_imports.rs

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,17 @@ pub struct NameResolution<'a> {
125125

126126
impl<'a> NameResolution<'a> {
127127
fn try_define(&mut self, binding: &'a NameBinding<'a>) -> Result<(), &'a NameBinding<'a>> {
128-
match self.binding {
129-
Some(old_binding) if !old_binding.defined_with(DefModifiers::PRELUDE) => {
130-
if binding.defined_with(DefModifiers::GLOB_IMPORTED) {
131-
self.duplicate_globs.push(binding);
132-
} else if old_binding.defined_with(DefModifiers::GLOB_IMPORTED) {
133-
self.duplicate_globs.push(old_binding);
134-
self.binding = Some(binding);
135-
} else {
136-
return Err(old_binding);
137-
}
128+
if let Some(old_binding) = self.binding {
129+
if binding.defined_with(DefModifiers::GLOB_IMPORTED) {
130+
self.duplicate_globs.push(binding);
131+
} else if old_binding.defined_with(DefModifiers::GLOB_IMPORTED) {
132+
self.duplicate_globs.push(old_binding);
133+
self.binding = Some(binding);
134+
} else {
135+
return Err(old_binding);
138136
}
139-
_ => self.binding = Some(binding),
137+
} else {
138+
self.binding = Some(binding);
140139
}
141140

142141
Ok(())
@@ -160,7 +159,6 @@ impl<'a> NameResolution<'a> {
160159
fn try_result(&self, allow_private_imports: bool)
161160
-> Option<ResolveResult<&'a NameBinding<'a>>> {
162161
match self.result(allow_private_imports) {
163-
Success(binding) if binding.defined_with(DefModifiers::PRELUDE) => None,
164162
Failed(_) => None,
165163
result @ _ => Some(result),
166164
}
@@ -192,8 +190,6 @@ impl<'a> NameResolution<'a> {
192190
};
193191

194192
for duplicate_glob in self.duplicate_globs.iter() {
195-
if duplicate_glob.defined_with(DefModifiers::PRELUDE) { continue }
196-
197193
// FIXME #31337: We currently allow items to shadow glob-imported re-exports.
198194
if !binding.is_import() {
199195
if let NameBindingKind::Import { binding, .. } = duplicate_glob.kind {
@@ -360,7 +356,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
360356
// resolution for it so that later resolve stages won't complain.
361357
if let SingleImport { target, .. } = e.import_directive.subclass {
362358
let dummy_binding = self.resolver.arenas.alloc_name_binding(NameBinding {
363-
modifiers: DefModifiers::PRELUDE,
359+
modifiers: DefModifiers::GLOB_IMPORTED,
364360
kind: NameBindingKind::Def(Def::Err),
365361
span: None,
366362
});

0 commit comments

Comments
 (0)