Skip to content

Commit c7d54a6

Browse files
authored
Merge pull request #843 from vsbogd/fix-lifetime
Fix lifetimes
2 parents 14d6042 + 8db8508 commit c7d54a6

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

lib/src/atom/matcher.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,12 +1192,12 @@ pub fn atoms_are_equivalent(left: &Atom, right: &Atom) -> bool {
11921192

11931193
use std::collections::hash_map::Entry;
11941194

1195-
fn atoms_are_equivalent_with_bindings<'a, 'b: 'a>(left: &'b Atom, right: &'b Atom,
1196-
left_vars: &'a mut HashMap<&'b VariableAtom, &'b VariableAtom>,
1197-
right_vars: &'a mut HashMap<&'b VariableAtom, &'b VariableAtom>) -> bool {
1195+
fn atoms_are_equivalent_with_bindings<'a>(left: &'a Atom, right: &'a Atom,
1196+
left_vars: &mut HashMap<&'a VariableAtom, &'a VariableAtom>,
1197+
right_vars: &mut HashMap<&'a VariableAtom, &'a VariableAtom>) -> bool {
11981198

1199-
fn can_be_renamed<'a, 'b: 'a>(map: &'a mut HashMap<&'b VariableAtom, &'b VariableAtom>,
1200-
var: &'b VariableAtom, atom: &'b VariableAtom) -> bool {
1199+
fn can_be_renamed<'a>(map: &mut HashMap<&'a VariableAtom, &'a VariableAtom>,
1200+
var: &'a VariableAtom, atom: &'a VariableAtom) -> bool {
12011201
match map.entry(var) {
12021202
Entry::Occupied(entry) => *entry.get() == atom,
12031203
Entry::Vacant(entry) => {

lib/src/common/assert.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@ use super::collections::{ListMap, Equality, DefaultEquality};
33
use std::fmt::{Debug, Display, Formatter};
44
use itertools::Itertools;
55

6-
pub fn compare_vec_no_order<'a, T, A, B, E>(actual: A, expected: B, _cmp: E) -> VecDiff<'a, T, E>
6+
pub fn compare_vec_no_order<T, A, B, E>(actual: A, expected: B, _cmp: E) -> VecDiff<T, E>
77
where
8-
A: Iterator<Item=&'a T>,
9-
B: Iterator<Item=&'a T>,
10-
E: Equality<&'a T>,
8+
A: Iterator<Item=T>,
9+
B: Iterator<Item=T>,
10+
E: Equality<T>,
1111
{
12-
let mut diff: ListMap<&T, Count, E> = ListMap::new();
12+
let mut diff: ListMap<T, Count, E> = ListMap::new();
1313
for i in actual {
14-
diff.entry(&i).or_default().actual += 1;
14+
diff.entry(i).or_default().actual += 1;
1515
}
1616
for i in expected {
17-
diff.entry(&i).or_default().expected += 1;
17+
diff.entry(i).or_default().expected += 1;
1818
}
1919
diff = diff.into_iter().filter(|(_v, c)| c.actual != c.expected).collect();
2020
VecDiff{ diff }
@@ -26,8 +26,8 @@ struct Count {
2626
expected: usize,
2727
}
2828

29-
pub struct VecDiff<'a, T, E: Equality<&'a T>> {
30-
diff: ListMap<&'a T, Count, E>,
29+
pub struct VecDiff<T, E: Equality<T>> {
30+
diff: ListMap<T, Count, E>,
3131
}
3232

3333
struct FormatAsDebug<T: Debug>(T);
@@ -44,7 +44,7 @@ impl<T: Display> Display for FormatAsDisplay<T> {
4444
}
4545
}
4646

47-
impl<'a, T, E: Equality<&'a T>> VecDiff<'a, T, E> {
47+
impl<T, E: Equality<T>> VecDiff<T, E> {
4848
pub fn has_diff(&self) -> bool {
4949
!self.diff.is_empty()
5050
}
@@ -57,20 +57,20 @@ impl<'a, T, E: Equality<&'a T>> VecDiff<'a, T, E> {
5757
self.as_string(FormatAsDebug)
5858
}
5959

60-
fn as_string<F, I: Display>(&self, f: F) -> Option<String>
61-
where F: Fn(&'a T) -> I
60+
fn as_string<'a, F, I: 'a + Display>(&'a self, f: F) -> Option<String>
61+
where F: Copy + Fn(&'a T) -> I
6262
{
6363
let mut diff = String::new();
6464
if self.has_diff() {
6565
let mut missed = self.diff.iter()
6666
.filter(|(_v, c)| c.actual < c.expected)
6767
.flat_map(|(v, c)| std::iter::repeat_n(v, c.expected - c.actual))
68-
.map(|v| f(v))
68+
.map(f)
6969
.peekable();
7070
let mut excessive = self.diff.iter()
7171
.filter(|(_v, c)| c.actual > c.expected)
7272
.flat_map(|(v, c)| std::iter::repeat_n(v, c.actual - c.expected))
73-
.map(|v| f(v))
73+
.map(f)
7474
.peekable();
7575
if missed.peek().is_some() {
7676
diff.push_str(format!("Missed results: {}", missed.format(", ")).as_str());

0 commit comments

Comments
 (0)