diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-10-22 11:21:37 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-11-02 09:01:02 +1100 |
| commit | d0db29003975d8c4b3a552ff8c3a68435173cdc7 (patch) | |
| tree | 5aac5544ad55780f5afbbe1538e49cd1efb91854 | |
| parent | b9cef6984b606705f42adf9587f4f1c3babf4d4d (diff) | |
| download | rust-d0db29003975d8c4b3a552ff8c3a68435173cdc7.tar.gz rust-d0db29003975d8c4b3a552ff8c3a68435173cdc7.zip | |
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.
| -rw-r--r-- | src/librustc_codegen_ssa/back/command.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser/module.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax_pos/symbol.rs | 10 |
3 files changed, 5 insertions, 15 deletions
diff --git a/src/librustc_codegen_ssa/back/command.rs b/src/librustc_codegen_ssa/back/command.rs index 2d84d67e3c8..b8501f0e12a 100644 --- a/src/librustc_codegen_ssa/back/command.rs +++ b/src/librustc_codegen_ssa/back/command.rs @@ -53,7 +53,7 @@ impl Command { } pub fn sym_arg(&mut self, arg: Symbol) -> &mut Command { - self.arg(&arg.as_str()); + self.arg(&*arg.as_str()); self } diff --git a/src/libsyntax/parse/parser/module.rs b/src/libsyntax/parse/parser/module.rs index e80b1a7f607..242a17659a0 100644 --- a/src/libsyntax/parse/parser/module.rs +++ b/src/libsyntax/parse/parser/module.rs @@ -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()); } } } diff --git a/src/libsyntax_pos/symbol.rs b/src/libsyntax_pos/symbol.rs index 4ff558a22e1..3f7b3e5b3d8 100644 --- a/src/libsyntax_pos/symbol.rs +++ b/src/libsyntax_pos/symbol.rs @@ -1099,16 +1099,6 @@ pub struct SymbolStr { string: &'static str, } -impl<U: ?Sized> std::convert::AsRef<U> for SymbolStr -where - str: std::convert::AsRef<U> -{ - #[inline] - fn as_ref(&self) -> &U { - self.string.as_ref() - } -} - // This impl allows a `SymbolStr` to be directly equated with a `String` or // `&str`. impl<T: std::ops::Deref<Target = str>> std::cmp::PartialEq<T> for SymbolStr { |
