Fix incorrect generation of some C++ operators #1557
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1556.
This fixes the generation of
operator!
,operator&&
andoperator||
, as they were not being mapped correctly from theirextension_api.json
name ofnot
,and
andor
respectively, resulting in them showing up asoperatornot
,operatorand
andoperatoror
respectively.Note that
operatorand
andoperatoror
never actually showed up anywhere in the generated C++ headers, as they only exist on built-in types inextension_api.json
currently.I also fixed another related issue, which is that the
**
operator wasn't being skipped like thein
andxor
operators have been until now, neither of which make no sense in C++ of course. This is now done through a new helper function calledis_valid_cpp_operator
.I suppose this is technically a breaking change, so I'm not sure if there's perhaps some argument for leaving the old
operatornot
methods intact.