Fix incorrect “forgot new” errors caused by operator-like specifiers #426
+46
−3
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.
Description
This PR fixes the parser issue where valid expressions like
x in [0]or complex behavior conditions were incorrectly matched byinvalid_scenic_instance_creation, causing Scenic to raise a “Perhaps you forgot new?” error at the wrong line. The problem was that operator-like specifiers (in,at,offset by,offset along) were treated the same as normal Scenic instance specifiers. I split these into two groups and restricted the “forgot new” rule to non-operator specifiers only. This resolves both #345 and #356: valid expressions are no longer misinterpreted, and incorrect instance specifiers are now reported at the correct location.Issue Link
# 345
# 356
Checklist
pytestand/or other meansAdditional Notes