Why is boolean compare not implemented in the LanguageRuntime

Dec 16, 2013 at 4:05 PM
Edited Dec 16, 2013 at 4:07 PM
I analysed if Irony would be able to solve me in implementing filter logic for a control. I experimented with the ExpressionEvaluatorGrammar and noted that it was not able to solve expressions of the type true==false. Giving me an error. I found this strange because && and || operators do work without problem.
I broke the cause of the error down to some missing lines in
LanguageRuntime.InitBinaryOperatorImplementationsForMatchedTypes
I just added the following lines in the appropriate sections and everything works fine now.
      AddBinary(op, typeof(bool), (x, y) => checked((bool)x == (bool)y), BoolResultConverter);
      AddBinary(op, typeof(bool), (x, y) => checked((bool)x != (bool)y), BoolResultConverter);
Is there a specific reason, why those lines where not part from the beginning?

Best regards
Marwie
Coordinator
Dec 17, 2013 at 4:21 AM
no reason, except "simple overlook"; glad you found how to fix it, will add it in next push
thanks
Roman