summaryrefslogtreecommitdiff
path: root/src/expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr.rs')
-rw-r--r--src/expr.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/expr.rs b/src/expr.rs
index 5dce3c7..7f7e458 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -308,7 +308,7 @@ impl<'a> PRef<'a> {
pair(complete(one_of_punctuation(&["*", "/", "%"][..])), |i| {
self.unary(i)
}),
- acc,
+ move || acc.clone(),
|mut acc, (op, val): (&[u8], EvalResult)| {
match op[0] as char {
'*' => acc *= &val,
@@ -327,7 +327,7 @@ impl<'a> PRef<'a> {
pair(complete(one_of_punctuation(&["+", "-"][..])), |i| {
self.mul_div_rem(i)
}),
- acc,
+ move || acc.clone(),
|mut acc, (op, val): (&[u8], EvalResult)| {
match op[0] as char {
'+' => acc += &val,
@@ -345,7 +345,7 @@ impl<'a> PRef<'a> {
pair(complete(one_of_punctuation(&["<<", ">>"][..])), |i| {
self.add_sub(i)
}),
- acc,
+ move || acc.clone(),
|mut acc, (op, val): (&[u8], EvalResult)| {
match op {
b"<<" => acc <<= &val,
@@ -361,7 +361,7 @@ impl<'a> PRef<'a> {
let (input, acc) = self.shl_shr(input)?;
numeric(fold_many0(
preceded(complete(p("&")), |i| self.shl_shr(i)),
- acc,
+ move || acc.clone(),
|mut acc, val: EvalResult| {
acc &= &val;
acc
@@ -373,7 +373,7 @@ impl<'a> PRef<'a> {
let (input, acc) = self.and(input)?;
numeric(fold_many0(
preceded(complete(p("^")), |i| self.and(i)),
- acc,
+ move || acc.clone(),
|mut acc, val: EvalResult| {
acc ^= &val;
acc
@@ -385,7 +385,7 @@ impl<'a> PRef<'a> {
let (input, acc) = self.xor(input)?;
numeric(fold_many0(
preceded(complete(p("|")), |i| self.xor(i)),
- acc,
+ move || acc.clone(),
|mut acc, val: EvalResult| {
acc |= &val;
acc