fix: fn_name! in a closure shows "{{closure}}"

This commit is contained in:
Shunsuke Shibayama 2023-02-20 01:16:08 +09:00
parent f746b815d3
commit 6d18fde0b1

View file

@ -296,7 +296,11 @@ macro_rules! fn_name {
fn type_name_of<T>(_: T) -> &'static str {
std::any::type_name::<T>()
}
let name = type_name_of(dummy).rsplit("::").nth(1).unwrap_or("?");
let mut names = type_name_of(dummy).rsplit("::");
let mut name = names.nth(1).unwrap_or("?");
while name == "{{closure}}" {
name = names.next().unwrap_or("?");
}
&name[..]
}};
}