Remove the AsRef impl for SymbolStr.

Because it's highly magical, which goes against the goal of keeping
`SymbolStr` simple. Plus it's only used in a handful of places that
only require minor changes.
This commit is contained in:
Nicholas Nethercote 2019-10-22 11:21:37 +11:00
parent b9cef6984b
commit d0db290039
3 changed files with 5 additions and 15 deletions

View file

@ -210,7 +210,7 @@ impl<'a> Parser<'a> {
// `/` to `\`.
#[cfg(windows)]
let s = s.replace("/", "\\");
Some(dir_path.join(s))
Some(dir_path.join(&*s))
} else {
None
}
@ -314,7 +314,7 @@ impl<'a> Parser<'a> {
fn push_directory(&mut self, id: Ident, attrs: &[Attribute]) {
if let Some(path) = attr::first_attr_value_str_by_name(attrs, sym::path) {
self.directory.path.to_mut().push(&path.as_str());
self.directory.path.to_mut().push(&*path.as_str());
self.directory.ownership = DirectoryOwnership::Owned { relative: None };
} else {
// We have to push on the current module name in the case of relative
@ -325,10 +325,10 @@ impl<'a> Parser<'a> {
// directory path to `/x/y/z`, not `/x/z` with a relative offset of `y`.
if let DirectoryOwnership::Owned { relative } = &mut self.directory.ownership {
if let Some(ident) = relative.take() { // remove the relative offset
self.directory.path.to_mut().push(ident.as_str());
self.directory.path.to_mut().push(&*ident.as_str());
}
}
self.directory.path.to_mut().push(&id.as_str());
self.directory.path.to_mut().push(&*id.as_str());
}
}
}