Skip to main content

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}