Skip to content

Commit 8b60b4e

Browse files
committed
Use wrapping sub to prevent underflow
1 parent 42ba173 commit 8b60b4e

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/lib.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ fn fmt_changeset(f: &mut fmt::Formatter, changeset: &Changeset) -> fmt::Result {
7272
format_same(f, text)?;
7373
}
7474
Difference::Add(added) => {
75-
if let Some(Difference::Rem(removed)) = diffs.get(i - 1) {
75+
if let Some(Difference::Rem(removed)) = diffs.get(i.wrapping_sub(1)) {
7676
format_add_rem(f, added, removed)?;
7777
} else {
7878
format_add(f, added)?;
@@ -155,3 +155,17 @@ fn format_rem(f: &mut fmt::Formatter, text: &str) -> fmt::Result {
155155
}
156156
Ok(())
157157
}
158+
159+
#[cfg(test)]
160+
mod tests {
161+
use super::*;
162+
163+
#[test]
164+
fn single_add() {
165+
PrettyDifference {
166+
expected: "",
167+
actual: "foo",
168+
}
169+
.to_string();
170+
}
171+
}

0 commit comments

Comments
 (0)