introduce marking infrastructure for maintainable tests

This also fixes a particular edge case in name resolution.
This commit is contained in:
Aleksey Kladov
2019-01-10 16:45:09 +03:00
parent aca14c591f
commit 32fa084c07
4 changed files with 118 additions and 1 deletions

View File

@@ -14,7 +14,7 @@ use ra_arena::{Arena, RawId, impl_arena_id};
use crate::{Name, AsName, HirDatabase, SourceItemId, HirFileId, Problem, SourceFileItems, ModuleSource};
impl ModuleSource {
pub fn from_source_item_id(
pub(crate) fn from_source_item_id(
db: &impl HirDatabase,
source_item_id: SourceItemId,
) -> ModuleSource {
@@ -217,6 +217,10 @@ fn modules(root: &impl ast::ModuleItemOwner) -> impl Iterator<Item = (Name, &ast
})
.filter_map(|module| {
let name = module.name()?.as_name();
if !module.has_semi() && module.item_list().is_none() {
tested_by!(name_res_works_for_broken_modules);
return None;
}
Some((name, module))
})
}