fix: disambiguate '&' and '|' occurring within a returned expression
'&' and '|' are initially parsed into AmbiguousAmp and AmbiguousPipe. Later they are discriminated into logical or bitwise operations. The traversal that did this was not performing this disambiguation on the expression in a return statement. As a result, returning something of the form '... & ...' or '... | ...' would cause an error during code generation, even with a valid input model. While making this change, I realised there are further missing cases here. E.g. it looks like shifts like '(... & ...) << ...' suffer from the same issue. Github: related to #197 "& and | in function return expressions cause validation failures"
parent
54efa88a
Please register or sign in to comment