BuiltinType::ALL
.iter()
.map(|(name, ty)| {
- (name.clone(), Resolution { def: PerNs::types(ty.clone().into()), import: None })
+ (name.clone(), Resolution { def: PerNs::types(ty.clone().into()), import: false })
})
.collect()
});
pub fn declarations(&self) -> impl Iterator<Item = ModuleDefId> + '_ {
self.entries()
- .filter_map(|(_name, res)| if res.import.is_none() { Some(res.def) } else { None })
+ .filter_map(|(_name, res)| if !res.import { Some(res.def) } else { None })
.flat_map(|per_ns| {
per_ns.take_types().into_iter().chain(per_ns.take_values().into_iter())
})
if existing.def.types.is_none() && res.def.types.is_some() {
existing.def.types = res.def.types;
- existing.import = import.or(res.import);
+ existing.import = import.is_some() || res.import;
changed = true;
}
if existing.def.values.is_none() && res.def.values.is_some() {
existing.def.values = res.def.values;
- existing.import = import.or(res.import);
+ existing.import = import.is_some() || res.import;
changed = true;
}
if existing.def.macros.is_none() && res.def.macros.is_some() {
existing.def.macros = res.def.macros;
- existing.import = import.or(res.import);
+ existing.import = import.is_some() || res.import;
changed = true;
}
- if existing.def.is_none()
- && res.def.is_none()
- && existing.import.is_none()
- && res.import.is_some()
- {
+ 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,
- /// ident by which this is imported into local scope.
- pub(crate) import: Option<LocalImportId>,
+ pub(crate) import: bool,
}
self.update(
self.def_map.root,
None,
- &[(name, Resolution { def: PerNs::macros(macro_), import: None })],
+ &[(name, Resolution { def: PerNs::macros(macro_), import: false })],
);
}
}
let variant = EnumVariantId { parent: e, local_id };
let res = Resolution {
def: PerNs::both(variant.into(), variant.into()),
- import: Some(import_id),
+ import: true,
};
(name, res)
})
}
}
- let resolution = Resolution { def, import: Some(import_id) };
+ let resolution = Resolution { def, import: true };
self.update(module_id, Some(import_id), &[(name, resolution)]);
}
None => tested_by!(bogus_paths),
def: PerNs::types(
ModuleId { krate: self.def_collector.def_map.krate, local_id: res }.into(),
),
- import: None,
+ import: false,
};
self.def_collector.update(self.module_id, None, &[(name, resolution)]);
res
PerNs::types(def.into())
}
};
- let resolution = Resolution { def, import: None };
+ let resolution = Resolution { def, import: false };
self.def_collector.update(self.module_id, None, &[(name, resolution)])
}