Remove the double auto-ref on arrays/strings as receivers

Part of #18469

[breaking-change]

A receiver will only ever get a single auto-reference. Previously arrays and strings would get two, e.g., [T] would be auto-ref'ed to &&[T]. This is usually apparent when a trait is implemented for `&[T]` and has a method takes self by reference. The usual solution is to implement the trait for `[T]` (the DST form).
This commit is contained in:
Nick Cameron 2014-12-12 13:23:21 +13:00
parent 0669a432a2
commit 769aa0a7b3
6 changed files with 22 additions and 76 deletions

View file

@ -440,7 +440,7 @@ impl<'a> LabelText<'a> {
/// Renders text as string suitable for a label in a .dot file.
pub fn escape(&self) -> String {
match self {
&LabelStr(ref s) => s.escape_default(),
&LabelStr(ref s) => (&**s).escape_default(),
&EscStr(ref s) => LabelText::escape_str(s.as_slice()),
}
}
@ -453,7 +453,7 @@ impl<'a> LabelText<'a> {
match self {
EscStr(s) => s,
LabelStr(s) => if s.contains_char('\\') {
s.escape_default().into_cow()
(&*s).escape_default().into_cow()
} else {
s
},