1- use crate :: evaluator:: model:: evaluation_error:: EvaluationError ;
21use crate :: evaluator:: model:: object:: Object ;
32use crate :: evaluator:: Evaluator ;
43use crate :: lexical_analysis:: model:: token:: Token ;
@@ -10,20 +9,20 @@ impl Evaluator {
109 left_hand : Expression ,
1110 operator_token : Token ,
1211 right_hand : Expression ,
13- ) -> Result < Object , EvaluationError > {
14- fn evaluate_same_boolean ( operator_token : Token ) -> Result < Object , EvaluationError > {
12+ ) -> anyhow :: Result < Object > {
13+ fn evaluate_same_boolean ( operator_token : Token ) -> anyhow :: Result < Object > {
1514 match operator_token {
1615 Token :: Equals => Ok ( Object :: True ) ,
1716 Token :: NotEquals => Ok ( Object :: False ) ,
18- _ => Err ( EvaluationError :: UnknownOperator ) ,
17+ _ => anyhow :: bail! ( " UnknownOperator" ) ,
1918 }
2019 }
2120
22- fn evaluate_opposite_boolean ( operator_token : Token ) -> Result < Object , EvaluationError > {
21+ fn evaluate_opposite_boolean ( operator_token : Token ) -> anyhow :: Result < Object > {
2322 match operator_token {
2423 Token :: Equals => Ok ( Object :: False ) ,
2524 Token :: NotEquals => Ok ( Object :: True ) ,
26- _ => Err ( EvaluationError :: UnknownOperator ) ,
25+ _ => anyhow :: bail! ( " UnknownOperator" ) ,
2726 }
2827 }
2928
@@ -58,19 +57,19 @@ impl Evaluator {
5857 true => Ok ( Object :: True ) ,
5958 false => Ok ( Object :: False ) ,
6059 } ,
61- _ => Err ( EvaluationError :: UnknownOperator ) ,
60+ _ => anyhow :: bail! ( " UnknownOperator" ) ,
6261 } ,
63- _ => Err ( EvaluationError :: TypeMismatch ) ,
62+ _ => anyhow :: bail! ( " TypeMismatch" ) ,
6463 } ,
6564 Object :: True => match self . evaluate_expression ( right_hand) ? {
6665 Object :: True => evaluate_same_boolean ( operator_token) ,
6766 Object :: False => evaluate_opposite_boolean ( operator_token) ,
68- _ => Err ( EvaluationError :: TypeMismatch ) ,
67+ _ => anyhow :: bail! ( " TypeMismatch" ) ,
6968 } ,
7069 Object :: False => match self . evaluate_expression ( right_hand) ? {
7170 Object :: False => evaluate_same_boolean ( operator_token) ,
7271 Object :: True => evaluate_opposite_boolean ( operator_token) ,
73- _ => Err ( EvaluationError :: TypeMismatch ) ,
72+ _ => anyhow :: bail! ( " TypeMismatch" ) ,
7473 } ,
7574 Object :: String { value : left_value } => match self . evaluate_expression ( right_hand) ? {
7675 Object :: String { value : right_value } => match operator_token {
@@ -89,11 +88,11 @@ impl Evaluator {
8988 value : concatenated,
9089 } )
9190 }
92- _ => Err ( EvaluationError :: UnknownOperator ) ,
91+ _ => anyhow :: bail! ( " UnknownOperator" ) ,
9392 } ,
94- _ => Err ( EvaluationError :: TypeMismatch ) ,
93+ _ => anyhow :: bail! ( " TypeMismatch" ) ,
9594 } ,
96- _ => Err ( EvaluationError :: UnknownOperator ) ,
95+ _ => anyhow :: bail! ( " UnknownOperator" ) ,
9796 }
9897 }
9998}
0 commit comments