Skip to content
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

Python experiment: adding entry definitions to the basic variable capture branch #15167

Draft
wants to merge 53 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
6db55cd
Python: add missing annotation
yoff Nov 27, 2023
c054ba6
python: instantiate module for variable capture
yoff Oct 11, 2023
b513871
Python: add consistency exclusions
yoff Nov 29, 2023
797deeb
Python: exclude `CaptureNode`s
yoff Nov 29, 2023
7565873
Python: test callbacks to library calls
yoff Dec 5, 2023
17a0029
Python: support callbacks to library calls
yoff Dec 5, 2023
453ab9c
Python: restrict `LibraryLambdaMethod`
yoff Dec 6, 2023
061fd01
Python: further restrict `LibraryLambdaMethod`
yoff Dec 6, 2023
5471c92
Python: exclusion for summary nodes
yoff Dec 6, 2023
efcdb3e
Python: filter local flow from a node to itself
yoff Dec 6, 2023
f32d5e4
Python: typo
yoff Dec 6, 2023
38e0321
Python: allow `CaptureArgumentNode`s as multiple arguemnts
yoff Dec 6, 2023
479d81f
Python: fix nonlocal captured variables
yoff Dec 12, 2023
2a5736e
Python: add consistency exception
yoff Dec 14, 2023
b6123de
Python: simplify assignments to captured variables
yoff Dec 14, 2023
abd544d
Python: consistency failure gone
yoff Dec 14, 2023
c395d2d
Apply suggestions from code review
yoff Dec 15, 2023
f96c52e
Python: make compile again
yoff Dec 15, 2023
2051ba3
Python: hide synthesized capture nodes
yoff Dec 15, 2023
262d43a
Python: Make compile and add comment
yoff Dec 15, 2023
bfdcae4
Python : `P` -> `PY`
yoff Dec 15, 2023
5b6ea15
Python: remove unneeded consistency exclusion
yoff Dec 15, 2023
d3b237b
Python: rename synthetic lambda nodes
yoff Dec 15, 2023
4b89a41
Update python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDisp…
yoff Dec 15, 2023
a311582
Python: Bring back (now simplified) exclusion
yoff Dec 15, 2023
b07316f
Update python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPriv…
yoff Dec 15, 2023
739b839
Python: use updated names
yoff Dec 15, 2023
f668453
Python: move things around
yoff Dec 15, 2023
e1bf282
Python: split variable capture instantiation out
yoff Dec 15, 2023
8601105
Python: Address TODO comment
yoff Dec 15, 2023
1ee11ae
Merge branch 'main' of https://github.com/github/codeql into python/c…
yoff Dec 15, 2023
416ba6a
Python: use updated API
yoff Dec 15, 2023
e36b079
Python: fix compilation error
yoff Dec 15, 2023
4a1fcde
Python: abandon synthetic node
yoff Dec 15, 2023
5de1725
Python: update class name
yoff Dec 15, 2023
661ba1c
Python: move restriction into branch predicate
yoff Dec 15, 2023
b505778
Python: remove non-local steps
yoff Dec 16, 2023
64655a0
Python: Use enw class name
yoff Dec 16, 2023
d6544cc
Python: remove consistency exclusion
yoff Dec 18, 2023
c88d686
Python: move `SynthCapturePostUpdateNode`
yoff Dec 18, 2023
bf1ad23
Python: add comments
yoff Dec 18, 2023
25c83dc
Python: adjust comment
yoff Dec 18, 2023
7324177
Python: address QL alerts
yoff Dec 18, 2023
86bb884
Python: better comment
yoff Dec 18, 2023
456209b
Python: Move predicate closer to its use
yoff Dec 18, 2023
c0b3d98
Python: Add a bit more detail to comment.
yoff Dec 18, 2023
6e4011d
Python: rename sythetic nodes
yoff Dec 18, 2023
78c484f
Python: remove support for capturing callbacks
yoff Dec 18, 2023
8b7b582
Python: add change-note
yoff Dec 18, 2023
a60c52b
Merge branch 'main' into python/captured-variables-basic
yoff Dec 18, 2023
1417c2c
Update python/ql/lib/change-notes/2023-12-18-support-variable-capture.md
yoff Dec 19, 2023
dfe71e3
Python: Add scope entry definition nodes
yoff Dec 19, 2023
c2dcd55
Python: remove unnecessary post-processing
yoff Dec 20, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Python: exclude CaptureNodes
  • Loading branch information
yoff committed Dec 14, 2023
commit 797deebcddc5b84a0a7a0f5d5ed08d8ed3c285d7
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ module TrackedTest implements TestSig {
// We do not wish to annotate scope entry definitions,
// as they do not appear in the source code.
not e.asCfgNode() = any(ScopeEntryDefinition def).getDefiningNode() and
// ...same for CaptureNodes
not e instanceof DataFlow::CaptureNode and
tag = "tracked" and
location = e.getLocation() and
value = t.getAttr() and
Expand Down