This commit is contained in:
Folkert 2022-04-30 01:54:16 +02:00
parent 4ad5e532c1
commit a78aff0f2f
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
2 changed files with 15 additions and 23 deletions

View file

@ -430,33 +430,19 @@ impl ScopedIdentIds {
}
}
fn get_symbol(&self, ident: &Ident) -> Option<Symbol> {
self.ident_ids
.ident_strs()
.zip(self.in_scope.iter())
.find_map(|((ident_id, string), keep)| {
if *keep && string == ident.as_str() {
Some(Symbol::new(self.home, ident_id))
} else {
None
}
})
}
fn has_in_scope(&self, ident: &Ident) -> Option<(Symbol, Region)> {
self.ident_ids
.ident_strs()
.zip(self.in_scope.iter())
.find_map(|((ident_id, string), keep)| {
if *keep && string == ident.as_str() {
Some((
for index in self.in_scope.iter_ones() {
if let Some((ident_id, string)) = self.ident_ids.get_name_at_index(index) {
if string == ident.as_str() {
return Some((
Symbol::new(self.home, ident_id),
self.regions[ident_id.index()],
))
} else {
None
));
}
})
}
}
None
}
fn idents_in_scope(&self) -> impl Iterator<Item = Ident> + '_ {

View file

@ -584,6 +584,12 @@ impl IdentIds {
self.interner.try_get(id.0 as usize)
}
pub fn get_name_at_index(&self, index: usize) -> Option<(IdentId, &str)> {
self.interner
.try_get(index)
.map(|v| (IdentId(index as u32), v))
}
pub fn get_name_str_res(&self, ident_id: IdentId) -> ModuleResult<&str> {
self.get_name(ident_id).with_context(|| IdentIdNotFound {
ident_id,