mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 04:19:13 +00:00
Merge commit 'aa9bc86125
' into sync-from-ra
This commit is contained in:
parent
1570299af4
commit
c48062fe2a
598 changed files with 57696 additions and 17615 deletions
|
@ -140,6 +140,11 @@ impl AbsPath {
|
|||
self.0.parent().map(AbsPath::assert)
|
||||
}
|
||||
|
||||
/// Equivalent of [`Path::join`] for `AbsPath` with an additional normalize step afterwards.
|
||||
pub fn absolutize(&self, path: impl AsRef<Path>) -> AbsPathBuf {
|
||||
self.join(path).normalize()
|
||||
}
|
||||
|
||||
/// Equivalent of [`Path::join`] for `AbsPath`.
|
||||
pub fn join(&self, path: impl AsRef<Path>) -> AbsPathBuf {
|
||||
self.as_ref().join(path).try_into().unwrap()
|
||||
|
@ -166,6 +171,10 @@ impl AbsPath {
|
|||
AbsPathBuf::try_from(self.0.to_path_buf()).unwrap()
|
||||
}
|
||||
|
||||
pub fn canonicalize(&self) -> ! {
|
||||
panic!("We explicitly do not provide canonicalization API, as that is almost always a wrong solution, see #14430")
|
||||
}
|
||||
|
||||
/// Equivalent of [`Path::strip_prefix`] for `AbsPath`.
|
||||
///
|
||||
/// Returns a relative path.
|
||||
|
@ -179,6 +188,13 @@ impl AbsPath {
|
|||
self.0.ends_with(&suffix.0)
|
||||
}
|
||||
|
||||
pub fn name_and_extension(&self) -> Option<(&str, Option<&str>)> {
|
||||
Some((
|
||||
self.file_stem()?.to_str()?,
|
||||
self.extension().and_then(|extension| extension.to_str()),
|
||||
))
|
||||
}
|
||||
|
||||
// region:delegate-methods
|
||||
|
||||
// Note that we deliberately don't implement `Deref<Target = Path>` here.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue