Taus
2380bfd459
Python: Add support for PEP-758 exception syntax
...
See https://peps.python.org/pep-0758/ for more details.
We implement this by extending the syntax for exceptions and exception
groups so that the `type` field can now contain either an expression
(which matches the old behaviour), or a comma-separated list of at least
two elements (representing the new behaviour).
We model the latter case using a new node type `exception_list`, which
in `tsg-python` is simply mapped to a tuple. This means it matches the
existing behaviour (when the tuple is surrounded by parentheses)
exactly, hence we don't need to change any other code.
As a consequence of this, however, we cannot directly parse the Python
2.7 syntax `except Foo, e: ...` as `except Foo as e: ...`, as this would
introduce an ambiguity in the grammar. Thus, we have removed support for
the (deprecated) 2.7-style syntax, and only allow `as` to indicate
binding of the exception. The syntax `except Foo, e: ...` continues to
be parsed (in particular, it's not suddenly a syntax error), but it will
be parsed as if it were `except (Foo, e): ...`, which may not give the
correct results.
In principle we could extend the QL libraries to account for this case
(specifically when analysing Python 2 code). In practice, however, I
expect this to have a minor impact on results, and not worth the
additional investment at this time.
2026-01-06 13:40:37 +00:00
Taus
72f9e34318
Merge pull request #20708 from github/tausbn/python-add-support-for-template-string-literals
...
Python: Add support for template string literals
2026-01-06 14:33:51 +01:00
Jeroen Ketema
4ede207c1f
Merge pull request #20926 from jketema/jketema/frontend-update
...
C++: Update expected test results after frontend update
2026-01-06 14:25:40 +01:00
Jeroen Ketema
d02ef7c6b1
C++: Add change notes
2026-01-06 13:53:47 +01:00
Jeroen Ketema
17b22bc088
C++: Update expected test results after frontend _Generic fix
2026-01-06 13:53:45 +01:00
Jeroen Ketema
5117b5906b
C++: Exclude comparisons from enum constants in `cpp/constant-comparison
2026-01-06 13:53:44 +01:00
Jeroen Ketema
112eaadfae
C++: Add another cpp/constant-comparison FP test case
2026-01-06 13:53:43 +01:00
Jeroen Ketema
1f10cddef5
C++: Accept test changes after frontend update and uncomment test case
...
The new frontend version does less constant folding.
2026-01-06 13:53:41 +01:00
Jeroen Ketema
90d6c9fc56
C++: Exclude more comparisons from cpp/constant-comparison
2026-01-06 13:53:40 +01:00
Jeroen Ketema
509cbf7049
C++: Add cpp/constant-comparison FP test cases after frontend update
2026-01-06 13:53:38 +01:00
Jeroen Ketema
2615dab2e2
C++: Update supported compiler versions
2026-01-06 13:53:35 +01:00
Jeroen Ketema
87a9065d61
C++: Update expected test results after frontend update
2026-01-06 13:53:34 +01:00
Tom Hvitved
eca451ea05
Merge pull request #21101 from hvitved/ruby/fix-bad-join
...
Ruby: Fix bad join
2026-01-06 13:44:29 +01:00
Tom Hvitved
5359b3d6e7
Merge pull request #21099 from hvitved/rust/fix-todo
...
Rust: Improve `TuplePositionContent.getAnAccess`
2026-01-06 13:16:15 +01:00
Chris Smowton
bfcd36002a
Merge pull request #21049 from smowton/smowton/admin/java-buildless-paths-test
...
Add integration test for paths and paths-ignore vs. Java buildless mode
2026-01-06 12:01:09 +00:00
Michael Nebel
f32860b2d2
Merge pull request #21100 from michaelnebel/csharp14/nameofgenerictype
...
C# 14: [TEST ONLY] Test for `nameof` generic type.
2026-01-06 12:37:10 +01:00
Chris Smowton
6fb6923f63
Change note
2026-01-06 10:59:06 +00:00
Chris Smowton
102cfd06a7
Add integration test for paths and paths-ignore vs. Java buildless mode
2026-01-06 10:59:04 +00:00
Tom Hvitved
358339427b
Ruby: Fix bad join
...
Before
```
Evaluated relational algebra for predicate Filters::Filters::FilterCall.getAnAction/0#dispred#9c0da667@85a4cbtp with tuple counts:
394650 ~2% {2} r1 = `__#Module::ModuleBase.getAMethod/0#dispred#56626ed3Merge_Module::ModuleBase.getModule/0#dispred#4f2c__#shared` AND NOT `_Filters::Filters::FilterCall.getExceptArgument/0#dispred#515c95c0__#Method::Method.getName/0#dispre__#antijoin_rhs`(FIRST 2)
{2} | AND NOT `project#Filters::Filters::FilterCall.getOnlyArgument/0#dispred#f337e70f`(FIRST 1)
380366 ~0% {2} | SCAN OUTPUT In.1, In.0
29453 ~0% {2} r2 = JOIN `_#Module::ModuleBase.getAMethod/0#dispred#56626ed3Merge__#AST::AstNode.getEnclosingModule/0#dispred#__#shared` WITH project#ActionController::ActionControllerActionMethod#6db6f5e0 ON FIRST 1 OUTPUT Lhs.0, Lhs.1
366017 ~0% {2} r3 = JOIN `_#Module::ModuleBase.getAMethod/0#dispred#56626ed3Merge_Module::ModuleBase.getModule/0#dispred#4f2ca__#shared` WITH project#ActionController::ActionControllerActionMethod#6db6f5e0 ON FIRST 1 OUTPUT Lhs.0, Lhs.1
395470 ~0% {2} r4 = r2 UNION r3
395470 ~0% {3} | JOIN WITH `Method::Method.getName/0#dispred#2acbf239` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.0
2227 ~0% {2} | JOIN WITH `Filters::Filters::FilterCall.getOnlyArgument/0#dispred#f337e70f` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
382593 ~0% {2} r5 = r1 UNION r4
133735 ~4% {2} | JOIN WITH `project#ActionController::ActionControllerActionMethod.getARoute/0#dispred#9eb85e56` ON FIRST 1 OUTPUT Lhs.1, Lhs.0
540556870 ~2% {3} | JOIN WITH Filters::Filters::Filter#a42c5138 CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0, Lhs.1
525979755 ~127% {3} | JOIN WITH `Filters::Filters::FilterImpl.getFilterCallable/0#dispred#451bf7d7` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1
{3} | REWRITE WITH TEST InOut.1 != InOut.2
525979755 ~407036% {2} | SCAN OUTPUT In.0, In.1
return r5
```
After
```
Evaluated relational algebra for predicate Filters::Filters::FilterCall.getAnAction/0#91dba45c@74dfcepp with tuple counts:
1363 ~4% {2} r1 = JOIN `Filters::Filters::FilterCall.getAnActionCand/1#f053150d` WITH `Filters::Filters::FilterCall.getOnlyArgument/0#dispred#f337e70f` ON FIRST 2 OUTPUT Lhs.0, Lhs.2
140978 ~0% {3} r2 = `Filters::Filters::FilterCall.getAnActionCand/1#f053150d` AND NOT `Filters::Filters::FilterCall.getExceptArgument/0#dispred#515c95c0#fb`(FIRST 2)
{3} | AND NOT `project#Filters::Filters::FilterCall.getOnlyArgument/0#dispred#f337e70f`(FIRST 1)
132372 ~3% {2} | SCAN OUTPUT In.0, In.2
133735 ~4% {2} r3 = r1 UNION r2
return r3
```
2026-01-06 11:42:49 +01:00
Michael Nebel
0a0cbdb799
C#14: Test for nameof generic type.
2026-01-06 11:32:49 +01:00
Michael Nebel
ff1ec47f98
Merge pull request #21095 from michaelnebel/net10/generatedmodels
...
C#: Update .NET runtime models.
2026-01-06 11:15:47 +01:00
Michael Nebel
2e208045d4
C#: Update test expected output.
2026-01-06 10:20:41 +01:00
Anders Peter Fugmann
103b3df885
Merge pull request #21093 from github/andersfugmann/deprecate_kotlin_1.7
...
Kotlin: Mark support for Kotlin versions 1.6 and 1.7 as deprecated
2026-01-06 09:53:26 +01:00
Michael Nebel
f5321548e1
C#: Add change note.
2026-01-06 09:46:44 +01:00
Michael Nebel
5299b356a9
C#: Update models test expected output.
2026-01-06 09:46:34 +01:00
Michael Nebel
0d5f1b11ad
C#: Update .NET runtime generated models.
2026-01-06 09:44:23 +01:00
Tom Hvitved
ae9588e176
Rust: Improve TuplePositionContent.getAnAccess
2026-01-06 09:24:32 +01:00
Tom Hvitved
19179d5005
Merge pull request #21071 from hvitved/rust/access-after-lifetime-perf
...
Rust: Speedup `AccessAfterLifetime.ql`
2026-01-06 09:18:05 +01:00
Michael Nebel
16b2e7150a
Merge pull request #21069 from michaelnebel/net10/stubs
...
C#: Generate .NET 10 stubs.
2026-01-06 07:56:25 +01:00
Tom Hvitved
836b667a62
Address review comment
2026-01-05 19:47:02 +01:00
Nick Rolfe
5faa546053
Merge pull request #21096 from github/nickrolfe/doc-range-checks
...
Docs: clarify behavior of range checks
2026-01-05 18:30:10 +00:00
Nick Rolfe
4ebbd1f9f3
Docs: clarify behavior of range checks
...
The current wording (about the sets of values being "the same") is not
accurate.
2026-01-05 18:03:54 +00:00
Michael Nebel
bbec35bcb1
C#: Update flow summaries test expected output.
2026-01-05 15:26:48 +01:00
Michael Nebel
a671810edf
C#: Update test options files to point to the new stubs versions.
2026-01-05 15:23:34 +01:00
Michael Nebel
576998a854
C#: Manual corrections to the generated stubs.
2026-01-05 15:23:31 +01:00
Michael Nebel
3f25065956
C#: Re-generate stubs.
2026-01-05 15:23:26 +01:00
Michael Nebel
2d90cc87dc
C#: Update hardcoded package version numbers for stub generation.
2026-01-05 15:23:23 +01:00
Anders Peter Fugmann
f87cb4a2e9
Update docs/codeql/reusables/supported-versions-compilers.rst
...
Add ending period for consitency
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-05 13:38:57 +01:00
Anders Fugmann
ba922fce26
Kotlin: Mark support for Kotlin versions 1.6 and 1.7 as deprecated
2026-01-05 13:13:11 +01:00
Tom Hvitved
2543754dd4
Rust: Remove newtype construction
2026-01-05 13:10:40 +01:00
Tom Hvitved
5bc457f6da
Rust: Move logic from AccessAfterLifetimeExtensions.qll to AccessAfterLifetime.ql
2026-01-05 13:10:38 +01:00
Tom Hvitved
06a5648336
Rust: Speedup AccessAfterLifetime.ql
...
Before
```
Pipeline standard for AccessAfterLifetimeExtensions::AccessAfterLifetime::mayEncloseOnStack/2#3cdefece#bf@61cb32j5 was evaluated in 30 iterations totaling 44856ms (delta sizes total: 241646328).
241404616 ~1% {2} r1 = SCAN `AccessAfterLifetimeExtensions::AccessAfterLifetime::mayEncloseOnStack/2#3cdefece#bf#prev_delta` OUTPUT In.1, In.0
7379161442 ~1080% {2} | JOIN WITH `_AstNode::AstNode.getEnclosingBlock/0#5c38e65a_AstNode::AstNode.getEnclosingCallable/0#5a548913_Bloc__#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1
333897324 ~40% {2} | AND NOT `AccessAfterLifetimeExtensions::AccessAfterLifetime::mayEncloseOnStack/2#3cdefece#bf#prev`(FIRST 2)
297961888 ~24% {2} | JOIN WITH `project#AccessAfterLifetimeExtensions::AccessAfterLifetime::sourceValueScope/3#d065ba16#2` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
return r1
```
2026-01-05 13:10:37 +01:00
Jeroen Ketema
ac859d90ef
Merge pull request #21070 from jketema/jketema/supported-platforms
...
Update supported platforms
2026-01-05 09:36:00 +01:00
Simon Friis Vindum
6fa60932c9
Merge pull request #21067 from paldepind/rust/type-inference-use-type-item
...
Rust: Refactor type inference to use new `TypeItem` class
2025-12-19 14:47:33 +01:00
Simon Friis Vindum
e0e493a9e3
Rust: Address review comments
2025-12-19 13:53:38 +01:00
Jeroen Ketema
57d88511d9
Update supported platforms
2025-12-19 11:35:59 +01:00
Jeroen Ketema
b5d3d95e72
Merge pull request #21037 from jketema/swift-6.2.3
...
Swift: Update to Swift 6.2.3
2025-12-19 10:21:40 +01:00
Simon Friis Vindum
dde845e92f
Rust: Refactor type inference to use new TypeItem class
2025-12-18 16:08:27 +01:00
Tom Hvitved
27874caf14
Merge pull request #20973 from hvitved/rust/type-inference-distinguish-mut-ref
...
Rust: Distinguish `&mut T` from `&T` in type inference
2025-12-18 15:59:40 +01:00
Jeroen Ketema
ed7854cc0d
Swift: Update LFS artifacts
2025-12-18 15:45:35 +01:00