Eliminate common tails from branches

This commit is contained in:
Dirkjan Ochtman 2021-04-12 21:48:32 +02:00
parent 9232cafb66
commit d43faa89f1
2 changed files with 4 additions and 8 deletions

View File

@ -256,17 +256,15 @@ pub fn trim<T: fmt::Display>(s: T) -> Result<String> {
/// Limit string length, appends '...' if truncated
pub fn truncate<T: fmt::Display>(s: T, len: usize) -> Result<String> {
let mut s = s.to_string();
if s.len() <= len {
Ok(s)
} else {
if s.len() > len {
let mut real_len = len;
while !s.is_char_boundary(real_len) {
real_len += 1;
}
s.truncate(real_len);
s.push_str("...");
Ok(s)
}
Ok(s)
}
/// Indent lines with `width` spaces

View File

@ -1453,12 +1453,10 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
args: &[Expr],
) -> Result<DisplayWrap, CompileError> {
buf.write("(");
if self.locals.contains(&s) || s == "self" {
buf.write(s);
} else {
if !self.locals.contains(&s) && s != "self" {
buf.write("self.");
buf.write(s);
}
buf.write(s);
buf.write(")(");
self._visit_args(buf, args)?;
buf.write(")");