Add default implementation for Operator::is_left_to_right

This commit is contained in:
Sebastian Schmidt 2019-03-28 11:14:55 +01:00
parent 83269068a2
commit 4838a21a57

View File

@ -16,7 +16,9 @@ pub trait Operator: Debug + Display {
/// and false if they should be evaluated right-to-left. /// and false if they should be evaluated right-to-left.
/// Left-to-right chaining has priority if operators with different order but same precedence are chained. /// Left-to-right chaining has priority if operators with different order but same precedence are chained.
// Make this a const fn once #57563 is resolved // Make this a const fn once #57563 is resolved
fn is_left_to_right(&self) -> bool; fn is_left_to_right(&self) -> bool {
true
}
/// True if this operator is a leaf, meaning it accepts no arguments. /// True if this operator is a leaf, meaning it accepts no arguments.
// Make this a const fn once #57563 is resolved // Make this a const fn once #57563 is resolved
@ -118,10 +120,6 @@ impl Operator for RootNode {
200 200
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
1 1
} }
@ -140,10 +138,6 @@ impl Operator for Add {
95 95
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -176,10 +170,6 @@ impl Operator for Sub {
95 95
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -212,10 +202,6 @@ impl Operator for Neg {
110 110
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
1 1
} }
@ -242,10 +228,6 @@ impl Operator for Mul {
100 100
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -278,10 +260,6 @@ impl Operator for Div {
100 100
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -314,10 +292,6 @@ impl Operator for Mod {
100 100
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -350,10 +324,6 @@ impl Operator for Exp {
120 120
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -377,10 +347,6 @@ impl Operator for Eq {
80 80
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -401,10 +367,6 @@ impl Operator for Neq {
80 80
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -425,10 +387,6 @@ impl Operator for Gt {
80 80
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -459,10 +417,6 @@ impl Operator for Lt {
80 80
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -493,10 +447,6 @@ impl Operator for Geq {
80 80
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -527,10 +477,6 @@ impl Operator for Leq {
80 80
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -561,10 +507,6 @@ impl Operator for And {
75 75
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -587,10 +529,6 @@ impl Operator for Or {
70 70
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -613,10 +551,6 @@ impl Operator for Not {
110 110
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
1 1
} }
@ -638,10 +572,6 @@ impl Operator for Tuple {
40 40
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
2 2
} }
@ -702,10 +632,6 @@ impl Operator for Const {
200 200
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
0 0
} }
@ -722,10 +648,6 @@ impl Operator for VariableIdentifier {
200 200
} }
fn is_left_to_right(&self) -> bool {
true
}
fn max_argument_amount(&self) -> usize { fn max_argument_amount(&self) -> usize {
0 0
} }