Fix off-by-one error in pattern formatting

This commit is contained in:
Marcus Klaas 2016-04-16 22:42:15 +02:00
parent 41e037da7e
commit 63f0fc9641
3 changed files with 43 additions and 2 deletions

View file

@ -76,8 +76,9 @@ impl Rewrite for Pat {
if pat_vec.is_empty() {
Some(path_str)
} else {
// 1 = (
let width = try_opt!(width.checked_sub(path_str.len() + 1));
// 2 = "()".len()
let width = try_opt!(width.checked_sub(path_str.len() + 2));
// 1 = "(".len()
let offset = offset + path_str.len() + 1;
let items = itemize_list(context.codemap,
pat_vec.iter(),

20
tests/source/issue-913.rs Normal file
View file

@ -0,0 +1,20 @@
mod client {
impl Client {
fn test(self) -> Result<()> {
let next_state = match self.state {
State::V5(v5::State::Command(v5::coand::State::WriteVersion(ref mut response))) => {
let x = reformat . meeee() ;
}
};
let next_state = match self.state {
State::V5(v5::State::Command(v5::comand::State::WriteVersion(ref mut response))) => {
// The pattern cannot be formatted in a way that the match stays
// within the column limit. The rewrite should therefore be
// skipped.
let x = dont . reformat . meeee();
}
};
}
}
}

20
tests/target/issue-913.rs Normal file
View file

@ -0,0 +1,20 @@
mod client {
impl Client {
fn test(self) -> Result<()> {
let next_state = match self.state {
State::V5(v5::State::Command(v5::coand::State::WriteVersion(ref mut response))) => {
let x = reformat.meeee();
}
};
let next_state = match self.state {
State::V5(v5::State::Command(v5::comand::State::WriteVersion(ref mut response))) => {
// The pattern cannot be formatted in a way that the match stays
// within the column limit. The rewrite should therefore be
// skipped.
let x = dont . reformat . meeee();
}
};
}
}
}