static BUILTIN_SCOPE: Lazy<FxHashMap<Name, Resolution>> = Lazy::new(|| {
BuiltinType::ALL
.iter()
- .map(|(name, ty)| {
- (name.clone(), Resolution { def: PerNs::types(ty.clone().into()), import: false })
- })
+ .map(|(name, ty)| (name.clone(), Resolution { def: PerNs::types(ty.clone().into()) }))
.collect()
});
self.legacy_macros.insert(name, mac);
}
- pub(crate) fn push_res(&mut self, name: Name, res: &Resolution, import: bool) -> bool {
+ pub(crate) fn push_res(&mut self, name: Name, res: &Resolution, _import: bool) -> bool {
let mut changed = false;
let existing = self.visible.entry(name.clone()).or_default();
if existing.def.types.is_none() && res.def.types.is_some() {
existing.def.types = res.def.types;
- existing.import = import || res.import;
changed = true;
}
if existing.def.values.is_none() && res.def.values.is_some() {
existing.def.values = res.def.values;
- existing.import = import || res.import;
changed = true;
}
if existing.def.macros.is_none() && res.def.macros.is_some() {
existing.def.macros = res.def.macros;
- existing.import = import || res.import;
changed = true;
}
- if existing.def.is_none() && res.def.is_none() && !existing.import && res.import {
- existing.import = res.import;
- }
changed
}
pub struct Resolution {
/// None for unresolved
pub def: PerNs,
- pub(crate) import: bool,
}
impl From<ModuleDefId> for PerNs {
self.update(
self.def_map.root,
None,
- &[(name, Resolution { def: PerNs::macros(macro_), import: false })],
+ &[(name, Resolution { def: PerNs::macros(macro_) })],
);
}
}
.map(|(local_id, variant_data)| {
let name = variant_data.name.clone();
let variant = EnumVariantId { parent: e, local_id };
- let res = Resolution {
- def: PerNs::both(variant.into(), variant.into()),
- import: true,
- };
+ let res =
+ Resolution { def: PerNs::both(variant.into(), variant.into()) };
(name, res)
})
.collect::<Vec<_>>();
}
}
- let resolution = Resolution { def, import: true };
+ let resolution = Resolution { def };
self.update(module_id, Some(import_id), &[(name, resolution)]);
}
None => tested_by!(bogus_paths),
let module = ModuleId { krate: self.def_collector.def_map.krate, local_id: res };
let def: ModuleDefId = module.into();
self.def_collector.def_map.modules[self.module_id].scope.define_def(def);
- let resolution = Resolution { def: def.into(), import: false };
+ let resolution = Resolution { def: def.into() };
self.def_collector.update(self.module_id, None, &[(name, resolution)]);
res
}
.into(),
};
self.def_collector.def_map.modules[self.module_id].scope.define_def(def);
- let resolution = Resolution { def: def.into(), import: false };
+ let resolution = Resolution { def: def.into() };
self.def_collector.update(self.module_id, None, &[(name, resolution)])
}