mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 22:31:43 +00:00
parent
9507a01e9e
commit
2090b534fc
8 changed files with 65 additions and 46 deletions
|
@ -13,7 +13,7 @@ use hir_expand::{
|
|||
hygiene::Hygiene,
|
||||
name::{AsName, Name},
|
||||
};
|
||||
use syntax::ast::{self, make};
|
||||
use syntax::ast::{self};
|
||||
|
||||
use crate::{
|
||||
type_ref::{TypeBound, TypeRef},
|
||||
|
@ -100,26 +100,6 @@ impl ModPath {
|
|||
}
|
||||
self.segments.first()
|
||||
}
|
||||
|
||||
pub fn to_ast_path(&self) -> ast::Path {
|
||||
let mut segments = Vec::new();
|
||||
let mut is_abs = false;
|
||||
match self.kind {
|
||||
PathKind::Plain => {}
|
||||
PathKind::Super(0) => segments.push(make::path_segment_self()),
|
||||
PathKind::Super(n) => segments.extend((0..n).map(|_| make::path_segment_super())),
|
||||
PathKind::Crate => segments.push(make::path_segment_crate()),
|
||||
PathKind::Abs => is_abs = true,
|
||||
PathKind::DollarCrate(_) => (),
|
||||
}
|
||||
|
||||
segments.extend(
|
||||
self.segments
|
||||
.iter()
|
||||
.map(|segment| make::path_segment(make::name_ref(&segment.to_string()))),
|
||||
);
|
||||
make::path_from_segments(segments, is_abs)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue