-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Python: Add type-tracking consistency query #15776
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
For now I'm only ignoring stdlib nodes, so it's easy for reviewer to see why we need to have more excludes :)
... and that should be it 👍 (so that's why I'm allowing the tests to run on all data-flow nodes again)
(see PR for more detailed description)
At least until we have a proper fix
@yoff I would like your input in regards to the match exclusions (specifically the ones from adf5a4b). The internal match tests had quite a few failures not found when running against dataflow/match/ tests. I think that indicates we should expand the dataflow I looked at constructs such as internal match consistency failures
|
I had to read what is actually being tested, and it seems that all local sources should be excluded? @expects(2)
def test_sequence_pattern_tuple():
match (NONSOURCE, SOURCE):
case (x, y): <--- consistency failure here (for x, y and their two match-patterns)
SINK_F(x)
SINK(y) #$ flow="SOURCE, l:-3 -> y" and here it seems that the pattern for |
For anyone following along, the check is implemented here: codeql/shared/typetracking/codeql/typetracking/internal/TypeTrackingImpl.qll Lines 44 to 51 in 5a348a5
I don't understand your question though. I don't think
So there will be no |
Ah, right, because all |
exactly |
Ok, so there is probably something to investigate here, but I do not see a reason to block this PR.. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Like Ruby we need to exclude nodes related to post-update
(created as draft to ensure I didn't overlook anything important)