wowlab_tidy/languages/rust/rules/safety/support.rs
1use ra_ap_syntax::ast;
2
3// #t(fn: rust_recursive_fn) syntax path qualifier depth is parser-bounded and naturally recursive
4pub(super) fn path_segments(path: &ast::Path) -> Vec<String> {
5 let mut segments = path
6 .qualifier()
7 .map_or_else(Vec::new, |qualifier| path_segments(&qualifier));
8
9 if let Some(name) = path.segment().and_then(|segment| segment.name_ref()) {
10 segments.push(name.text().to_string());
11 }
12
13 segments
14}