mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 14:51:48 +00:00
Better display methods in expect tests
This commit is contained in:
parent
8600cf807e
commit
eecbb51cb3
1 changed files with 31 additions and 15 deletions
|
@ -432,7 +432,7 @@ mod tests {
|
||||||
use base_db::{fixture::WithFixture, SourceDatabase, Upcast};
|
use base_db::{fixture::WithFixture, SourceDatabase, Upcast};
|
||||||
use expect_test::{expect, Expect};
|
use expect_test::{expect, Expect};
|
||||||
|
|
||||||
use crate::{test_db::TestDB, AssocContainerId, Lookup};
|
use crate::{data::FunctionData, test_db::TestDB, AssocContainerId, Lookup};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
@ -451,14 +451,31 @@ mod tests {
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter_map(|item| {
|
.filter_map(|item| {
|
||||||
let mark = match item {
|
let mark = match item {
|
||||||
|
ItemInNs::Types(ModuleDefId::FunctionId(_))
|
||||||
|
| ItemInNs::Values(ModuleDefId::FunctionId(_)) => "f",
|
||||||
ItemInNs::Types(_) => "t",
|
ItemInNs::Types(_) => "t",
|
||||||
ItemInNs::Values(_) => "v",
|
ItemInNs::Values(_) => "v",
|
||||||
ItemInNs::Macros(_) => "m",
|
ItemInNs::Macros(_) => "m",
|
||||||
};
|
};
|
||||||
let item = assoc_to_trait(&db, item);
|
|
||||||
item.krate(db.upcast()).map(|krate| {
|
item.krate(db.upcast()).map(|krate| {
|
||||||
let map = db.import_map(krate);
|
let map = db.import_map(krate);
|
||||||
let path = map.path_of(item).unwrap();
|
|
||||||
|
let path = match assoc_to_trait(&db, item) {
|
||||||
|
Some(trait_) => {
|
||||||
|
let mut full_path = map.path_of(trait_).unwrap().to_string();
|
||||||
|
if let ItemInNs::Types(ModuleDefId::FunctionId(function_id))
|
||||||
|
| ItemInNs::Values(ModuleDefId::FunctionId(function_id)) = item
|
||||||
|
{
|
||||||
|
full_path += &format!(
|
||||||
|
"::{}",
|
||||||
|
FunctionData::fn_data_query(&db, function_id).name
|
||||||
|
);
|
||||||
|
}
|
||||||
|
full_path
|
||||||
|
}
|
||||||
|
None => map.path_of(item).unwrap().to_string(),
|
||||||
|
};
|
||||||
|
|
||||||
format!(
|
format!(
|
||||||
"{}::{} ({})\n",
|
"{}::{} ({})\n",
|
||||||
crate_graph[krate].display_name.as_ref().unwrap(),
|
crate_graph[krate].display_name.as_ref().unwrap(),
|
||||||
|
@ -471,15 +488,15 @@ mod tests {
|
||||||
expect.assert_eq(&actual)
|
expect.assert_eq(&actual)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn assoc_to_trait(db: &dyn DefDatabase, item: ItemInNs) -> ItemInNs {
|
fn assoc_to_trait(db: &dyn DefDatabase, item: ItemInNs) -> Option<ItemInNs> {
|
||||||
let assoc: AssocItemId = match item {
|
let assoc: AssocItemId = match item {
|
||||||
ItemInNs::Types(it) | ItemInNs::Values(it) => match it {
|
ItemInNs::Types(it) | ItemInNs::Values(it) => match it {
|
||||||
ModuleDefId::TypeAliasId(it) => it.into(),
|
ModuleDefId::TypeAliasId(it) => it.into(),
|
||||||
ModuleDefId::FunctionId(it) => it.into(),
|
ModuleDefId::FunctionId(it) => it.into(),
|
||||||
ModuleDefId::ConstId(it) => it.into(),
|
ModuleDefId::ConstId(it) => it.into(),
|
||||||
_ => return item,
|
_ => return None,
|
||||||
},
|
},
|
||||||
_ => return item,
|
_ => return None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let container = match assoc {
|
let container = match assoc {
|
||||||
|
@ -489,8 +506,8 @@ mod tests {
|
||||||
};
|
};
|
||||||
|
|
||||||
match container {
|
match container {
|
||||||
AssocContainerId::TraitId(it) => ItemInNs::Types(it.into()),
|
AssocContainerId::TraitId(it) => Some(ItemInNs::Types(it.into())),
|
||||||
_ => item,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -764,8 +781,8 @@ mod tests {
|
||||||
dep::Fmt (v)
|
dep::Fmt (v)
|
||||||
dep::Fmt (m)
|
dep::Fmt (m)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display (t)
|
||||||
dep::format (v)
|
dep::format (f)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display::fmt (f)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -778,7 +795,7 @@ mod tests {
|
||||||
dep::Fmt (t)
|
dep::Fmt (t)
|
||||||
dep::Fmt (v)
|
dep::Fmt (v)
|
||||||
dep::Fmt (m)
|
dep::Fmt (m)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display::fmt (f)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -792,7 +809,7 @@ mod tests {
|
||||||
dep::Fmt (v)
|
dep::Fmt (v)
|
||||||
dep::Fmt (m)
|
dep::Fmt (m)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display (t)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display::fmt (f)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -833,11 +850,10 @@ mod tests {
|
||||||
dep::Fmt (v)
|
dep::Fmt (v)
|
||||||
dep::Fmt (m)
|
dep::Fmt (m)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display (t)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display::fmt (f)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
||||||
// TODO kb where does this duplicate `dep::fmt::Display (t)` come from?
|
|
||||||
check_search(
|
check_search(
|
||||||
ra_fixture,
|
ra_fixture,
|
||||||
"main",
|
"main",
|
||||||
|
@ -847,7 +863,7 @@ mod tests {
|
||||||
dep::Fmt (t)
|
dep::Fmt (t)
|
||||||
dep::Fmt (v)
|
dep::Fmt (v)
|
||||||
dep::Fmt (m)
|
dep::Fmt (m)
|
||||||
dep::fmt::Display (t)
|
dep::fmt::Display::fmt (f)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue