Auto merge of #23229 - aturon:stab-path, r=alexcrichton
This commit stabilizes essentially all of the new `std::path` API. The API itself is changed in a couple of ways (which brings it in closer alignment with the RFC): * `.` components are now normalized away, unless they appear at the start of a path. This in turn effects the semantics of e.g. asking for the file name of `foo/` or `foo/.`, both of which yield `Some("foo")` now. This semantics is what the original RFC specified, and is also desirable given early experience rolling out the new API. * The `parent` method is now `without_file` and succeeds if, and only if, `file_name` is `Some(_)`. That means, in particular, that it fails for a path like `foo/../`. This change affects `pop` as well. In addition, the `old_path` module is now deprecated. [breaking-change] r? @alexcrichton
This commit is contained in:
commit
79dd393a4f
36 changed files with 405 additions and 317 deletions
|
@ -5189,13 +5189,7 @@ impl<'a> Parser<'a> {
|
|||
-> (ast::Item_, Vec<ast::Attribute> ) {
|
||||
let mut prefix = PathBuf::new(&self.sess.span_diagnostic.cm
|
||||
.span_to_filename(self.span));
|
||||
// FIXME(acrichto): right now "a".pop() == "a", but need to confirm with
|
||||
// aturon whether this is expected or not.
|
||||
if prefix.parent().is_some() {
|
||||
prefix.pop();
|
||||
} else {
|
||||
prefix = PathBuf::new("");
|
||||
}
|
||||
prefix.pop();
|
||||
let mut dir_path = prefix;
|
||||
for part in &self.mod_path_stack {
|
||||
dir_path.push(&**part);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue