Compare commits

..

407 Commits

Author SHA1 Message Date
Paolo Tranquilli
a28d4ec007 Swift: add -filelist invocation to integration tests 2025-04-25 14:48:32 +02:00
Tom Hvitved
008dd3f4e3 Merge pull request #19272 from hvitved/ql4ql/qlref-inline-exp-kind-restrict
QL4QL: Restrict `ql/qlref-inline-expectations` to `(path-)problem` queries
2025-04-23 09:11:24 +02:00
Michael Nebel
62cb4bfd02 Merge pull request #19302 from michaelnebel/csharp/missing-access-control
C#: Relax condition for authorize attributes on `cs/web/missing-function-level-access-control`.
2025-04-23 09:09:32 +02:00
Tom Hvitved
959a79f995 Merge pull request #19345 from hvitved/shared/file-system-append-join-fix
Shared: Fix join in `FileSystem.qll`
2025-04-23 09:01:40 +02:00
Pierre
97ca2afa7a Merge pull request #19348 from github/changedocs-2.21.1
changedocs from 2.21.1 release
2025-04-22 22:14:43 +02:00
Pierre
2439b1e89a Merge branch 'main' into changedocs-2.21.1 2025-04-22 22:04:28 +02:00
Jon Janego
1cf10d8f9f changedocs from 2.21.1 release 2025-04-22 14:51:11 -05:00
Jami
4483a24133 Merge pull request #19075 from jcogs33/jcogs33/java/do-not-use-finalizers
Java: Add new quality query to detect `finalize` calls
2025-04-22 14:11:14 -04:00
Jami
ed99088c2b Merge pull request #19094 from jcogs33/jcogs33/java/junit5-missing-nested-annotation
Java: Add new quality query to detect missing `@Nested` annotation in JUnit5 tests
2025-04-22 13:10:00 -04:00
Jeroen Ketema
7ee862a3af Merge pull request #19347 from jketema/swift-files-2
Swift: Make file checking in tests more strict
2025-04-22 17:15:11 +02:00
Jeroen Ketema
adb58e304d Swift: Make file checking in tests more strict
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.

Test forgotten in https://github.com/github/codeql/pull/19344
2025-04-22 16:51:36 +02:00
Jeroen Ketema
03ce2b0867 Merge pull request #19346 from jketema/swift-files-2
Swift: Make file checking in integration tests more strict
2025-04-22 15:33:33 +02:00
Jeroen Ketema
375ec8f948 Merge pull request #19344 from jketema/swift-files
Swift: Make file checking in tests more strict
2025-04-22 15:33:15 +02:00
Tom Hvitved
40390d1ada Address review comment 2025-04-22 15:08:39 +02:00
Jeroen Ketema
a211998bc9 Swift: Make file checking in integration tests more strict
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.
2025-04-22 13:52:15 +02:00
Alexander Eyers-Taylor
c11ed6d119 Merge pull request #19116 from github/alexet/ruby-deterministic
Ruby: Make module graph queries avoid relying on evalaution order.
2025-04-22 11:27:03 +01:00
Tom Hvitved
ae5ac11387 Shared: Fix join in FileSystem.qll
Before
```
Evaluated relational algebra for predicate FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d@d2a7eeoa on iteration 2 running pipeline standard with tuple counts:
         120   ~2%    {4} r1 = SCAN `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev_delta` OUTPUT In.1, In.0, In.2, In.3

           0   ~0%    {6} r2 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#1` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                      {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
           0   ~0%    {4}    | SCAN OUTPUT In.2, In.0, In.1, In.4

          91   ~3%    {6} r3 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                      {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
          81   ~0%    {4}    | SCAN OUTPUT In.4, In.0, In.1, In.2
          81   ~3%    {4}    | JOIN WITH containerparent_10#join_rhs ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Rhs.1

         269   ~0%    {7} r4 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#2` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Rhs.2, Lhs.1, Lhs.2, Lhs.3, _
                      {7}    | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.4
          39   ~1%    {5}    | SCAN OUTPUT In.5, In.0, In.1, In.2, In.3
        1295   ~0%    {6}    | JOIN WITH containerparent ON FIRST 1 OUTPUT Rhs.1, Lhs.3, _, Lhs.1, Lhs.2, Lhs.4
        1295   ~0%    {6}    | REWRITE WITH Out.2 := 1
          34   ~1%    {4}    | JOIN WITH `cached_FileSystem::Container.splitAbsolutePath/2#dispred#dc97b0cc` ON FIRST 3 OUTPUT Lhs.5, Lhs.3, Lhs.4, Lhs.0

         115   ~0%    {4} r5 = r2 UNION r3 UNION r4
         115   ~0%    {4}    | AND NOT `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev`(FIRST 4)
                      return r5
```

After
```
Evaluated relational algebra for predicate FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d@4fb6e6v7 on iteration 2 running pipeline standard with tuple counts:
        120   ~0%    {4} r1 = SCAN `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev_delta` OUTPUT In.1, In.0, In.2, In.3

          0   ~0%    {6} r2 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#1` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                     {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
          0   ~0%    {4}    | SCAN OUTPUT In.2, In.0, In.1, In.4

         91   ~0%    {6} r3 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                     {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
         81   ~0%    {4}    | SCAN OUTPUT In.4, In.0, In.1, In.2
         81   ~5%    {4}    | JOIN WITH containerparent_10#join_rhs ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Rhs.1

        269   ~0%    {7} r4 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#2` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Rhs.2, Lhs.1, Lhs.2, Lhs.3, _
                     {7}    | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.4
         39   ~3%    {5}    | SCAN OUTPUT In.5, In.2, In.0, In.1, In.3
         34   ~0%    {4}    | JOIN WITH `FileSystem::Folder::Append<PathResolution::shouldAppend>::getAChildContainer/2#2e91feca` ON FIRST 2 OUTPUT Lhs.4, Lhs.2, Lhs.3, Rhs.2

        115   ~2%    {4} r5 = r2 UNION r3 UNION r4
        115   ~2%    {4}    | AND NOT `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev`(FIRST 4)
                     return r5
```
2025-04-22 12:16:59 +02:00
Anders Schack-Mulligen
d05e90518c Merge pull request #19296 from Marcono1234/patch-1
Docs: Fix typo in code sample
2025-04-22 11:08:17 +02:00
Jeroen Ketema
ce5c48192e Swift: Make file checking in tests more strict
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.
2025-04-22 10:41:12 +02:00
Asger F
c2cab184ac Merge pull request #19283 from asgerf/js/rest-pattern-fix
JS: Fix missing flow into rest pattern lvalue
2025-04-22 10:37:36 +02:00
Jami Cogswell
3aa6b49204 Java: Add new query to java-code-quality.qls.expected 2025-04-21 10:02:08 -04:00
Jami
72d49f21ee Merge branch 'main' into jcogs33/java/do-not-use-finalizers 2025-04-21 09:57:53 -04:00
Jami Cogswell
07a694e804 Java: add new query to java-code-quality.qls.expected 2025-04-21 09:52:52 -04:00
Jami
02ded89d84 Merge branch 'main' into jcogs33/java/junit5-missing-nested-annotation 2025-04-21 09:46:49 -04:00
Jami
2b9160526a Apply docs review suggestion
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-04-20 21:47:25 -04:00
Geoffrey White
254789c89a Merge pull request #19305 from geoffw0/modelnoise
Rust: Remove the noisy models output from the dataflow/local test.
2025-04-17 13:16:45 +01:00
Geoffrey White
22b3ef7f20 Merge pull request #19333 from geoffw0/consistency
Rust: Make source kinds consistent with other languages
2025-04-17 13:15:00 +01:00
Jeroen Ketema
53bd2361af Merge pull request #19329 from github/idrissrio/designated-initializer
C++: add predicate to distinguish designator-based initializations
2025-04-17 13:15:42 +02:00
Arthur Baars
48f9e5a96d Merge pull request #19237 from github/aibaars/crate-graph-type-variables
Rust: extract generic parameters, arguments and resolve bound type variables
2025-04-17 13:02:41 +02:00
Jeroen Ketema
0bcee84117 C++: Minor textual fixes 2025-04-17 12:33:27 +02:00
Geoffrey White
8d60e82ec0 Merge branch 'main' into modelnoise 2025-04-17 10:43:15 +01:00
Geoffrey White
43069f139d Rust: command-line-source -> commandargs. 2025-04-17 10:15:04 +01:00
Geoffrey White
ed2d06bcd7 Rust: environment-source -> environment. 2025-04-17 09:57:59 +01:00
Geoffrey White
7e108a8a29 Merge pull request #19310 from geoffw0/trim
Rust: Add model for str.trim
2025-04-17 09:48:45 +01:00
Geoffrey White
e1bddb6152 Merge pull request #19304 from geoffw0/rustio
Rust: Model sources for std::io
2025-04-17 09:47:21 +01:00
Geoffrey White
372ba5c9a5 Merge branch 'main' into modelnoise 2025-04-17 09:42:43 +01:00
idrissrio
15fe2fbba6 C++: update stats file 2025-04-16 20:45:33 +02:00
Geoffrey White
9da6d9435e Rust: More tests affected. 2025-04-16 17:41:27 +01:00
idrissrio
36a425715c C++: add upgrade and downgrade scripts 2025-04-16 17:07:25 +02:00
Geoffrey White
77d3c95d6e Merge branch 'main' into trim 2025-04-16 15:33:30 +01:00
idrissrio
d8afd2a786 C++: add change note for designator-based initializations 2025-04-16 16:23:32 +02:00
idrissrio
49183bb82a C++: add predicate to distinguish between array/field designators 2025-04-16 16:19:26 +02:00
Ian Lynagh
e05c030bb7 Merge pull request #19317 from github/post-release-prep/codeql-cli-2.21.1
Post-release preparation for codeql-cli-2.21.1
2025-04-16 14:45:49 +01:00
Ian Lynagh
bdd3207752 Merge branch 'main' into post-release-prep/codeql-cli-2.21.1 2025-04-16 11:54:23 +01:00
Idriss Riouak
67bfe108c2 Merge pull request #19298 from github/idrissrio/vla
C++: add `isVla` predicated to `ArrayType`
2025-04-16 11:25:31 +02:00
Michael Nebel
29be2171af Merge pull request #19309 from michaelnebel/csharp/fix-comments
C#: Adjust comments and remove compilation warnings.
2025-04-16 09:26:09 +02:00
Aditya Sharad
c4e8b1a79e Merge pull request #19307 from adityasharad/actions/public-preview-cleanup
Actions: Remove preview notice, minor help and metadata fixes
2025-04-16 05:40:20 +05:30
Aditya Sharad
4952768569 Actions: Fix change note newline 2025-04-15 10:21:54 -07:00
github-actions[bot]
d78736b1bf Post-release preparation for codeql-cli-2.21.1 2025-04-15 16:33:15 +00:00
Ian Lynagh
2409bcc0d6 Merge pull request #19301 from github/release-prep/2.21.1
Release preparation for version 2.21.1
2025-04-15 16:52:54 +01:00
Arthur Baars
7bfd5f161e Rust: crate graph: extract associated types 2025-04-15 17:21:04 +02:00
Arthur Baars
2f87630ded Rust: update expected output 2025-04-15 17:18:51 +02:00
Arthur Baars
a4b1c2bbdc Rust: crate graph: resolve bound type variablesp 2025-04-15 17:18:49 +02:00
Arthur Baars
db4306d0c1 Rust: avoid duplication for functions and methods 2025-04-15 17:18:48 +02:00
Arthur Baars
0545f782e0 Rust: get rid of const_or_function 2025-04-15 17:18:46 +02:00
Arthur Baars
5cfbedc114 Rust: replace singleton vectors with Option 2025-04-15 17:18:45 +02:00
Arthur Baars
b24fbe8db9 Rust: remove unreachable case
Enum variants cannot be declared as a module item, they can only be imported
2025-04-15 17:18:44 +02:00
Arthur Baars
cec95ae875 Rust: crate graph: generic parameters 2025-04-15 17:18:42 +02:00
Arthur Baars
a7ccba9aeb Rust: crate graph: type variables 2025-04-15 17:18:28 +02:00
Arthur Baars
2c31363680 Partially revert "Rust: fix compilation errors"
This reverts commit 260322b669.
2025-04-15 17:16:23 +02:00
Geoffrey White
432d4b0eca Merge branch 'main' into trim 2025-04-15 16:05:02 +01:00
Ian Lynagh
8ee353c12c Merge pull request #19312 from igfoo/igfoo/fix-typo-unmasked-secret-exposure
actions: Fix spelling error in UnmaskedSecretExposure.md
2025-04-15 15:41:07 +01:00
Paolo Tranquilli
ff8cd98527 Merge pull request #19233 from github/redsun82/cargo-upgrade
Rust: upgrade rust-analyzer to `0.0.273`
2025-04-15 16:30:12 +02:00
Geoffrey White
39a875e751 Rust: Make some summaries value type. 2025-04-15 14:46:57 +01:00
Ian Lynagh
b75e0ed02e actions: Fix spelling error in UnmaskedSecretExposure.md
Corrects "know" to "known" in the description of the UnmaskedSecretExposure document.
2025-04-15 14:25:39 +01:00
Paolo Tranquilli
3d3de78076 Merge pull request #19299 from github/redsun82/swift-6-extraction
Swift: extract still unextracted entities from the 6.0.2 upgrade
2025-04-15 14:08:38 +02:00
idrissrio
202040fad4 C++: update stats file 2025-04-15 13:36:24 +02:00
Geoffrey White
c561da4536 Merge branch 'main' into rustio 2025-04-15 12:29:55 +01:00
Geoffrey White
fea82d4d6a Merge branch 'main' into trim 2025-04-15 12:21:48 +01:00
Geoffrey White
40a5db6736 Rust: Other tests affected. 2025-04-15 11:52:23 +01:00
Geoffrey White
c06f340bd8 Rust: Make str / String models consistent. 2025-04-15 11:47:29 +01:00
Michael Nebel
9170993cf0 C#: Adjust comments and remove compilation warnings. 2025-04-15 12:46:31 +02:00
Geoffrey White
bfe9cdfed5 Rust: Add model for str.trim and as_bytes. 2025-04-15 11:26:52 +01:00
idrissrio
ae07272c44 C++: add upgrade and downgrade scripts 2025-04-15 11:09:31 +02:00
idrissrio
15ba9e0c66 C++: add change note for VLAs 2025-04-15 11:06:19 +02:00
idrissrio
033bade0ab C++: add isVLA() to ArrayType to identify variable-length arrays 2025-04-15 11:03:26 +02:00
Michael Nebel
0b10d34cae C#: Add change note. 2025-04-15 10:53:40 +02:00
Tamás Vajk
de9c1fbc9c Merge pull request #19251 from tamasvajk/fix/macos15
C#: Fix autobuild on macos without mono
2025-04-15 10:07:26 +02:00
Arthur Baars
1c79c5e9ab Merge pull request #19292 from github/aibaars/rust-shadow-prelude
Rust: allow shadowing of prelude items
2025-04-15 09:54:31 +02:00
Paolo Tranquilli
eda1bc9f6b Merge pull request #19282 from github/redsun82/rust-codeowners
Rust: add to `CODEOWNERS`
2025-04-15 08:58:27 +02:00
Aditya Sharad
f9103f8ddc Actions: Add change note for missing severity 2025-04-14 14:48:43 -07:00
Aditya Sharad
6eb060f16a Actions: Add security-severity to excessive secrets exposure query
Same value as missing actions permissions,
both providing warnings to follow the
principle of least privilege within a
workflow.
2025-04-14 14:41:08 -07:00
Aditya Sharad
93fbb9fe61 Actions: Update description of missing permissions query 2025-04-14 14:39:31 -07:00
Aditya Sharad
eeb938a76d Docs: Minor fixes for Actions query help 2025-04-14 13:25:54 -07:00
Aditya Sharad
32f191cd9d Docs: Remove public preview notice for Actions support
Ready for GA.
2025-04-14 13:21:59 -07:00
Geoffrey White
bdd5717c09 Rust: Remove the models output from the dataflow/local test. 2025-04-14 16:42:20 +01:00
Paolo Tranquilli
2dd3dea33a Merge branch 'main' into redsun82/cargo-upgrade 2025-04-14 16:35:57 +02:00
Paolo Tranquilli
6176202d50 Merge pull request #19291 from github/redsun82/rust-pick-edition
Rust: pick correct edition for the files
2025-04-14 16:26:00 +02:00
Geoffrey White
a8b552200a Rust: Impact on dataflow/local test. 2025-04-14 15:03:04 +01:00
Geoffrey White
24bcd041b8 Rust: Add flow models for io. 2025-04-14 14:20:45 +01:00
Paolo Tranquilli
c9cff09f5d Merge branch 'main' into redsun82/rust-pick-edition 2025-04-14 15:19:33 +02:00
Tamas Vajk
a70536f002 Improve code quality 2025-04-14 14:54:56 +02:00
Paolo Tranquilli
1c11c5562a Swift: add change note 2025-04-14 14:50:46 +02:00
Michael Nebel
f11aec3592 C#: Update test expected output. 2025-04-14 14:26:51 +02:00
Michael Nebel
c15d1ab3bd C#: Consider an attribute to be authorization like, if it extends an attribute that has an authorization like name. 2025-04-14 14:25:31 +02:00
Michael Nebel
2e7e276806 C#: Add test case for authorization attribute that extends Authorize. 2025-04-14 14:18:30 +02:00
Michael Nebel
8d571672e9 C#: Convert cs/missing-access-control to inline expectations test. 2025-04-14 13:54:43 +02:00
Tamas Vajk
91daca1a6b Improve code quality based on PR review 2025-04-14 13:51:30 +02:00
Michael Nebel
53c4b29b50 Merge pull request #19289 from michaelnebel/csharp/improveautobuilder
C#: Improve auto-builder to better detect SDK references.
2025-04-14 12:43:23 +02:00
Paolo Tranquilli
c245459e97 Merge pull request #19293 from github/redsun82/rust-fix-member-aggregation
Rust: fix workspace member aggregation when absolute path is a glob pattern
2025-04-14 12:08:43 +02:00
github-actions[bot]
b961c5961d Release preparation for version 2.21.1 2025-04-14 09:53:06 +00:00
Geoffrey White
7a9ea52bc7 Rust: Add source models for io. 2025-04-14 10:47:30 +01:00
Geoffrey White
4f9f550ba6 Rust: Add source models for fs. 2025-04-14 10:47:26 +01:00
Geoffrey White
258c1afe27 Rust: Add tests for std::fs sources. 2025-04-14 10:47:21 +01:00
Geoffrey White
cef3cd9b54 Rust: Add tests for std::io sources. 2025-04-14 10:47:17 +01:00
Geoffrey White
884c4a6e7b Merge pull request #19171 from geoffw0/badalloc
Rust: Query for uncontrolled allocation size
2025-04-14 10:10:53 +01:00
Paolo Tranquilli
1316e08365 Swift: add upgrade/downgrade scripts 2025-04-14 11:06:47 +02:00
Geoffrey White
c821f27309 Merge branch 'main' into badalloc 2025-04-14 09:36:59 +01:00
Paolo Tranquilli
fa6deaf87a Swift: extract UnreachableExpr 2025-04-14 10:35:24 +02:00
Paolo Tranquilli
9473543933 Swift: extract ActorIsolationErasureExpr 2025-04-14 10:35:24 +02:00
Paolo Tranquilli
ad0f9f1e73 Swift: mark ErrorUnionType as type-check only 2025-04-14 10:35:23 +02:00
Paolo Tranquilli
b575c89463 Swift: add CurrentContextIsolationTree to control flow 2025-04-14 10:35:23 +02:00
Paolo Tranquilli
712142cde9 Swift: extract CurrentContextIsolationExpr 2025-04-14 10:35:22 +02:00
Paolo Tranquilli
42ec6b018d Swift: add ExtractFunctionIsolationTree to control flow 2025-04-14 10:35:22 +02:00
Paolo Tranquilli
2910cb68ce Swift: extract ExtracFunctionIsolationExpr 2025-04-14 10:35:21 +02:00
Napalys Klicius
86313715a4 Merge pull request #19184 from Napalys/js/request_handlers
JS: Support for `Request` and `NextRequest`
2025-04-14 08:07:24 +02:00
Marcono1234
64f37ea24c Docs: Fix typo in code sample 2025-04-12 16:01:55 +02:00
yoff
85527101bd Merge pull request #19205 from yoff/ruby/refine-uninitialised-local
ruby: refine `rb/uninitialized-local-variable`
2025-04-11 23:08:01 +02:00
yoff
7517272d34 ruby: remove repetitive change note 2025-04-11 23:01:15 +02:00
yoff
b988be8ff6 ruby: improve help file
This has improved autofixes
I hope it also helps humans
2025-04-11 21:29:01 +02:00
yoff
85e27cae60 Merge branch 'main' into ruby/refine-uninitialised-local 2025-04-11 18:09:59 +02:00
Paolo Tranquilli
9dd1062a9c Rust: remove fixed inconsistency 2025-04-11 17:25:56 +02:00
Aditya Sharad
2dc88d87ae Merge pull request #19278 from adityasharad/actions/integration-test-filters
Actions: Fix handling of paths-ignore in autobuild scripts, add integration tests for configured path filters
2025-04-11 20:53:33 +05:30
Paolo Tranquilli
c844db09d2 Merge branch 'redsun82/rust-pick-edition' into redsun82/cargo-upgrade 2025-04-11 17:03:29 +02:00
Paolo Tranquilli
63e5f5a555 Rust: parametrize some integration tests on three editions 2025-04-11 16:50:23 +02:00
Paolo Tranquilli
868680f078 Merge branch 'redsun82/rust-fix-member-aggregation' into redsun82/rust-pick-edition 2025-04-11 16:46:16 +02:00
Paolo Tranquilli
60aa3a8d9d Rust: fix workspace member aggregation when absolute path is a glob pattern
We were interpreting the absolute path of a workspace as a glob pattern,
which doesn't work if the path has some special characters (e.g. `[` or
`]`).
2025-04-11 16:41:51 +02:00
yoff
eb0f8e9572 ruby: add rb/uninitialized-local-variable to quality suite 2025-04-11 16:27:21 +02:00
Mathias Vorreiter Pedersen
11aef7019e Merge pull request #19273 from MathiasVP/prepare-shared-mad-generation-for-cpp
Shared: Prepare model generation for C++ adoption
2025-04-11 07:22:56 -07:00
yoff
6a76a40cf4 ruby: adjust change notes 2025-04-11 16:18:03 +02:00
Arthur Baars
b27ae98b54 Rust: normalize paths in the rustup folder 2025-04-11 15:46:57 +02:00
Arthur Baars
662e963a7b Rust: allow shadowing of prelude items 2025-04-11 15:46:55 +02:00
Paolo Tranquilli
dbbd80f4dc Rust: pick correct edition for the files
Previously we would unconditionally set the edition to the latest stable
according to rust-analyzer (2021 at the moment). Now we ask
rust-analyzer itself to pick the correct edition for the file.
2025-04-11 15:36:45 +02:00
Asger F
6c01709048 JS: Update more test output 2025-04-11 15:15:22 +02:00
yoff
2477233508 ruby: only report on method calls
Interviewing a Ruby developer, I learned that
dealing with nil is common practice.
So alerts are mostly useful, if we can point to a place where this has gone wrong.
2025-04-11 15:01:57 +02:00
Tamas Vajk
51388f2401 Do not try running mono when it's not available on the runner 2025-04-11 14:58:08 +02:00
Mathias Vorreiter Pedersen
877118fb3b Merge pull request #19274 from MathiasVP/prepare-cpp-for-mad-generation
C++: Prepare for model generation adoption
2025-04-11 05:11:36 -07:00
Michael Nebel
f349048e42 C#: Add change note. 2025-04-11 13:53:54 +02:00
Michael Nebel
31143b405e C#: Improve auto builder logic to detect Sdk reference. 2025-04-11 13:53:52 +02:00
Mathias Vorreiter Pedersen
deef95d384 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
Co-authored-by: Taus <tausbn@github.com>
2025-04-11 12:43:59 +01:00
Mathias Vorreiter Pedersen
bfc494c0e1 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
Co-authored-by: Taus <tausbn@github.com>
2025-04-11 12:43:51 +01:00
yoff
b641d5f177 ruby: fix FP 2025-04-11 13:22:42 +02:00
yoff
6e2cfab7b2 ruby: add test for for
found during triage
2025-04-11 12:46:25 +02:00
Michael Nebel
a5aef8c6f9 C#: Add some more DotNet autobuilder unit tests. 2025-04-11 12:03:06 +02:00
Paolo Tranquilli
4ae49cfe35 Merge pull request #19281 from github/redsun82/rust-setup
Rust: refine `ql/test/setup.sh`
2025-04-11 11:55:12 +02:00
Owen Mansel-Chan
472bfa2668 Merge pull request #19115 from owen-mc/java/port/java/string-replace-all-with-non-regex
Java: Add new quality query to detect `String#replaceAll` with non-regex first argument
2025-04-11 10:31:38 +01:00
Napalys Klicius
3d7c0201d9 Merge pull request #19231 from Napalys/js/typed_array
JS: Taint propagation from low-level `ArrayBuffer` to `Strings`
2025-04-11 11:29:01 +02:00
Napalys
11abbf8c4a Now nextUrl is of type parameter and loosen the restriction for NextAppRouteHandler 2025-04-11 11:19:12 +02:00
Napalys Klicius
92e4f112c0 Update javascript/ql/lib/semmle/javascript/frameworks/Next.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-04-11 11:08:40 +02:00
Napalys Klicius
d0dcf897cb Update javascript/ql/lib/semmle/javascript/internal/flow_summaries/Strings.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-04-11 11:04:08 +02:00
yoff
4167e96058 ruby: more complete impleemntation of isInBooleanContext
Co-authored-by: Tom Hvitved <hvitved@github.com>
2025-04-11 11:00:22 +02:00
yoff
f675a143d6 ruby: remove redundant cases
The CFG handles the negation
2025-04-11 10:48:41 +02:00
Napalys Klicius
d17d29a387 Merge pull request #19218 from Napalys/js/upgrade_websocket
JS: Refactor `WebSocket` to use `API` graphs
2025-04-11 10:05:54 +02:00
Napalys
e3f1720f9c RenamedDecodeLike to Decode and updated propagatesFlow 2025-04-11 10:04:09 +02:00
Arthur Baars
85940484ab Update rust/ql/test/setup.sh 2025-04-11 09:57:50 +02:00
Napalys
2c4b3527b4 Added change note 2025-04-11 09:42:12 +02:00
Napalys
678eccb417 Added searchParams.get as potential source for SSRF 2025-04-11 09:42:07 +02:00
Napalys
8674b61e5a Added SSRF test case with searchParams for NextRequest 2025-04-11 09:26:16 +02:00
Paolo Tranquilli
db1203acb3 Rust: reinstate adding rust-src for test toolchains 2025-04-11 08:57:14 +02:00
Napalys
6e09a65da0 Added support for NextRequest middleware SSRF. 2025-04-11 08:43:36 +02:00
Napalys
734ad2d767 Removed legacy Consistency check as it is redundant now with inline test expectations. 2025-04-11 08:43:08 +02:00
Napalys
208487f236 Added middleware test 2025-04-11 08:39:47 +02:00
Asger F
719456e27d JS: Fix missing flow into rest pattern lvalue 2025-04-11 08:37:09 +02:00
Asger F
7703b1fab5 JS: Add test for missing getALocalSource flow for rest pattern 2025-04-11 08:37:07 +02:00
Paolo Tranquilli
547833afb5 Rust: add to CODEOWNERS 2025-04-11 08:32:33 +02:00
Paolo Tranquilli
becea89a47 Rust: refine ql/test/setup.sh 2025-04-11 08:26:48 +02:00
Tamas Vajk
159d31d494 Reenable problematic test 2025-04-11 08:24:08 +02:00
yoff
8555e8c8c8 ruby: add change notes 2025-04-11 03:07:19 +02:00
yoff
53c88da91b ruby: refine query for uninitialised local variables
- there are places where uninitialised reads are intentional
- there are also some places where they are impossible
2025-04-11 03:07:19 +02:00
yoff
1ca25b2ccb ruby: add test of rb/uninitialized-local-variable 2025-04-11 03:00:05 +02:00
Aditya Sharad
283503b06d Actions: Fix handling of paths-ignore in autobuild scripts
Always concatenate the default filters with the user-provided filters.
This ensures that when `paths-ignore` is provided,
we begin with the default path inclusions,
not all YAML files.
This makes the `paths-ignore-only` integration test variant
under `filters` pass.

The handling of `paths` is unchanged:
if provided, this overrides the default filters.
2025-04-10 11:18:45 -07:00
Aditya Sharad
30ce0c5cbf Actions: Add integration tests for configured path filters
Use the common structure from the existing test
for default filters.

Check both query output finding workflows and actions,
and source archive output showing all extracted YAML files.

The test for only `paths-ignore` fails in this commit,
demonstrating a bug: we start with all YAML files
rather than starting with the default includes.

The tests for `paths` reflect current behaviour
which is consistent with other languages:
`paths` overrides the default inclusions,
and only files under `paths` are included.

This may not be the best user experience for Actions,
since we want to scan all workflow and action files
even in the presence of `paths`, but that is not
currently addressed.
2025-04-10 11:17:51 -07:00
Tom Hvitved
7ed8a85e08 Merge pull request #19246 from hvitved/rust/cache-tweaks 2025-04-10 19:02:25 +02:00
Felicity Chapman
c2baf9a052 Merge pull request #19270 from github/felicitymay-patch-1
CodeQL docs: Fix ordering in side navigation bar for Query help
2025-04-10 15:10:14 +01:00
Owen Mansel-Chan
4f5bdbb517 Add new query to java-code-quality.qls.expected 2025-04-10 14:37:11 +01:00
Mathias Vorreiter Pedersen
3bb249f580 C++: Ensure we always have 'Position's even if there are no calls in the DB. 2025-04-10 14:28:40 +01:00
Mathias Vorreiter Pedersen
b678112f4d C++: Add a few predicates to 'ReturnKind'. 2025-04-10 14:28:38 +01:00
Mathias Vorreiter Pedersen
960e9900af C++: Move the 'getArgumentIndex' into the abstract 'Position' class. It is implemented in all subclasses anyway. 2025-04-10 14:28:36 +01:00
Mathias Vorreiter Pedersen
94e08e318d C++: Expose a few predicates from 'ExternalFlow'. 2025-04-10 14:18:47 +01:00
Napalys Klicius
43bf0beae9 Merge pull request #19263 from Napalys/js/make-dir-lib
JS: Add support for `make-dir` package
2025-04-10 15:09:43 +02:00
Napalys
86b64afa13 Added NextResponse to the ResponseCall class it models similar near idential behaviour. 2025-04-10 15:06:44 +02:00
Tom Hvitved
a578f44af4 QL4QL: Restrict ql/qlref-inline-expectations to (path-)problem queries 2025-04-10 15:03:57 +02:00
Mathias Vorreiter Pedersen
ea3bb8cf0c Shared: Provide a hook to MaD generation to modify the 'ReturnValue' string. 2025-04-10 14:02:31 +01:00
Mathias Vorreiter Pedersen
6c348b5855 Rust: Fixup MaD input. 2025-04-10 14:01:20 +01:00
Mathias Vorreiter Pedersen
b6c658767e Java: Fixup MaD input. 2025-04-10 14:01:11 +01:00
Mathias Vorreiter Pedersen
04bf908a4b C#: Fixup MaD input. 2025-04-10 14:01:00 +01:00
Mathias Vorreiter Pedersen
c484945f39 Shared: Move 'getEnclosingCallable' and 'getAsExprEnclosingCallable' out of the class signature. 2025-04-10 14:00:11 +01:00
Mathias Vorreiter Pedersen
732fcbf1c9 Shared: Move 'asParameter' out of the class signature. 2025-04-10 13:58:59 +01:00
Napalys
8acb0243ad Added test cases for NextResponse and Response 2025-04-10 14:57:40 +02:00
Mathias Vorreiter Pedersen
a1dc87496a Shared: Replace a 'count' with a 'strictcount' to prevent a CP when testing on C++. 2025-04-10 13:56:38 +01:00
Napalys
63a3953b0c Enhance Next.js API endpoint handling for compatibility with both Pages and App Router structures. 2025-04-10 14:48:17 +02:00
Napalys
81cba7fa2f Added test cases with missing alerts for Request and NextRequest. 2025-04-10 14:43:48 +02:00
Asger F
eac14b9837 Merge pull request #19200 from asgerf/js/web-response
JS: Add sinks for calls to 'new Response()'
2025-04-10 14:41:32 +02:00
Napalys
171a84609e Applied copilot suggestion. 2025-04-10 14:13:48 +02:00
Felicity Chapman
78a26cfdb2 Update index.rst 2025-04-10 13:09:51 +01:00
Joe Farebrother
7f7fca9e27 Merge pull request #19165 from joefarebrother/python-qual-loop-var-capture
Python: Modernize the Loop Variable Capture query
2025-04-10 13:07:05 +01:00
Owen Mansel-Chan
acfcc6d490 Sort ids in java-code-quality.qls 2025-04-10 12:35:42 +01:00
Owen Mansel-Chan
576f4cf19f Update tags 2025-04-10 12:21:09 +01:00
Owen Mansel-Chan
ad89e7980e Tweak documentation 2025-04-10 12:21:08 +01:00
Owen Mansel-Chan
3ea5cc1b66 Add query to code-quality query suite 2025-04-10 12:21:06 +01:00
Owen Mansel-Chan
e1c5517de7 Keep COMPLIANT and NON_COMPLIANT comments in test 2025-04-10 12:21:05 +01:00
Owen Mansel-Chan
04ec1d7830 Update test expectations 2025-04-10 12:21:03 +01:00
Owen Mansel-Chan
626a7d5007 Fix punctuation 2025-04-10 12:21:02 +01:00
Owen Mansel-Chan
c4e56b1ec8 Add quality and cwe tag to query
CWE-1176: Inefficient CPU Computation
2025-04-10 12:21:00 +01:00
Owen Mansel-Chan
042fe07494 Adjust alert message 2025-04-10 11:47:19 +01:00
Owen Mansel-Chan
fea3d10b97 Update qhelp 2025-04-10 11:47:18 +01:00
Owen Mansel-Chan
441c79ebdf Use existing class StringReplaceAllCall 2025-04-10 11:47:17 +01:00
Owen Mansel-Chan
b5b252b10f Convert test to inline expectations 2025-04-10 11:47:15 +01:00
Owen Mansel-Chan
ff2947a0e5 Adjust query name 2025-04-10 11:47:14 +01:00
Owen Mansel-Chan
041adcd63a Java: Add initial version of string replaceAll with no regex query 2025-04-10 11:46:59 +01:00
Asger F
d2a4f1e17a Merge pull request #19267 from asgerf/js/json-array-trailing-comma
JS: Tolerate trailing commas in JSON arrays
2025-04-10 12:38:16 +02:00
Joe Farebrother
6802037c89 Update qhelp formatting 2025-04-10 09:52:18 +01:00
Joe Farebrother
00999baf9a Apply docs review suggestion - Reword query description.
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-04-10 09:06:01 +01:00
Asger F
3da1f261f7 JS: Change note 2025-04-10 07:21:48 +02:00
Asger F
cfa1a9b603 JS: Update extractor version string 2025-04-10 07:20:53 +02:00
Asger F
1434f7acd2 JS: Tolerate trailing comma in JSON array
Previously we'd fail to extract some tsconfig.json files because of this.
2025-04-10 07:20:51 +02:00
Asger F
800dd168c2 JS: Add failing TRAP test for trailing comma 2025-04-10 07:20:49 +02:00
Aditya Sharad
bd3342af8a Actions: Update integration test for default filters
Create a common file structure to be shared among multiple tests
for path filters, and rename accordingly.
Update test expectations with additional files.
Use pytest markers to indicate the expected outputs.

Add source archive checking in addition to checking query output.
This allows us to test which YAML files were extracted
separately from whether they are semantically meaningful
to the Actions analysis.
2025-04-09 20:59:42 -07:00
Tom Hvitved
0e31bf1e7b Merge pull request #19265 from hvitved/rust/crate-graph-self-crate-ref 2025-04-09 22:54:53 +02:00
Tom Hvitved
a6b20d7731 Merge pull request #19259 from hvitved/ruby/fix-bad-join
Ruby: Fix bad join in `DeadStoreOfLocal.ql`
2025-04-09 19:03:33 +02:00
Tom Hvitved
1ba06ab3bf Merge pull request #19216 from hvitved/rust/path-resolution-path-attr
Rust: Handle path attributes in path resolution
2025-04-09 18:57:56 +02:00
Aditya Sharad
ef0065546a Merge pull request #19264 from github/coadaflorin-actions-docs-patch
Update codeql-library-for-actions.rst
2025-04-09 21:46:28 +05:30
Aditya Sharad
29af6f7f0d Merge pull request #19257 from adityasharad/actions/fix/autobuild-powershell-spaces
Actions: Fix invocation of autobuild PowerShell script
2025-04-09 21:26:32 +05:30
Tom Hvitved
52401aaa73 Address review comments 2025-04-09 17:19:25 +02:00
Chris Smowton
cc379b543c Merge pull request #19260 from smowton/smowton/feature/sanitize-enum-types
Java: Add EnumType to SimpleTypeSanitizer
2025-04-09 16:05:13 +01:00
Chris Smowton
7a8dfdb971 Grammar 2025-04-09 15:52:48 +01:00
Chris Smowton
f31b49b022 Change note 2025-04-09 15:41:48 +01:00
Tom Hvitved
fbab715cb6 Rust: Allow for crate self-references in crate graph paths 2025-04-09 15:21:34 +02:00
Joe Farebrother
84aa2e8627 Apply review suggestion - Tweak wording of example comment
Co-authored-by: Taus <tausbn@github.com>
2025-04-09 14:07:38 +01:00
Chris Smowton
949812243b Merge pull request #19261 from smowton/smowton/admin/improve-gradle-wrapper-message
Java: Update test expectation
2025-04-09 14:03:52 +01:00
Napalys
5243f90c90 Brought back old methods and marked them as deprecated 2025-04-09 14:56:24 +02:00
Florin Coada
0acccf240a Update codeql-library-for-actions.rst 2025-04-09 13:45:21 +01:00
Napalys
5ec71ab9af Added change note 2025-04-09 14:42:34 +02:00
Napalys
ce2fc25cdb Added make-dir model as data 2025-04-09 14:42:29 +02:00
Napalys
674f40b35f Added test cases for make-dir package. 2025-04-09 14:41:12 +02:00
Napalys Klicius
2dca95af92 Update javascript/ql/lib/change-notes/2025-04-07-websocket.md
Co-authored-by: Asger F <asgerf@github.com>
2025-04-09 14:26:00 +02:00
Napalys
0c52b5ad95 Added summary flow for StringFromCharCode 2025-04-09 14:24:43 +02:00
Chris Smowton
5c7a4eb511 Reorder test expectations 2025-04-09 12:51:18 +01:00
Napalys Klicius
f02783a9c6 Merge pull request #19210 from Napalys/js/mkdirp
JS: Modeling of `mkdirp` functions
2025-04-09 13:43:37 +02:00
Tom Hvitved
9323f1aaf0 Merge pull request #19250 from hvitved/rust/fix-bad-joins
Rust: Fix bad joins
2025-04-09 13:36:01 +02:00
Chris Smowton
3373c2457c Update test expectation 2025-04-09 12:27:48 +01:00
Napalys
a3e4e62eac Removed taint from ArrayBuffer constructor as it accepts length 2025-04-09 13:27:13 +02:00
Chris Smowton
0a293cf357 Add EnumType to SimpleTypeSanitizer 2025-04-09 12:12:35 +01:00
Owen Mansel-Chan
b6053e3f91 Merge pull request #19076 from owen-mc/go/update-depstubber-files
Go: update files generated by depstubber
2025-04-09 11:44:20 +01:00
Napalys
4bc3e9e736 Addressed comments
Co-authored-by: Asgerf <asgerf@github.com>
2025-04-09 12:31:45 +02:00
Napalys Klicius
0751d73eab Merge pull request #19256 from Napalys/js/open_package
JS: Model as Data `open` package
2025-04-09 11:54:44 +02:00
Asger F
da7d6d3346 JS: Change note 2025-04-09 11:28:21 +02:00
Tom Hvitved
35f9157e42 Ruby: Fix bad join in DeadStoreOfLocal.ql 2025-04-09 09:28:55 +02:00
Paolo Tranquilli
8d467c7d02 Merge pull request #19255 from github/redsun82/rust-setup
Rust: add test setup script
2025-04-09 08:51:58 +02:00
Aditya Sharad
2e75dbd519 Actions: Fix invocation of autobuild PowerShell script
Pass the quoted script path to PowerShell using `-File`.
This ensures the path is treated as a string rather
than a command, and correctly handles file paths
that contain spaces, unblocking integration tests.

Add logging to autobuild.cmd for easier debugging.
2025-04-08 20:00:25 -07:00
Aditya Sharad
c4c351c9dd Merge pull request #19239 from adityasharad/actions/integration-test-default-filters
Actions: Create initial integration test for default filters
2025-04-08 23:07:58 +05:30
Aditya Sharad
21af1c6113 Merge pull request #19241 from adityasharad/actions/fix/docs-table-block-formatting
Docs: Fix formatting of GitHub Actions content
2025-04-08 22:07:30 +05:30
Tamás Vajk
c0f2ce77d4 Merge pull request #19254 from tamasvajk/tamasvajk/test-queries-not-in-qls
Java: Add test to check queries not included in well-known query suites
2025-04-08 18:20:19 +02:00
Óscar San José
6d95950081 Merge pull request #19252 from github/oscarsj/nice-servers-for-java-tests
Run test servers with `sudo` when running on `macos-15`
2025-04-08 18:04:25 +02:00
Paolo Tranquilli
25bd0c3b21 Rust: add test setup script 2025-04-08 17:28:57 +02:00
Tamás Vajk
d39045e3e1 Merge pull request #19245 from tamasvajk/tamasvajk/improvement-security-and-quality-suite-selector
Java: Add explicit filtering for quality queries that should be included in security-and-quality
2025-04-08 17:08:28 +02:00
Tamas Vajk
e163344907 Java: Add test to check queries not included in well-known query suites 2025-04-08 17:06:46 +02:00
Tamas Vajk
6abff483da Java: Add explicit filtering for quality queries that should be included in security-and-quality 2025-04-08 16:47:41 +02:00
Tamas Vajk
259a09386e Move query suite selector logic to security-and-quality-suite 2025-04-08 16:47:41 +02:00
Tamás Vajk
f325f53273 Merge pull request #19229 from tamasvajk/test/java-query-suite
Java: add integration test for query suite contents
2025-04-08 16:47:07 +02:00
Óscar San José
afe3e5332f Update java/ql/integration-tests/java/buildless-inherit-trust-store/test.py
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-04-08 16:29:23 +02:00
Óscar San José
1eb4a1aa81 Update java/ql/integration-tests/java/buildless-snapshot-repository/test.py
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-04-08 16:29:16 +02:00
Óscar San José
3b56f95480 use only sudo for running maven test server (remove nice) 2025-04-08 16:19:33 +02:00
Paolo Tranquilli
84c728f847 Merge pull request #19244 from github/redsun82/bazel-update
Bazel: update to 8.1.1
2025-04-08 15:58:29 +02:00
Óscar San José
e49fb839b8 Update java/ql/integration-tests/java/buildless-inherit-trust-store/test.py
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-04-08 15:28:18 +02:00
Michael B. Gale
87f2ccb5a2 Merge pull request #19249 from github/mbg/go/fix-getpkginfo-decerr
Go: Fix `err` instead of `decErr` in `GetPkgsInfo`
2025-04-08 14:21:14 +01:00
Óscar San José
b5e1b25553 use sudo nice for running maven test server 2025-04-08 13:51:09 +02:00
Simon Friis Vindum
9dc008b9f4 Merge pull request #19214 from paldepind/rust-ti-associated
Rust: Associated types
2025-04-08 13:46:36 +02:00
Tom Hvitved
95add2f60b Rust: Fix bad join in getAPrivateVisibleModule
Before
```
Pipeline standard for PathResolution::getAPrivateVisibleModule/1#3829a5ee@822d5hwq was evaluated in 24 iterations totaling 16ms (delta sizes total: 4843).
         105047   ~63652%    {2} r1 = SCAN `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev_delta` OUTPUT In.0, In.0

             69       ~0%    {2} r2 = JOIN `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev_delta` WITH `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev` ON FIRST 1 OUTPUT Lhs.0, Lhs.1

        5766690  ~148309%    {2} r3 = JOIN `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev_delta` WITH `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev` ON FIRST 1 OUTPUT Lhs.0, Rhs.1

        5871806  ~143984%    {2} r4 = r1 UNION r2 UNION r3
           6859     ~148%    {2}    | AND NOT `PathResolution::getAPrivateVisibleModule/1#3829a5ee#prev`(FIRST 2)
                             return r4
```

After
```
Pipeline standard for PathResolution::getAPrivateVisibleModule/1#3829a5ee@5edefhwp was evaluated in 12 iterations totaling 0ms (delta sizes total: 3515).
         339   ~1%    {2} r1 = SCAN `PathResolution::isItemParent/1#d5e587d6#prev_delta` OUTPUT In.0, In.0

        3130   ~0%    {2} r2 = JOIN `PathResolution::isItemParent/1#d5e587d6#prev_delta` WITH `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev` ON FIRST 1 OUTPUT Lhs.0, Rhs.1

          46   ~0%    {2} r3 = JOIN `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev_delta` WITH `PathResolution::isItemParent/1#d5e587d6#prev` ON FIRST 1 OUTPUT Lhs.0, Lhs.1

        3515   ~2%    {2} r4 = r1 UNION r2 UNION r3
        3515   ~2%    {2}    | AND NOT `PathResolution::getAPrivateVisibleModule/1#3829a5ee#prev`(FIRST 2)
                      return r4
```
2025-04-08 13:11:32 +02:00
Tom Hvitved
2e1b8b8b0e Rust: Fix bad join in unqualifiedPathLookup
Before
```
Pipeline standard for PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1@822d53wq was evaluated in 61 iterations totaling 118ms (delta sizes total: 131072).
          606491   ~0%    {4} r1 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.1, In.2, In.0, In.3
          106457   ~1%    {3}    | JOIN WITH `PathResolution::unqualifiedPathLookup/4#e32cdfce_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.1

          606491   ~2%    {4} r2 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.0, In.2, In.3, In.1

           19261   ~0%    {4} r3 = JOIN r2 WITH `PathResolution::ModuleLikeNode.isRoot/0#dispred#21662e64` ON FIRST 1 OUTPUT Lhs.3, Lhs.0, Lhs.1, Lhs.2

        42776643   ~1%    {4} r4 = JOIN r2 WITH `doublyBoundedFastTC@PathResolution::hasChild/2#6b318d51#2@PathResolution::isRoot/1#a01ce5c3#1@PathResolution::hasCratePath/1#73ea688d#1` ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2

        42795904   ~1%    {4} r5 = r3 UNION r4
           24921   ~6%    {3}    | JOIN WITH `PathResolution::RelevantPath.isCratePath/2#e595e892_120#join_rhs` ON FIRST 2 OUTPUT Lhs.3, Rhs.2, Lhs.2

          131378   ~2%    {3} r6 = r1 UNION r5
          131072   ~2%    {3}    | AND NOT `PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1#prev`(FIRST 3)
                          return r6
```

After
```
Pipeline standard for PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1@0553a4wi was evaluated in 66 iterations totaling 10ms (delta sizes total: 131072).
        610251  ~0%    {4} r1 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.1, In.2, In.0, In.3
        131378  ~0%    {3}    | JOIN WITH `PathResolution::unqualifiedPathLookup1/4#781de0cd_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.1
        131072  ~0%    {3}    | AND NOT `PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1#prev`(FIRST 3)
                       return r1
```
2025-04-08 13:10:52 +02:00
Michael B. Gale
7798b716ff Go: Fix err instead of decErr in GetPkgsInfo 2025-04-08 12:04:48 +01:00
Óscar San José
a7943d88b1 Merge pull request #19234 from github/oscarsj/csharp-disable-nuget-tests
Disable csharp tests that use nuget on macos-15
2025-04-08 12:38:28 +02:00
Geoffrey White
866fc6b320 Merge pull request #19235 from geoffw0/ssaconsistency
Rust: SSA inconsistency counts
2025-04-08 10:49:19 +01:00
Tom Hvitved
7459548118 Rust: Cache tweaks 2025-04-08 11:49:16 +02:00
Owen Mansel-Chan
8c878cd8f5 Merge pull request #19243 from github/dependabot/go_modules/go/extractor/extractor-dependencies-891a2402ea
Bump golang.org/x/tools from 0.31.0 to 0.32.0 in /go/extractor in the extractor-dependencies group
2025-04-08 10:30:29 +01:00
Owen Mansel-Chan
5f6c59580c Merge pull request #19240 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-04-08 10:28:22 +01:00
Geoffrey White
10ad5780b5 Rust: Try a different toolchain version to fix the test in CI? 2025-04-08 10:21:40 +01:00
Geoffrey White
e2f63db96d Merge branch 'main' into badalloc 2025-04-08 10:15:38 +01:00
Geoffrey White
fd3dcb2d00 Rust: More precise imports. 2025-04-08 09:30:14 +01:00
Paolo Tranquilli
15606dd894 Bazel: update to 8.1.1 2025-04-08 08:20:54 +02:00
Napalys
4a4d78bbde Added change note 2025-04-08 08:12:42 +02:00
Napalys
b8802a29f4 Added open package model as data. 2025-04-08 08:12:30 +02:00
Napalys
df89739085 Added test cases for open package. 2025-04-08 08:10:10 +02:00
dependabot[bot]
2f9be926fb Bump golang.org/x/tools
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools).


Updates `golang.org/x/tools` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.31.0...v0.32.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-version: 0.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: extractor-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 03:42:17 +00:00
Aditya Sharad
cf4989e1f8 Docs: Place GitHub Actions link lower in sidebar
Order by the human-readable language name
that is rendered,
i.e. 'GitHub Actions', not 'actions'.
2025-04-07 17:37:24 -07:00
Aditya Sharad
98b6e5ce2f Docs: Fix formatting of GitHub Actions content
Discovered in internal review of docs preview.
Use double backticks to render inline code blocks.
Use __ after inline hyperlinks.
Use an extra blank line to format the Actions library predicates table correctly.
Fix some rogue references to Ruby and case inconsistency.
2025-04-07 17:33:43 -07:00
github-actions[bot]
5adf135134 Add changed framework coverage reports 2025-04-08 00:22:09 +00:00
Óscar San José
5e74bdc8dd Disable csharp test failing on macos-15 2025-04-07 18:16:33 +02:00
Napalys
873db7c121 Added change note 2025-04-07 18:15:24 +02:00
Napalys
b97c61864e Add flow summaries and entry points for TextDecoder 2025-04-07 18:15:19 +02:00
Napalys
f28478e876 Add test cases from TypedArrays to strings. 2025-04-07 18:13:52 +02:00
Napalys
f4277204b7 Add flow summaries and entry points for ArrayBuffer and SharedArrayBuffer 2025-04-07 18:12:35 +02:00
Napalys
0e099474c5 Added test cases for ArrayBuffer and SharedArrayBuffer 2025-04-07 18:07:54 +02:00
Napalys
ff07ec8d8c Add flow summaries for TypedArray methods set and subarray 2025-04-07 18:06:40 +02:00
Geoffrey White
ee54ba4c48 Rust: Autoformat. 2025-04-07 17:06:15 +01:00
Paolo Tranquilli
de0d374cce Rust: add upgrades property in qlpack.yml 2025-04-07 17:22:17 +02:00
Geoffrey White
9c1567375d Shared: Implement getInconsistencyCounts for SSA. 2025-04-07 16:20:42 +01:00
Simon Friis Vindum
48e5b0a731 Merge branch 'main' into rust-ti-associated 2025-04-07 17:07:05 +02:00
Simon Friis Vindum
602e617bc6 Rust: Add type inference test for trait with multiple associated types 2025-04-07 17:02:51 +02:00
Simon Friis Vindum
8e76bb1a43 Rust: Minor changes based on PR review 2025-04-07 16:46:54 +02:00
Óscar San José
3744ef7379 Disable csharp tests that use nuget on macos-15 2025-04-07 16:24:48 +02:00
Paolo Tranquilli
1f9455c434 Rust: add upgrade/downgrade scripts for struct_field_is_unsafe 2025-04-07 15:39:14 +02:00
Geoffrey White
41f54d836e Rust: Tweak query description. 2025-04-07 14:33:31 +01:00
Geoffrey White
dad85854cd Apply suggestions from code review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-04-07 14:27:12 +01:00
Paolo Tranquilli
260322b669 Rust: fix compilation errors 2025-04-07 15:25:19 +02:00
Tom Hvitved
13f4a6afa6 Rust: Handle path attributes in path resolution 2025-04-07 15:24:17 +02:00
Tom Hvitved
edb7aaabab Rust: Add path attribute test 2025-04-07 15:23:27 +02:00
Napalys
d689a55229 Added test cases for TypedArray methods 2025-04-07 15:15:29 +02:00
Napalys
e23ff9cf3e Add TypedArrays flow summaries for Uint8Array and buffer property 2025-04-07 15:15:24 +02:00
Tamás Vajk
ffcf6d6e58 Apply suggestions from code review
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-07 14:52:57 +02:00
Paolo Tranquilli
132632b2a1 Cargo: update rustc_apfloat patched revision 2025-04-07 14:45:55 +02:00
Paolo Tranquilli
afb97d2797 Rust: regenerate schema 2025-04-07 14:34:33 +02:00
Paolo Tranquilli
db9c908d1d Cargo: upgrade dependencies 2025-04-07 14:30:00 +02:00
Geoffrey White
2c2506c4f8 Rust: Add Rust SSA inconsistency infrastructure. 2025-04-07 12:16:45 +01:00
Tamas Vajk
d17d44125c Java: add integration test for query suite contents 2025-04-07 12:49:16 +02:00
Napalys
93882263f9 Added test case for Uint8Array and TypedArray.prototype.buffer 2025-04-07 12:46:19 +02:00
Napalys
c4fa417680 Added change note 2025-04-07 12:11:33 +02:00
Napalys
6fb5376c5f Refactor ReceivedItemAsRemoteFlow to handle data from both client and server WebSocket sources 2025-04-07 11:44:40 +02:00
Geoffrey White
893e42315e Merge branch 'main' into badalloc 2025-04-07 09:33:23 +01:00
Geoffrey White
6ad7a950da Merge branch 'main' into badalloc 2025-04-04 21:57:04 +01:00
Geoffrey White
c9939387f8 Rust: Turn on PrettyPrintModels for RegexInjection so we hopefully don't have to deal with test result changes there as often. 2025-04-04 21:47:22 +01:00
Geoffrey White
a5883b1627 Rust: Accept test changes (due to added models?). 2025-04-04 21:45:37 +01:00
Jami Cogswell
798907dc50 Java: remove change note 2025-04-04 14:01:35 -04:00
Jami Cogswell
77eeab33a6 Java: remove change note 2025-04-04 13:57:34 -04:00
Geoffrey White
8e7e162ebc Merge branch 'main' into badalloc 2025-04-04 17:09:50 +01:00
Joe Farebrother
e08072d77b Fix qhelp formatting 2025-04-04 12:51:46 +01:00
Joe Farebrother
de7e611962 Rewrite documentation 2025-04-04 12:36:13 +01:00
Joe Farebrother
b5805503fe Cleanups 2025-04-04 11:56:07 +01:00
Napalys
6bcfd8c91d Updated getAServer with API graphs. 2025-04-04 12:31:29 +02:00
Napalys
c5860e92ec Updated WebSocketReceiveNode to match bind functions. 2025-04-04 12:28:53 +02:00
Napalys
4b7a9cd399 Added test case with bind. 2025-04-04 12:26:58 +02:00
Napalys
49194b0340 Updated WebSocketReceiveNode with API graphs. 2025-04-04 12:26:52 +02:00
Joe Farebrother
9fb1c31206 Update tests to inline expectations 2025-04-04 10:13:39 +01:00
Geoffrey White
44b26e5ae6 Rust: Change the test copy of the example as well. 2025-04-04 09:54:41 +01:00
Geoffrey White
f96b00a62a Update rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSizeGood.rs
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-04-04 09:53:13 +01:00
Joe Farebrother
adfe89fadc Update test output 2025-04-04 09:47:21 +01:00
Simon Friis Vindum
77e1b231a6 Rust: Handle associated types in trait methods 2025-04-04 10:24:55 +02:00
Simon Friis Vindum
f9ff92a705 Rust: Expand on type inference tests for associated types 2025-04-04 10:16:09 +02:00
Napalys
0dbf951291 Updated ClientSocket and SendNode with API graphs. 2025-04-04 09:14:54 +02:00
Napalys
455ce59583 Added test cases with export of an instance. 2025-04-04 08:59:19 +02:00
Napalys
e16a20e69f Updated SocketClass to use API Graphs. 2025-04-04 08:47:27 +02:00
Napalys
c7fad09664 Added test cases with custom exports/imports. 2025-04-04 08:33:26 +02:00
Napalys
a572ac60d2 Added inline test expectations for WebSocket 2025-04-04 08:22:48 +02:00
Jami Cogswell
fc21abc7e4 Java: update qhelp implementation notes to say 'method declarations' 2025-04-03 16:05:23 -04:00
Asger F
6c33013788 JS: Enable association with headers without needing a route handler
Previously it was not possible to associate a ResponseSendArgument with its header definitions if they did not have the same route handler.

But for calls like `new Response(body, { headers })` the headers are fairly obvious whereas the route handler is unnecessarily hard to find. So we use the direct and obvious association between 'body' and 'headers' in the call.
2025-04-03 11:08:10 +02:00
Asger F
db2720ea5b JS: Initial model of Response 2025-04-03 11:08:05 +02:00
Napalys
0e7bff0f81 Added change note. 2025-04-03 10:45:17 +02:00
Napalys
04a39eb735 Removed old mkdirp modeling and replaced it with MaD. 2025-04-03 10:45:16 +02:00
Napalys
3fa24d6026 Add sink model for mkdirp and update tests for path injection alerts. 2025-04-03 10:45:14 +02:00
Napalys
533f1a93e2 JS: Added test cases for mkdirp. 2025-04-03 10:45:12 +02:00
Jami Cogswell
0380279c39 Java: update qhelp implementation notes for more clarity 2025-04-02 19:43:33 -04:00
Jami Cogswell
05d7b9a19a Java: add reliability tag 2025-04-02 19:11:26 -04:00
Jami Cogswell
6ade97892f Java: update maintainability tag to reliability instead 2025-04-02 19:06:02 -04:00
Asger F
9ebaac82cf JS: Add tests for Response object sink 2025-04-02 13:47:18 +02:00
Joe Farebrother
c37809a187 Reduce scope of allowImplicitRead to avoid cartesian product. 2025-04-02 09:35:50 +01:00
Joe Farebrother
2d6476ad21 Update names and alert message 2025-04-02 09:35:43 +01:00
Joe Farebrother
11830bf661 Move to separate folder 2025-04-02 09:35:39 +01:00
Joe Farebrother
5b7200a041 Use flow path in alerts 2025-04-02 09:35:32 +01:00
Joe Farebrother
08b4281187 Update query message and remove field case 2025-04-02 09:35:25 +01:00
Joe Farebrother
efdb4a6d82 Use global dataflow for loop variable capture 2025-04-02 09:35:17 +01:00
Jami Cogswell
1a2c34dd28 Java: update qhelp implementation notes for clarity 2025-04-01 16:24:13 -04:00
Jami
c4b8396333 fix typo in query description
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com>
2025-04-01 15:52:57 -04:00
Jami Cogswell
e621f9fd49 Java: update comments in tests 2025-04-01 15:48:52 -04:00
Jami Cogswell
faeb7ab890 Java: add blank lines to qldocs 2025-04-01 14:54:46 -04:00
Alex Eyers-Taylor
0ccbe3ef7f Ruby: Make module graph queries avoid relying on evalaution order. 2025-04-01 16:18:45 +01:00
Jami Cogswell
416643ce39 Java: update qhelp recommendation and example 2025-03-31 21:09:21 -04:00
Geoffrey White
fb22d55878 Rust: Remove duplicate models. 2025-03-31 18:26:26 +01:00
Geoffrey White
6a5a1001bb Rust: Refine the barrier guard. 2025-03-31 18:26:21 +01:00
Geoffrey White
f7d3a51f27 Rust: Implement barrier guard. 2025-03-31 17:53:17 +01:00
Geoffrey White
cdd5cb0523 Rust: More test cases for bounds / guards. 2025-03-31 17:53:14 +01:00
Geoffrey White
addc1d34d8 Rust: Add qhelp, examples, and tests of examples. 2025-03-31 17:53:10 +01:00
Geoffrey White
64aa4e8bae Rust: Ensure that the sinks for this query appear in metrics. 2025-03-31 17:39:24 +01:00
Geoffrey White
e49c1afe72 Rust: Add a few missing models. 2025-03-31 17:39:19 +01:00
Geoffrey White
03f94de3cb Rust: Add models. 2025-03-31 17:39:15 +01:00
Geoffrey White
9409cd6ed7 Rust: Prototype query. 2025-03-31 17:39:11 +01:00
Geoffrey White
ae555f2f2e Rust: Add a test for uncontrolled allocation size. 2025-03-31 17:37:21 +01:00
Jami
e458aca806 Merge branch 'main' into jcogs33/java/junit5-missing-nested-annotation 2025-03-27 21:31:09 -04:00
Jami Cogswell
92cdddf604 Java: resolve filename conflict 2025-03-27 21:29:20 -04:00
Jami Cogswell
caf21a8202 Java: update qhelp and add 'performace' tag 2025-03-27 20:20:48 -04:00
Jami Cogswell
3631df03c7 Java: add to code-quality suite 2025-03-27 19:38:10 -04:00
Jami Cogswell
ed22a16f32 Java: exclude overloads of finalize 2025-03-27 19:35:46 -04:00
Jami Cogswell
f73eda0c38 Java: add previous-id and change 'use' to 'call' 2025-03-27 19:35:44 -04:00
Jami Cogswell
2e25498143 Java: add change note 2025-03-27 19:35:42 -04:00
Jami Cogswell
44445dbeb8 Java: minor refactor 2025-03-27 19:35:41 -04:00
Jami Cogswell
dd57d1aec6 Java: add quality tag 2025-03-27 19:35:39 -04:00
Jami Cogswell
c689a0e9b7 Java: add more test cases 2025-03-27 19:35:37 -04:00
Jami Cogswell
d9482ae334 Java: update tests to use inline expectations 2025-03-27 19:35:35 -04:00
Jami Cogswell
9a6e241f54 Java: update to only find 'finalize' calls and add 'super.finalize' exclusion 2025-03-27 19:35:34 -04:00
Jami Cogswell
56ea9b6523 Java: move original files 2025-03-27 19:35:32 -04:00
Jami
e169c21f8b Apply suggestions from docs review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-03-25 07:19:39 -04:00
Jami Cogswell
b9bf192c09 Java: previous-id property instead of tag, see #19097 2025-03-24 14:37:05 -04:00
Jami Cogswell
0f002624d6 Java: remove mention of abstract classes from qhelp 2025-03-23 19:51:37 -04:00
Jami Cogswell
dca4c58b29 Java: add to ccr/quality suite 2025-03-23 19:51:35 -04:00
Jami Cogswell
37092f4411 Java: add 'testability' and 'frameworks/junit' tags 2025-03-23 19:51:26 -04:00
Jami Cogswell
35b647839c Java: include RepeatedTest, ParameterizedTest, TestFactory, and TestTemplate when identifying JUnit 5 test methods 2025-03-23 19:49:55 -04:00
Jami Cogswell
4d7bed6181 Java: exclude anonymous, local, and private classes 2025-03-23 19:49:53 -04:00
Jami Cogswell
3e13f0ed41 Java: remove redundant 'non-static' wording and update qhelp 2025-03-23 19:49:41 -04:00
Jami Cogswell
640096c822 Java: change note 2025-03-23 19:48:20 -04:00
Jami Cogswell
ed57bc7858 Java: exclude abstract classes 2025-03-23 19:48:18 -04:00
Jami Cogswell
b08c8d020d Java: tests to inline expectations 2025-03-23 19:48:17 -04:00
Jami Cogswell
f17e7266cf Java: refactor QL 2025-03-23 19:48:15 -04:00
Jami Cogswell
ccbe77eb09 Java: move original files 2025-03-23 19:48:13 -04:00
Owen Mansel-Chan
e44f7f946f Sort package paths in vendor/modules.txt 2025-03-21 09:45:50 +00:00
Owen Mansel-Chan
7e04a9f6c0 Improve stubs (made by old version of depstubber?) 2025-03-20 12:33:39 +00:00
Owen Mansel-Chan
6147f0a873 Fix outdated depstubber command 2025-03-20 12:32:56 +00:00
Owen Mansel-Chan
40768332d8 Remove empty imports from stubs 2025-03-20 12:32:12 +00:00
Owen Mansel-Chan
81e85010f9 List subpackages in vendor/modules.txt
These were all generated by running depstubber.
2025-03-20 12:30:57 +00:00
681 changed files with 57385 additions and 5620 deletions

View File

@@ -1 +1 @@
8.0.0
8.1.1

View File

@@ -8,6 +8,7 @@
/javascript/ @github/codeql-javascript
/python/ @github/codeql-python
/ruby/ @github/codeql-ruby
/rust/ @github/codeql-rust
/swift/ @github/codeql-swift
/misc/codegen/ @github/codeql-swift
/java/kotlin-extractor/ @github/codeql-kotlin
@@ -41,6 +42,7 @@ MODULE.bazel @github/codeql-ci-reviewers
/.github/workflows/go-* @github/codeql-go
/.github/workflows/ql-for-ql-* @github/codeql-ql-for-ql-reviewers
/.github/workflows/ruby-* @github/codeql-ruby
/.github/workflows/rust.yml @github/codeql-rust
/.github/workflows/swift.yml @github/codeql-swift
# Misc

277
Cargo.lock generated
View File

@@ -154,15 +154,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.8.0"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
[[package]]
name = "borsh"
version = "1.5.3"
version = "1.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03"
checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc"
dependencies = [
"cfg_aliases",
]
@@ -224,9 +224,9 @@ dependencies = [
[[package]]
name = "cargo_metadata"
version = "0.18.1"
version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
dependencies = [
"camino",
"cargo-platform",
@@ -275,7 +275,7 @@ version = "0.100.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f114996bda14c0213f014a4ef31a7867dcf5f539a3900477fc6b20138e7a17b"
dependencies = [
"bitflags 2.8.0",
"bitflags 2.9.0",
"chalk-derive",
]
@@ -301,7 +301,7 @@ dependencies = [
"chalk-derive",
"chalk-ir",
"ena",
"indexmap 2.7.0",
"indexmap 2.9.0",
"itertools 0.12.1",
"petgraph",
"rustc-hash 1.1.0",
@@ -325,9 +325,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.32"
version = "4.5.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83"
checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944"
dependencies = [
"clap_builder",
"clap_derive",
@@ -335,9 +335,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.32"
version = "4.5.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8"
checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9"
dependencies = [
"anstream",
"anstyle",
@@ -622,7 +622,7 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5"
dependencies = [
"log 0.4.25",
"log 0.4.27",
]
[[package]]
@@ -691,9 +691,9 @@ checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
[[package]]
name = "equivalent"
version = "1.0.1"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "figment"
@@ -781,7 +781,7 @@ checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd"
dependencies = [
"cfg-if",
"libc",
"log 0.4.25",
"log 0.4.27",
"rustversion",
"windows",
]
@@ -812,7 +812,7 @@ checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19"
dependencies = [
"aho-corasick",
"bstr",
"log 0.4.25",
"log 0.4.27",
"regex-automata 0.4.9",
"regex-syntax 0.8.5",
]
@@ -918,9 +918,9 @@ dependencies = [
[[package]]
name = "indexmap"
version = "2.7.0"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f"
checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
dependencies = [
"equivalent",
"hashbrown 0.15.2",
@@ -939,7 +939,7 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
dependencies = [
"bitflags 2.8.0",
"bitflags 2.9.0",
"inotify-sys",
"libc",
]
@@ -979,9 +979,9 @@ dependencies = [
[[package]]
name = "itoa"
version = "1.0.14"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jod-thread"
@@ -1033,9 +1033,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.169"
version = "0.2.171"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
[[package]]
name = "libredox"
@@ -1043,7 +1043,7 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [
"bitflags 2.8.0",
"bitflags 2.9.0",
"libc",
"redox_syscall",
]
@@ -1074,14 +1074,14 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
dependencies = [
"log 0.4.25",
"log 0.4.27",
]
[[package]]
name = "log"
version = "0.4.25"
version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"
checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
[[package]]
name = "loom"
@@ -1096,12 +1096,6 @@ dependencies = [
"tracing-subscriber",
]
[[package]]
name = "lz4_flex"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5"
[[package]]
name = "matchers"
version = "0.1.0"
@@ -1142,7 +1136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"
dependencies = [
"libc",
"log 0.4.25",
"log 0.4.27",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.52.0",
]
@@ -1178,13 +1172,13 @@ version = "8.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943"
dependencies = [
"bitflags 2.8.0",
"bitflags 2.9.0",
"filetime",
"fsevent-sys",
"inotify",
"kqueue",
"libc",
"log 0.4.25",
"log 0.4.27",
"mio",
"notify-types",
"walkdir",
@@ -1240,9 +1234,9 @@ checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"
[[package]]
name = "oorandom"
version = "11.1.4"
version = "11.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9"
checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
[[package]]
name = "os_str_bytes"
@@ -1331,7 +1325,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
dependencies = [
"fixedbitset",
"indexmap 2.7.0",
"indexmap 2.9.0",
]
[[package]]
@@ -1398,7 +1392,7 @@ version = "0.100.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1651b0f7e8c3eb7c27a88f39d277e69c32bfe58e3be174d286c1a24d6a7a4d8"
dependencies = [
"bitflags 2.8.0",
"bitflags 2.9.0",
"ra-ap-rustc_hashes",
"ra-ap-rustc_index",
"tracing",
@@ -1470,18 +1464,16 @@ dependencies = [
[[package]]
name = "ra_ap_base_db"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4baa9734d254af14fd603528ad594650dea601b1764492bd39988da38598ae67"
checksum = "8fd761118bbafe29e2b187e694c6b8e800f2c7822bbc1d9d2db4ac21fb8b0365"
dependencies = [
"dashmap 5.5.3",
"la-arena",
"lz4_flex",
"ra_ap_cfg",
"ra_ap_intern",
"ra_ap_query-group-macro",
"ra_ap_span",
"ra_ap_stdx",
"ra_ap_syntax",
"ra_ap_vfs",
"rustc-hash 2.1.1",
@@ -1493,9 +1485,9 @@ dependencies = [
[[package]]
name = "ra_ap_cfg"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ef2ba45636c5e585040c0c4bee640737a6001b08309f1a25ca78cf04abfbf90"
checksum = "5ce74ce1af24afd86d3529dbbf5a849d026948b2d8ba51d199b6ea6db6e345b6"
dependencies = [
"ra_ap_intern",
"ra_ap_tt",
@@ -1505,20 +1497,20 @@ dependencies = [
[[package]]
name = "ra_ap_edition"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8955c1484d5e7274f755187788ba0d51eb149f870c69cdf0d87c3b7edea20ea0"
checksum = "f423b9fb19e3920e4c7039120d09d9c79070a26efe8ff9f787c7234b07f518c5"
[[package]]
name = "ra_ap_hir"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a51d7955beff2212701b149bea36d4cf2dc0f5cd129652c9bcf0cb5c0b021078"
checksum = "dd4aa8a568b80d288b90c4fa5dc8a3cc405914d261bfd33a3761c1ba41be358d"
dependencies = [
"arrayvec",
"either",
"indexmap 2.7.0",
"itertools 0.12.1",
"indexmap 2.9.0",
"itertools 0.14.0",
"ra_ap_base_db",
"ra_ap_cfg",
"ra_ap_hir_def",
@@ -1537,23 +1529,20 @@ dependencies = [
[[package]]
name = "ra_ap_hir_def"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5c97e617e4c585d24b3d4f668861452aedddfbe0262f4c53235dcea77e62f9b"
checksum = "acb18d9378a828a23ccf87b89199db005adb67ba2a05a37d7a3fcad4d1036e66"
dependencies = [
"arrayvec",
"bitflags 2.8.0",
"bitflags 2.9.0",
"cov-mark",
"dashmap 5.5.3",
"drop_bomb",
"either",
"fst",
"hashbrown 0.14.5",
"indexmap 2.7.0",
"itertools 0.12.1",
"indexmap 2.9.0",
"itertools 0.14.0",
"la-arena",
"ra-ap-rustc_abi",
"ra-ap-rustc_hashes",
"ra-ap-rustc_parse_format",
"ra_ap_base_db",
"ra_ap_cfg",
@@ -1570,21 +1559,20 @@ dependencies = [
"salsa",
"smallvec",
"text-size",
"thin-vec",
"tracing",
"triomphe",
]
[[package]]
name = "ra_ap_hir_expand"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be57c0d7e3f2180dd8ea584b11447f34060eadc06f0f6d559e2a790f6e91b6c5"
checksum = "094fa79d8f661f52cf3b7fb8b3d91c4be2ad9e71a3967d3dacd25429fa44b37d"
dependencies = [
"cov-mark",
"either",
"hashbrown 0.14.5",
"itertools 0.12.1",
"la-arena",
"itertools 0.14.0",
"ra_ap_base_db",
"ra_ap_cfg",
"ra_ap_intern",
@@ -1605,24 +1593,22 @@ dependencies = [
[[package]]
name = "ra_ap_hir_ty"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f260f35748f3035b46a8afcdebda7cb75d95c24750105fad86101d09a9d387c8"
checksum = "093482d200d5db421db5692e7819bbb14fb717cc8cb0f91f93cce9fde85b3df2"
dependencies = [
"arrayvec",
"bitflags 2.8.0",
"bitflags 2.9.0",
"chalk-derive",
"chalk-ir",
"chalk-recursive",
"chalk-solve",
"cov-mark",
"dashmap 5.5.3",
"either",
"ena",
"indexmap 2.7.0",
"itertools 0.12.1",
"indexmap 2.9.0",
"itertools 0.14.0",
"la-arena",
"nohash-hasher",
"oorandom",
"ra-ap-rustc_abi",
"ra-ap-rustc_index",
@@ -1647,19 +1633,18 @@ dependencies = [
[[package]]
name = "ra_ap_ide_db"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0426263be26e27cb55a3b9ef88b120511b66fe7d9b418a2473d6d5f3ac2fe0a6"
checksum = "b655b92dfa9444db8129321b9217d9e4a83a58ee707aa1004a93052acfb43d57"
dependencies = [
"arrayvec",
"bitflags 2.8.0",
"bitflags 2.9.0",
"cov-mark",
"crossbeam-channel",
"dashmap 5.5.3",
"either",
"fst",
"indexmap 2.7.0",
"itertools 0.12.1",
"indexmap 2.9.0",
"itertools 0.14.0",
"line-index",
"memchr",
"nohash-hasher",
@@ -1681,9 +1666,9 @@ dependencies = [
[[package]]
name = "ra_ap_intern"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6ea8c9615b3b0688cf557e7310dbd9432f43860c8ea766d54f4416cbecf3571"
checksum = "b4e528496b4d4c351806bb073d3d7f6526535741b9e8801776603c924bbec624"
dependencies = [
"dashmap 5.5.3",
"hashbrown 0.14.5",
@@ -1693,17 +1678,16 @@ dependencies = [
[[package]]
name = "ra_ap_load-cargo"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "570907e16725c13a678bfd8050ce8839af2831da042a0878b75ee8c41b0f7b0c"
checksum = "1a97a5070b2f4b99f56683d91b2687aa0c530d8969cc5252ec2ae5644e428ffe"
dependencies = [
"anyhow",
"crossbeam-channel",
"itertools 0.12.1",
"itertools 0.14.0",
"ra_ap_hir_expand",
"ra_ap_ide_db",
"ra_ap_intern",
"ra_ap_paths",
"ra_ap_proc_macro_api",
"ra_ap_project_model",
"ra_ap_span",
@@ -1715,9 +1699,9 @@ dependencies = [
[[package]]
name = "ra_ap_mbe"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e893fe03b04b30c9b5a339ac2bf39ce32ac9c05a8b50121b7d89ce658346e164"
checksum = "b187ee5ee3fa726eeea5142242a0397e2200d77084026986a68324b9599f9046"
dependencies = [
"arrayvec",
"cov-mark",
@@ -1726,19 +1710,17 @@ dependencies = [
"ra_ap_parser",
"ra_ap_span",
"ra_ap_stdx",
"ra_ap_syntax",
"ra_ap_syntax-bridge",
"ra_ap_tt",
"rustc-hash 2.1.1",
"smallvec",
"tracing",
]
[[package]]
name = "ra_ap_parser"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fd9a264120968b14a66b6ba756cd7f99435385b5dbc2f0a611cf3a12221c385"
checksum = "2306e6c051e60483f3b317fac9dec6c883b7792eeb8db24ec6f39dbfa5430159"
dependencies = [
"drop_bomb",
"ra-ap-rustc_lexer",
@@ -1748,20 +1730,20 @@ dependencies = [
[[package]]
name = "ra_ap_paths"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f47817351651e36b56ff3afc483b41600053c9cb7e67d945467c0abe93416032"
checksum = "dcedd00499621bdd0f1fe01955c04e4b388197aa826744003afaf6cc2944bc80"
dependencies = [
"camino",
]
[[package]]
name = "ra_ap_proc_macro_api"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d96da3b8b9f6b813a98f5357eef303905450741f47ba90adaab8a5371b748416"
checksum = "7a2e49b550015cd4ad152bd78d92d73594497f2e44f61273f9fed3534ad4bbbe"
dependencies = [
"indexmap 2.7.0",
"indexmap 2.9.0",
"ra_ap_intern",
"ra_ap_paths",
"ra_ap_span",
@@ -1776,9 +1758,9 @@ dependencies = [
[[package]]
name = "ra_ap_profile"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13637377287c84f88a628e40229d271ef0081c0d683956bd99a6c8278a4f8b14"
checksum = "87cdbd27ebe02ec21fdae3df303f194bda036a019ecef80d47e0082646f06c54"
dependencies = [
"cfg-if",
"libc",
@@ -1788,13 +1770,13 @@ dependencies = [
[[package]]
name = "ra_ap_project_model"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "053c5207a638fc7a752c7a454bc952b28b0d02f0bf9f6d7ec785ec809579d8fa"
checksum = "5eaa3406c891a7840d20ce615f8decca32cbc9d3654b82dcbcc3a31257ce90b9"
dependencies = [
"anyhow",
"cargo_metadata",
"itertools 0.12.1",
"itertools 0.14.0",
"la-arena",
"ra_ap_base_db",
"ra_ap_cfg",
@@ -1814,22 +1796,20 @@ dependencies = [
[[package]]
name = "ra_ap_query-group-macro"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f1a38f07b442e47a234cbe2e8fd1b8a41ff0cc5123cb1cf994c5ce20edb5bd6"
checksum = "1fbc1748e4876a9b0ccfacfc7e2fe254f30e92ef58d98925282b3803e8b004ed"
dependencies = [
"heck",
"proc-macro2",
"quote",
"salsa",
"syn",
]
[[package]]
name = "ra_ap_span"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8818680c6f7da3b32cb2bb0992940b24264b1aa90203aa94812e09ab34d362d1"
checksum = "ed1d036e738bf32a057d90698df85bcb83ed6263b5fe9fba132c99e8ec3aecaf"
dependencies = [
"hashbrown 0.14.5",
"la-arena",
@@ -1843,12 +1823,12 @@ dependencies = [
[[package]]
name = "ra_ap_stdx"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1c10bee1b03fc48083862c13cf06bd3ed17760463ecce2734103a2f511e5ed4"
checksum = "6e3775954ab24408f71e97079a97558078a166a4082052e83256ae4c22dae18d"
dependencies = [
"crossbeam-channel",
"itertools 0.12.1",
"itertools 0.14.0",
"jod-thread",
"libc",
"miow",
@@ -1858,14 +1838,12 @@ dependencies = [
[[package]]
name = "ra_ap_syntax"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92bc32f3946fc5fcbdc79e61b7e26a8c2a3a56f3ef6ab27c7d298a9e21a462f2"
checksum = "b49b081f209a764700f688db91820a66c2ecfe5f138895d831361cf84f716691"
dependencies = [
"cov-mark",
"either",
"indexmap 2.7.0",
"itertools 0.12.1",
"itertools 0.14.0",
"ra-ap-rustc_lexer",
"ra_ap_parser",
"ra_ap_stdx",
@@ -1878,9 +1856,9 @@ dependencies = [
[[package]]
name = "ra_ap_syntax-bridge"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a42052c44c98c122c37aac476260c8f19d8fec495edc9c05835307c9ae86194d"
checksum = "f2740bbe603d527f2cf0aaf51629de7d072694fbbaaeda8264f7591be1493d1b"
dependencies = [
"ra_ap_intern",
"ra_ap_parser",
@@ -1889,14 +1867,13 @@ dependencies = [
"ra_ap_syntax",
"ra_ap_tt",
"rustc-hash 2.1.1",
"tracing",
]
[[package]]
name = "ra_ap_toolchain"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75996e70b3a0c68cd5157ba01f018964c7c6a5d7b209047d449b393139d0b57f"
checksum = "efbff9f26f307ef958586357d1653d000861dcd3acbaf33a009651e024720c7e"
dependencies = [
"camino",
"home",
@@ -1904,9 +1881,9 @@ dependencies = [
[[package]]
name = "ra_ap_tt"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4ee31e93bfabe83e6720b7469db88d7ad7ec5c59a1f011efec4aa1327ffc5c"
checksum = "0b1ce3ac14765e414fa6031fda7dc35d3492c74de225aac689ba8b8bf037e1f8"
dependencies = [
"arrayvec",
"ra-ap-rustc_lexer",
@@ -1917,13 +1894,13 @@ dependencies = [
[[package]]
name = "ra_ap_vfs"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6aac1e277ac70bb073f40f8a3fc44e4b1bb9e4d4b1d0e0bd2f8269543560f80"
checksum = "29427a7c27ce8ddfefb52d77c952a4588c74d0a7ab064dc627129088a90423ca"
dependencies = [
"crossbeam-channel",
"fst",
"indexmap 2.7.0",
"indexmap 2.9.0",
"nohash-hasher",
"ra_ap_paths",
"ra_ap_stdx",
@@ -1933,9 +1910,9 @@ dependencies = [
[[package]]
name = "ra_ap_vfs-notify"
version = "0.0.270"
version = "0.0.273"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd95285146049621ee8f7a512c982a008bf036321fcc9b01a95c1ad7e6aeae57"
checksum = "d5a0e3095b8216ecc131f38b4b0025cac324a646469a95d2670354aee7278078"
dependencies = [
"crossbeam-channel",
"notify",
@@ -2005,7 +1982,7 @@ version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
dependencies = [
"bitflags 2.8.0",
"bitflags 2.9.0",
]
[[package]]
@@ -2093,10 +2070,10 @@ checksum = "2febf9acc5ee5e99d1ad0afcdbccc02d87aa3f857a1f01f825b80eacf8edfcd1"
[[package]]
name = "rustc_apfloat"
version = "0.2.1+llvm-462a31f5a5ab"
source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=096d585100636bc2e9f09d7eefec38c5b334d47b#096d585100636bc2e9f09d7eefec38c5b334d47b"
version = "0.2.2+llvm-462a31f5a5ab"
source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.9.0",
"smallvec",
]
@@ -2123,7 +2100,7 @@ dependencies = [
"dashmap 6.1.0",
"hashbrown 0.15.2",
"hashlink",
"indexmap 2.7.0",
"indexmap 2.9.0",
"parking_lot",
"portable-atomic",
"rayon",
@@ -2176,9 +2153,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "semver"
version = "1.0.24"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba"
checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
dependencies = [
"serde",
]
@@ -2234,7 +2211,7 @@ dependencies = [
"chrono",
"hex",
"indexmap 1.9.3",
"indexmap 2.7.0",
"indexmap 2.9.0",
"serde",
"serde_derive",
"serde_json",
@@ -2260,7 +2237,7 @@ version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [
"indexmap 2.7.0",
"indexmap 2.9.0",
"itoa",
"ryu",
"serde",
@@ -2345,19 +2322,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233"
[[package]]
name = "thiserror"
version = "1.0.69"
name = "thin-vec"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d"
[[package]]
name = "thiserror"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.69"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
dependencies = [
"proc-macro2",
"quote",
@@ -2432,7 +2415,7 @@ version = "0.22.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474"
dependencies = [
"indexmap 2.7.0",
"indexmap 2.9.0",
"serde",
"serde_spanned",
"toml_datetime",
@@ -2488,7 +2471,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
dependencies = [
"log 0.4.25",
"log 0.4.27",
"once_cell",
"tracing-core",
]
@@ -2603,9 +2586,9 @@ checksum = "a3e5df347f0bf3ec1d670aad6ca5c6a1859cd9ea61d2113125794654ccced68f"
[[package]]
name = "unicode-ident"
version = "1.0.16"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034"
checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
[[package]]
name = "unicode-properties"
@@ -2686,7 +2669,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79"
dependencies = [
"bumpalo",
"log 0.4.25",
"log 0.4.27",
"proc-macro2",
"quote",
"syn",
@@ -2995,7 +2978,7 @@ version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
dependencies = [
"bitflags 2.8.0",
"bitflags 2.9.0",
]
[[package]]

View File

@@ -14,4 +14,4 @@ members = [
[patch.crates-io]
# patch for build script bug preventing bazel build
# see https://github.com/rust-lang/rustc_apfloat/pull/17
rustc_apfloat = { git = "https://github.com/redsun82/rustc_apfloat.git", rev = "096d585100636bc2e9f09d7eefec38c5b334d47b" }
rustc_apfloat = { git = "https://github.com/redsun82/rustc_apfloat.git", rev = "32968f16ef1b082243f9bf43a3fbd65c381b3e27" }

View File

@@ -75,7 +75,7 @@ use_repo(
"vendor_ts__argfile-0.2.1",
"vendor_ts__chalk-ir-0.100.0",
"vendor_ts__chrono-0.4.40",
"vendor_ts__clap-4.5.32",
"vendor_ts__clap-4.5.35",
"vendor_ts__dunce-1.0.5",
"vendor_ts__either-1.15.0",
"vendor_ts__encoding-0.2.33",
@@ -90,22 +90,22 @@ use_repo(
"vendor_ts__num_cpus-1.16.0",
"vendor_ts__proc-macro2-1.0.94",
"vendor_ts__quote-1.0.40",
"vendor_ts__ra_ap_base_db-0.0.270",
"vendor_ts__ra_ap_cfg-0.0.270",
"vendor_ts__ra_ap_hir-0.0.270",
"vendor_ts__ra_ap_hir_def-0.0.270",
"vendor_ts__ra_ap_hir_expand-0.0.270",
"vendor_ts__ra_ap_hir_ty-0.0.270",
"vendor_ts__ra_ap_ide_db-0.0.270",
"vendor_ts__ra_ap_intern-0.0.270",
"vendor_ts__ra_ap_load-cargo-0.0.270",
"vendor_ts__ra_ap_parser-0.0.270",
"vendor_ts__ra_ap_paths-0.0.270",
"vendor_ts__ra_ap_project_model-0.0.270",
"vendor_ts__ra_ap_span-0.0.270",
"vendor_ts__ra_ap_stdx-0.0.270",
"vendor_ts__ra_ap_syntax-0.0.270",
"vendor_ts__ra_ap_vfs-0.0.270",
"vendor_ts__ra_ap_base_db-0.0.273",
"vendor_ts__ra_ap_cfg-0.0.273",
"vendor_ts__ra_ap_hir-0.0.273",
"vendor_ts__ra_ap_hir_def-0.0.273",
"vendor_ts__ra_ap_hir_expand-0.0.273",
"vendor_ts__ra_ap_hir_ty-0.0.273",
"vendor_ts__ra_ap_ide_db-0.0.273",
"vendor_ts__ra_ap_intern-0.0.273",
"vendor_ts__ra_ap_load-cargo-0.0.273",
"vendor_ts__ra_ap_parser-0.0.273",
"vendor_ts__ra_ap_paths-0.0.273",
"vendor_ts__ra_ap_project_model-0.0.273",
"vendor_ts__ra_ap_span-0.0.273",
"vendor_ts__ra_ap_stdx-0.0.273",
"vendor_ts__ra_ap_syntax-0.0.273",
"vendor_ts__ra_ap_vfs-0.0.273",
"vendor_ts__rand-0.9.0",
"vendor_ts__rayon-1.10.0",
"vendor_ts__regex-1.11.1",

View File

@@ -1,21 +1,28 @@
if (($null -ne $env:LGTM_INDEX_INCLUDE) -or ($null -ne $env:LGTM_INDEX_EXCLUDE) -or ($null -ne $env:LGTM_INDEX_FILTERS)) {
Write-Output 'Path filters set. Passing them through to the JavaScript extractor.'
} else {
Write-Output 'No path filters set. Using the default filters.'
# Note: We're adding the `reusable_workflows` subdirectories to proactively
# record workflows that were called cross-repo, check them out locally,
# and enable an interprocedural analysis across the workflow files.
# These workflows follow the convention `.github/reusable_workflows/<nwo>/*.ya?ml`
$DefaultPathFilters = @(
'exclude:**/*',
'include:.github/workflows/*.yml',
'include:.github/workflows/*.yaml',
'include:.github/reusable_workflows/**/*.yml',
'include:.github/reusable_workflows/**/*.yaml',
'include:**/action.yml',
'include:**/action.yaml'
)
# Note: We're adding the `reusable_workflows` subdirectories to proactively
# record workflows that were called cross-repo, check them out locally,
# and enable an interprocedural analysis across the workflow files.
# These workflows follow the convention `.github/reusable_workflows/<nwo>/*.ya?ml`
$DefaultPathFilters = @(
'exclude:**/*',
'include:.github/workflows/*.yml',
'include:.github/workflows/*.yaml',
'include:.github/reusable_workflows/**/*.yml',
'include:.github/reusable_workflows/**/*.yaml',
'include:**/action.yml',
'include:**/action.yaml'
)
if ($null -ne $env:LGTM_INDEX_FILTERS) {
Write-Output 'LGTM_INDEX_FILTERS set. Using the default filters together with the user-provided filters, and passing through to the JavaScript extractor.'
# Begin with the default path inclusions only,
# followed by the user-provided filters.
# If the user provided `paths`, those patterns override the default inclusions
# (because `LGTM_INDEX_FILTERS` will begin with `exclude:**/*`).
# If the user provided `paths-ignore`, those patterns are excluded.
$PathFilters = ($DefaultPathFilters -join "`n") + "`n" + $env:LGTM_INDEX_FILTERS
$env:LGTM_INDEX_FILTERS = $PathFilters
} else {
Write-Output 'LGTM_INDEX_FILTERS not set. Using the default filters, and passing through to the JavaScript extractor.'
$env:LGTM_INDEX_FILTERS = $DefaultPathFilters -join "`n"
}

View File

@@ -1,3 +1,4 @@
@echo off
rem All of the work is done in the PowerShell script
powershell.exe "%~dp0autobuild-impl.ps1"
echo "Running PowerShell script at '%~dp0autobuild-impl.ps1'"
powershell.exe -File "%~dp0autobuild-impl.ps1"

View File

@@ -17,10 +17,22 @@ include:**/action.yaml
END
)
if [ -n "${LGTM_INDEX_INCLUDE:-}" ] || [ -n "${LGTM_INDEX_EXCLUDE:-}" ] || [ -n "${LGTM_INDEX_FILTERS:-}" ] ; then
echo "Path filters set. Passing them through to the JavaScript extractor."
if [ -n "${LGTM_INDEX_FILTERS:-}" ]; then
echo "LGTM_INDEX_FILTERS set. Using the default filters together with the user-provided filters, and passing through to the JavaScript extractor."
# Begin with the default path inclusions only,
# followed by the user-provided filters.
# If the user provided `paths`, those patterns override the default inclusions
# (because `LGTM_INDEX_FILTERS` will begin with `exclude:**/*`).
# If the user provided `paths-ignore`, those patterns are excluded.
PATH_FILTERS="$(cat << END
${DEFAULT_PATH_FILTERS}
${LGTM_INDEX_FILTERS}
END
)"
LGTM_INDEX_FILTERS="${PATH_FILTERS}"
export LGTM_INDEX_FILTERS
else
echo "No path filters set. Using the default filters."
echo "LGTM_INDEX_FILTERS not set. Using the default filters, and passing through to the JavaScript extractor."
LGTM_INDEX_FILTERS="${DEFAULT_PATH_FILTERS}"
export LGTM_INDEX_FILTERS
fi

View File

@@ -1,2 +0,0 @@
def test(codeql, actions):
codeql.database.create(source_root="src")

View File

@@ -0,0 +1,6 @@
| src/.github/action.yaml:1:1:11:32 | name: ' ... action' |
| src/.github/actions/action-name/action.yml:1:1:11:32 | name: ' ... action' |
| src/.github/workflows/workflow.yml:1:1:12:33 | name: A workflow |
| src/action.yml:1:1:11:32 | name: ' ... action' |
| src/excluded/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/action.yml:1:1:11:32 | name: ' ... action' |

View File

@@ -0,0 +1,2 @@
| src/included/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/unreachable-workflow.yml:1:1:12:33 | name: A ... orkflow |

View File

@@ -2,3 +2,4 @@
| src/.github/actions/action-name/action.yml:1:1:11:32 | name: ' ... action' |
| src/.github/workflows/workflow.yml:1:1:12:33 | name: A workflow |
| src/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/action.yml:1:1:11:32 | name: ' ... action' |

View File

@@ -0,0 +1,2 @@
| src/included/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/unreachable-workflow.yml:1:1:12:33 | name: A ... orkflow |

View File

@@ -0,0 +1,5 @@
import actions
from AstNode n
where n instanceof Workflow or n instanceof CompositeAction
select n

View File

@@ -0,0 +1,4 @@
paths:
- 'included'
paths-ignore:
- 'excluded'

View File

@@ -0,0 +1,2 @@
paths-ignore:
- 'excluded'

View File

@@ -0,0 +1,2 @@
paths:
- 'included'

View File

@@ -0,0 +1,6 @@
src/.github/action.yaml
src/.github/actions/action-name/action.yml
src/.github/workflows/workflow.yml
src/action.yml
src/excluded/action.yml
src/included/action.yml

View File

@@ -0,0 +1,3 @@
src/included/action.yml
src/included/not-an-action.yml
src/included/unreachable-workflow.yml

View File

@@ -0,0 +1,5 @@
src/.github/action.yaml
src/.github/actions/action-name/action.yml
src/.github/workflows/workflow.yml
src/action.yml
src/included/action.yml

View File

@@ -0,0 +1,3 @@
src/included/action.yml
src/included/not-an-action.yml
src/included/unreachable-workflow.yml

View File

@@ -0,0 +1,11 @@
name: 'A composite action'
description: 'Do something'
runs:
using: "composite"
steps:
- name: Print
run: echo "Hello world"
shell: bash
- name: Checkout
uses: actions/checkout@v4

View File

@@ -0,0 +1,11 @@
name: 'A composite action'
description: 'Do something'
runs:
using: "composite"
steps:
- name: Print
run: echo "Hello world"
shell: bash
- name: Checkout
uses: actions/checkout@v4

View File

@@ -0,0 +1 @@
name: 'Not an action, just a YAML file'

View File

@@ -0,0 +1,12 @@
name: An unreachable workflow
on:
push:
branches:
- main
jobs:
job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

View File

@@ -0,0 +1,12 @@
name: An unreachable workflow
on:
push:
branches:
- main
jobs:
job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

View File

@@ -0,0 +1,18 @@
import pytest
@pytest.mark.ql_test(expected=".default-filters.expected")
def test_default_filters(codeql, actions, check_source_archive):
check_source_archive.expected_suffix = ".default-filters.expected"
codeql.database.create(source_root="src")
@pytest.mark.ql_test(expected=".paths-only.expected")
def test_config_paths_only(codeql, actions):
codeql.database.create(source_root="src", codescanning_config="codeql-config.paths-only.yml")
@pytest.mark.ql_test(expected=".paths-ignore-only.expected")
def test_config_paths_ignore_only(codeql, actions):
codeql.database.create(source_root="src", codescanning_config="codeql-config.paths-ignore-only.yml")
@pytest.mark.ql_test(expected=".paths-and-paths-ignore.expected")
def test_config_paths_and_paths_ignore(codeql, actions):
codeql.database.create(source_root="src", codescanning_config="codeql-config.paths-and-paths-ignore.yml")

View File

@@ -1,3 +1,7 @@
## 0.4.7
No user-facing changes.
## 0.4.6
### Bug Fixes

View File

@@ -0,0 +1,3 @@
## 0.4.7
No user-facing changes.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 0.4.6
lastReleaseVersion: 0.4.7

View File

@@ -1,5 +1,5 @@
name: codeql/actions-all
version: 0.4.7-dev
version: 0.4.8-dev
library: true
warnOnImplicitThis: true
dependencies:

View File

@@ -1,3 +1,9 @@
## 0.5.4
### Bug Fixes
* Alerts produced by the query `actions/missing-workflow-permissions` now include a minimal set of recommended permissions in the alert message, based on well-known actions seen within the workflow file.
## 0.5.3
### Bug Fixes

View File

@@ -109,7 +109,7 @@ An attacker could craft a malicious artifact that writes dangerous environment v
### Exploitation
An attacker is be able to run arbitrary code by injecting environment variables such as `LD_PRELOAD`, `BASH_ENV`, etc.
An attacker would be able to run arbitrary code by injecting environment variables such as `LD_PRELOAD`, `BASH_ENV`, etc.
## References

View File

@@ -1,6 +1,6 @@
/**
* @name Workflow does not contain permissions
* @description Workflows should contain permissions to provide a clear understanding has permissions to run the workflow.
* @description Workflows should contain explicit permissions to restrict the scope of the default GITHUB_TOKEN.
* @kind problem
* @security-severity 5.0
* @problem.severity warning

View File

@@ -3,6 +3,7 @@
* @description All organization and repository secrets are passed to the workflow runner.
* @kind problem
* @precision high
* @security-severity 5.0
* @problem.severity warning
* @id actions/excessive-secrets-exposure
* @tags actions

View File

@@ -2,11 +2,11 @@
## Description
Secrets derived from other secrets are not know to the workflow runner and therefore not masked unless explicitly registered.
Secrets derived from other secrets are not known to the workflow runner, and therefore are not masked unless explicitly registered.
## Recommendations
Avoid defining non-plain secrets. For example, do not define a new secret containing a JSON object and then read properties out of it from the workflow since these read values will not be masked by the workflow runner.
Avoid defining non-plain secrets. For example, do not define a new secret containing a JSON object and then read properties out of it from the workflow, since these read values will not be masked by the workflow runner.
## Examples

View File

@@ -0,0 +1,4 @@
---
category: fix
---
* Assigned a `security-severity` to the query `actions/excessive-secrets-exposure`.

View File

@@ -1,4 +1,5 @@
---
category: fix
---
* Alerts produced by the query `actions/missing-workflow-permissions` now include a minimal set of recommended permissions in the alert message, based on well-known actions seen within the workflow file.
## 0.5.4
### Bug Fixes
* Alerts produced by the query `actions/missing-workflow-permissions` now include a minimal set of recommended permissions in the alert message, based on well-known actions seen within the workflow file.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 0.5.3
lastReleaseVersion: 0.5.4

View File

@@ -1,5 +1,5 @@
name: codeql/actions-queries
version: 0.5.4-dev
version: 0.5.5-dev
library: false
warnOnImplicitThis: true
groups: [actions, queries]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
description: Add a new predicate `isVla()` to the `ArrayType` class
compatibility: full
type_is_vla.rel: delete

View File

@@ -0,0 +1,11 @@
class Expr extends @expr {
string toString() { none() }
}
class AggregateLiteral extends Expr, @aggregateliteral {
override string toString() { none() }
}
from AggregateLiteral aggregate, Expr initializer, int element_index, int position
where aggregate_array_init(aggregate, initializer, element_index, position, _)
select aggregate, initializer, element_index, position

View File

@@ -0,0 +1,15 @@
class Expr extends @expr {
string toString() { none() }
}
class AggregateLiteral extends Expr, @aggregateliteral {
override string toString() { none() }
}
class MemberVariable extends @membervariable {
string toString() { none() }
}
from AggregateLiteral aggregate, Expr initializer, MemberVariable field, int position
where aggregate_field_init(aggregate, initializer, field, position, _)
select aggregate, initializer, field, position

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
description: add `hasDesignator` predicate to `ArrayOrVectorAggregateLiteral` and `ClassAggregateLiteral`
compatibility: backwards
aggregate_array_init.rel: run aggregate_array_init.qlo
aggregate_field_init.rel: run aggregate_field_init.qlo

View File

@@ -1,3 +1,10 @@
## 4.2.0
### New Features
* Calling conventions explicitly specified on function declarations (`__cdecl`, `__stdcall`, `__fastcall`, etc.) are now represented as specifiers of those declarations.
* A new class `CallingConventionSpecifier` extending the `Specifier` class was introduced, which represents explicitly specified calling conventions.
## 4.1.0
### New Features

View File

@@ -0,0 +1,4 @@
---
category: feature
---
* Added the `isVla()` predicate to the `ArrayType` class. This allows queries to identify variable-length arrays (VLAs).

View File

@@ -0,0 +1,4 @@
---
category: feature
---
* Introduced `hasDesignator()` predicates to distinguish between designated and positional initializations for both struct/union fields and array elements.

View File

@@ -1,5 +1,6 @@
---
category: feature
---
## 4.2.0
### New Features
* Calling conventions explicitly specified on function declarations (`__cdecl`, `__stdcall`, `__fastcall`, etc.) are now represented as specifiers of those declarations.
* A new class `CallingConventionSpecifier` extending the `Specifier` class was introduced, which represents explicitly specified calling conventions.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 4.1.0
lastReleaseVersion: 4.2.0

View File

@@ -1,5 +1,5 @@
name: codeql/cpp-all
version: 4.1.1-dev
version: 4.2.1-dev
groups: cpp
dbscheme: semmlecode.cpp.dbscheme
extractor: cpp

View File

@@ -1369,6 +1369,11 @@ class ArrayType extends DerivedType {
override predicate isDeeplyConst() { this.getBaseType().isDeeplyConst() } // No such thing as a const array type
override predicate isDeeplyConstBelow() { this.getBaseType().isDeeplyConst() }
/**
* Holds if this array is a variable-length array (VLA).
*/
predicate isVla() { type_is_vla(underlyingElement(this)) }
}
/**

View File

@@ -465,7 +465,7 @@ private predicate isFunctionConstructedFrom(Function f, Function templateFunc) {
}
/** Gets the fully templated version of `f`. */
private Function getFullyTemplatedFunction(Function f) {
Function getFullyTemplatedFunction(Function f) {
not f.isFromUninstantiatedTemplate(_) and
(
exists(Class c, Class templateClass, int i |
@@ -559,12 +559,15 @@ private string getTypeName(Type t, boolean needsSpace) {
/**
* Gets a type name for the `n`'th parameter of `f` without any template
* arguments. The result may be a string representing a type for which the
* typedefs have been resolved.
* arguments.
*
* If `canonical = false` then the result may be a string representing a type
* for which the typedefs have been resolved. If `canonical = true` then the
* result will be a string representing a type without resolving `typedefs`.
*/
bindingset[f]
pragma[inline_late]
string getParameterTypeWithoutTemplateArguments(Function f, int n) {
string getParameterTypeWithoutTemplateArguments(Function f, int n, boolean canonical) {
exists(string s, string base, string specifiers, Type t |
t = f.getParameter(n).getType() and
// The name of the string can either be the possibly typedefed name
@@ -572,14 +575,19 @@ string getParameterTypeWithoutTemplateArguments(Function f, int n) {
// `getTypeName(t, _)` is almost equal to `t.resolveTypedefs().getName()`,
// except that `t.resolveTypedefs()` doesn't have a result when the
// resulting type doesn't appear in the database.
s = [t.getName(), getTypeName(t, _)] and
(
s = t.getName() and canonical = true
or
s = getTypeName(t, _) and canonical = false
) and
parseAngles(s, base, _, specifiers) and
result = base + specifiers
)
or
f.isVarargs() and
n = f.getNumberOfParameters() and
result = "..."
result = "..." and
canonical = true
}
/**
@@ -590,7 +598,7 @@ private string getTypeNameWithoutFunctionTemplates(Function f, int n, int remain
exists(Function templateFunction |
templateFunction = getFullyTemplatedFunction(f) and
remaining = templateFunction.getNumberOfTemplateArguments() and
result = getParameterTypeWithoutTemplateArguments(templateFunction, n)
result = getParameterTypeWithoutTemplateArguments(templateFunction, n, _)
)
or
exists(string mid, TypeTemplateParameter tp, Function templateFunction |
@@ -627,7 +635,7 @@ private string getTypeNameWithoutClassTemplates(Function f, int n, int remaining
}
/** Gets the string representation of the `i`'th parameter of `c`. */
private string getParameterTypeName(Function c, int i) {
string getParameterTypeName(Function c, int i) {
result = getTypeNameWithoutClassTemplates(c, i, 0)
}

View File

@@ -213,7 +213,24 @@ class ClassAggregateLiteral extends AggregateLiteral {
Expr getFieldExpr(Field field, int position) {
field = classType.getAField() and
aggregate_field_init(underlyingElement(this), unresolveElement(result), unresolveElement(field),
position)
position, _)
}
/**
* Holds if the `position`-th initialization of `field` in this aggregate initializer
* uses a designated (e.g., `.x = ...`) rather than a positional initializer.
*
* For example, in:
* ```c
* struct S { int x, y; };
* struct S s = { .x = 1, 2 };
* ```
* - `.x = 1` is a designated initializer, therefore `hasDesignator(x, 0)` holds.
* - `2` is a positional initializer for `s.y`, therefore `hasDesignator(y, 1)` does not hold.
*/
predicate hasDesignator(Field field, int position) {
field = classType.getAField() and
aggregate_field_init(underlyingElement(this), _, unresolveElement(field), position, true)
}
/**
@@ -304,7 +321,24 @@ class ArrayOrVectorAggregateLiteral extends AggregateLiteral {
* - `a.getElementExpr(0, 2)` gives `789`.
*/
Expr getElementExpr(int elementIndex, int position) {
aggregate_array_init(underlyingElement(this), unresolveElement(result), elementIndex, position)
aggregate_array_init(underlyingElement(this), unresolveElement(result), elementIndex, position,
_)
}
/**
* Holds if the `position`-th initialization of the array element at `elementIndex`
* in this aggregate initializer uses a designated (e.g., `[0] = ...`) rather than
* a positional initializer.
*
* For example, in:
* ```c
* int x[] = { [0] = 1, 2 };
* ```
* - `[0] = 1` is a designated initializer, therefore `hasDesignator(0, 0)` holds.
* - `2` is a positional initializer for `x[1]`, therefore `hasDesignator(1, 1)` does not hold.
*/
predicate hasDesignator(int elementIndex, int position) {
aggregate_array_init(underlyingElement(this), _, elementIndex, position, true)
}
/**

View File

@@ -371,7 +371,7 @@ private class PrimaryArgumentNode extends ArgumentNode, OperandNode {
PrimaryArgumentNode() { exists(CallInstruction call | op = call.getAnArgumentOperand()) }
override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) {
op = call.getArgumentOperand(pos.(DirectPosition).getIndex())
op = call.getArgumentOperand(pos.(DirectPosition).getArgumentIndex())
}
}
@@ -410,8 +410,16 @@ class ParameterPosition = Position;
class ArgumentPosition = Position;
abstract class Position extends TPosition {
/** Gets a textual representation of this position. */
abstract string toString();
/**
* Gets the argument index of this position. The qualifier of a call has
* argument index `-1`.
*/
abstract int getArgumentIndex();
/** Gets the indirection index of this position. */
abstract int getIndirectionIndex();
}
@@ -428,7 +436,7 @@ class DirectPosition extends Position, TDirectPosition {
result = index.toString()
}
int getIndex() { result = index }
override int getArgumentIndex() { result = index }
final override int getIndirectionIndex() { result = 0 }
}
@@ -445,16 +453,29 @@ class IndirectionPosition extends Position, TIndirectionPosition {
else result = repeatStars(indirectionIndex) + argumentIndex.toString()
}
int getArgumentIndex() { result = argumentIndex }
override int getArgumentIndex() { result = argumentIndex }
final override int getIndirectionIndex() { result = indirectionIndex }
}
newtype TPosition =
TDirectPosition(int argumentIndex) { exists(any(CallInstruction c).getArgument(argumentIndex)) } or
TDirectPosition(int argumentIndex) {
exists(any(CallInstruction c).getArgument(argumentIndex))
or
// Handle the rare case where there is a function definition but no call to
// the function.
exists(any(Cpp::Function f).getParameter(argumentIndex))
} or
TIndirectionPosition(int argumentIndex, int indirectionIndex) {
Ssa::hasIndirectOperand(any(CallInstruction call).getArgumentOperand(argumentIndex),
indirectionIndex)
or
// Handle the rare case where there is a function definition but no call to
// the function.
exists(Cpp::Function f, Cpp::Parameter p |
p = f.getParameter(argumentIndex) and
indirectionIndex = [1 .. Ssa::getMaxIndirectionsForType(p.getUnspecifiedType()) - 1]
)
}
private newtype TReturnKind =
@@ -501,6 +522,15 @@ class ReturnKind extends TReturnKind {
/** Gets a textual representation of this return kind. */
abstract string toString();
/** Holds if this `ReturnKind` is generated from a `return` statement. */
abstract predicate isNormalReturn();
/**
* Holds if this `ReturnKind` is generated from a write to the parameter with
* index `argumentIndex`
*/
abstract predicate isIndirectReturn(int argumentIndex);
}
/**
@@ -514,6 +544,10 @@ class NormalReturnKind extends ReturnKind, TNormalReturnKind {
override int getIndirectionIndex() { result = indirectionIndex }
override string toString() { result = "indirect return" }
override predicate isNormalReturn() { any() }
override predicate isIndirectReturn(int argumentIndex) { none() }
}
/**
@@ -528,6 +562,10 @@ private class IndirectReturnKind extends ReturnKind, TIndirectReturnKind {
override int getIndirectionIndex() { result = indirectionIndex }
override string toString() { result = "indirect outparam[" + argumentIndex.toString() + "]" }
override predicate isNormalReturn() { none() }
override predicate isIndirectReturn(int argumentIndex_) { argumentIndex_ = argumentIndex }
}
/** A data flow node that occurs as the result of a `ReturnStmt`. */

View File

@@ -1445,7 +1445,7 @@ private class ExplicitParameterInstructionNode extends AbstractExplicitParameter
ExplicitParameterInstructionNode() { exists(instr.getParameter()) }
override predicate isSourceParameterOf(Function f, ParameterPosition pos) {
f.getParameter(pos.(DirectPosition).getIndex()) = instr.getParameter()
f.getParameter(pos.(DirectPosition).getArgumentIndex()) = instr.getParameter()
}
override string toStringImpl() { result = instr.getParameter().toString() }
@@ -1460,7 +1460,7 @@ class ThisParameterInstructionNode extends AbstractExplicitParameterNode,
ThisParameterInstructionNode() { instr.getIRVariable() instanceof IRThisVariable }
override predicate isSourceParameterOf(Function f, ParameterPosition pos) {
pos.(DirectPosition).getIndex() = -1 and
pos.(DirectPosition).getArgumentIndex() = -1 and
instr.getEnclosingFunction() = f
}
@@ -1494,7 +1494,7 @@ private class DirectBodyLessParameterNode extends AbstractExplicitParameterNode,
override predicate isSourceParameterOf(Function f, ParameterPosition pos) {
this.getFunction() = f and
f.getParameter(pos.(DirectPosition).getIndex()) = p
f.getParameter(pos.(DirectPosition).getArgumentIndex()) = p
}
override Parameter getParameter() { result = p }

View File

@@ -229,11 +229,11 @@ private module SpeculativeTaintFlow {
not exists(DataFlowDispatch::viableCallable(call)) and
src.(DataFlowPrivate::ArgumentNode).argumentOf(call, argpos)
|
not argpos.(DirectPosition).getIndex() = -1 and
not argpos.(DirectPosition).getArgumentIndex() = -1 and
sink.(PostUpdateNode)
.getPreUpdateNode()
.(DataFlowPrivate::ArgumentNode)
.argumentOf(call, any(DirectPosition qualpos | qualpos.getIndex() = -1))
.argumentOf(call, any(DirectPosition qualpos | qualpos.getArgumentIndex() = -1))
or
sink.(DataFlowPrivate::OutNode).getCall() = call
)

View File

@@ -2039,7 +2039,8 @@ aggregate_field_init(
int aggregate: @aggregateliteral ref,
int initializer: @expr ref,
int field: @membervariable ref,
int position: int ref
int position: int ref,
boolean is_designated: boolean ref
);
/**
@@ -2051,7 +2052,8 @@ aggregate_array_init(
int aggregate: @aggregateliteral ref,
int initializer: @expr ref,
int element_index: int ref,
int position: int ref
int position: int ref,
boolean is_designated: boolean ref
);
@ctorinit = @ctordirectinit
@@ -2178,6 +2180,8 @@ variable_vla(
int decl: @stmt_vla_decl ref
);
type_is_vla(unique int type_id: @derivedtype ref)
if_initialization(
unique int if_stmt: @stmt_if ref,
int init_id: @stmt ref

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
class Expr extends @expr {
string toString() { none() }
}
class AggregateLiteral extends Expr, @aggregateliteral {
override string toString() { none() }
}
from AggregateLiteral aggregate, Expr initializer, int element_index, int position
where aggregate_array_init(aggregate, initializer, element_index, position)
select aggregate, initializer, element_index, position, false

View File

@@ -0,0 +1,15 @@
class Expr extends @expr {
string toString() { none() }
}
class AggregateLiteral extends Expr, @aggregateliteral {
override string toString() { none() }
}
class MemberVariable extends @membervariable {
string toString() { none() }
}
from AggregateLiteral aggregate, Expr initializer, MemberVariable field, int position
where aggregate_field_init(aggregate, initializer, field, position)
select aggregate, initializer, field, position, false

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
description: add `hasDesignator` predicate to `ArrayOrVectorAggregateLiteral` and `ClassAggregateLiteral`
compatibility: backwards
aggregate_array_init.rel: run aggregate_array_init.qlo
aggregate_field_init.rel: run aggregate_field_init.qlo

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
description: Add a new predicate `isVla()` to the `ArrayType` class
compatibility: backwards

View File

@@ -1,3 +1,7 @@
## 1.3.8
No user-facing changes.
## 1.3.7
### Minor Analysis Improvements

View File

@@ -0,0 +1,3 @@
## 1.3.8
No user-facing changes.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 1.3.7
lastReleaseVersion: 1.3.8

View File

@@ -1,5 +1,5 @@
name: codeql/cpp-queries
version: 1.3.8-dev
version: 1.3.9-dev
groups:
- cpp
- queries

View File

@@ -162,6 +162,10 @@ namespace Semmle.Autobuild.CSharp.Tests
bool IBuildActions.IsRunningOnAppleSilicon() => IsRunningOnAppleSilicon;
public bool IsMonoInstalled { get; set; }
bool IBuildActions.IsMonoInstalled() => IsMonoInstalled;
public string PathCombine(params string[] parts)
{
return string.Join(IsWindows ? '\\' : '/', parts.Where(p => !string.IsNullOrWhiteSpace(p)));
@@ -424,8 +428,7 @@ namespace Semmle.Autobuild.CSharp.Tests
return new CSharpAutobuilder(actions, options);
}
[Fact]
public void TestDefaultCSharpAutoBuilder()
private void SetupActionForDotnet()
{
actions.RunProcess["cmd.exe /C dotnet --info"] = 0;
actions.RunProcess[@"cmd.exe /C dotnet clean C:\Project\test.csproj"] = 0;
@@ -438,20 +441,80 @@ namespace Semmle.Autobuild.CSharp.Tests
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SCRATCH_DIR"] = "scratch";
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\nbar.cs\ntest.csproj";
actions.EnumerateDirectories[@"C:\Project"] = "";
var xml = new XmlDocument();
xml.LoadXml(@"<Project Sdk=""Microsoft.NET.Sdk"">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
}
</Project>");
private void CreateAndVerifyDotnetScript(XmlDocument xml)
{
actions.LoadXml[@"C:\Project\test.csproj"] = xml;
var autobuilder = CreateAutoBuilder(true);
TestAutobuilderScript(autobuilder, 0, 4);
}
[Fact]
public void TestDefaultCSharpAutoBuilder1()
{
SetupActionForDotnet();
var xml = new XmlDocument();
xml.LoadXml(
"""
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
</Project>
""");
CreateAndVerifyDotnetScript(xml);
}
[Fact]
public void TestDefaultCSharpAutoBuilder2()
{
SetupActionForDotnet();
var xml = new XmlDocument();
xml.LoadXml(
"""
<Project>
<Sdk Name="Microsoft.NET.Sdk" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
"""
);
CreateAndVerifyDotnetScript(xml);
}
[Fact]
public void TestDefaultCSharpAutoBuilder3()
{
SetupActionForDotnet();
var xml = new XmlDocument();
xml.LoadXml(
"""
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
</Project>
"""
);
CreateAndVerifyDotnetScript(xml);
}
[Fact]
public void TestLinuxCSharpAutoBuilder()
{
@@ -797,11 +860,32 @@ namespace Semmle.Autobuild.CSharp.Tests
}
[Fact]
public void TestDirsProjLinux()
public void TestDirsProjLinux_WithMono()
{
actions.IsMonoInstalled = true;
actions.RunProcess[@"nuget restore C:\Project/dirs.proj -DisableParallelProcessing"] = 1;
actions.RunProcess[@"mono scratch/.nuget/nuget.exe restore C:\Project/dirs.proj -DisableParallelProcessing"] = 0;
actions.RunProcess[@"msbuild C:\Project/dirs.proj /t:rebuild"] = 0;
var autobuilder = TestDirsProjLinux();
TestAutobuilderScript(autobuilder, 0, 3);
}
[Fact]
public void TestDirsProjLinux_WithoutMono()
{
actions.IsMonoInstalled = false;
actions.RunProcess[@"dotnet msbuild /t:restore C:\Project/dirs.proj"] = 0;
actions.RunProcess[@"dotnet msbuild C:\Project/dirs.proj /t:rebuild"] = 0;
var autobuilder = TestDirsProjLinux();
TestAutobuilderScript(autobuilder, 0, 2);
}
private CSharpAutobuilder TestDirsProjLinux()
{
actions.FileExists["csharp.log"] = true;
actions.FileExists[@"C:\Project/a/test.csproj"] = true;
actions.FileExists[@"C:\Project/dirs.proj"] = true;
@@ -830,8 +914,7 @@ namespace Semmle.Autobuild.CSharp.Tests
</Project>");
actions.LoadXml[@"C:\Project/dirs.proj"] = dirsproj;
var autobuilder = CreateAutoBuilder(false);
TestAutobuilderScript(autobuilder, 0, 3);
return CreateAutoBuilder(false);
}
[Fact]

View File

@@ -150,6 +150,10 @@ namespace Semmle.Autobuild.Cpp.Tests
bool IBuildActions.IsRunningOnAppleSilicon() => IsRunningOnAppleSilicon;
public bool IsMonoInstalled { get; set; }
bool IBuildActions.IsMonoInstalled() => IsMonoInstalled;
string IBuildActions.PathCombine(params string[] parts)
{
return string.Join(IsWindows ? '\\' : '/', parts.Where(p => !string.IsNullOrWhiteSpace(p)));

View File

@@ -10,15 +10,15 @@ namespace Semmle.Autobuild.Shared
/// <summary>
/// Appends a call to msbuild.
/// </summary>
/// <param name="cmdBuilder"></param>
/// <param name="builder"></param>
/// <returns></returns>
public static CommandBuilder MsBuildCommand(this CommandBuilder cmdBuilder, IAutobuilder<AutobuildOptionsShared> builder)
public static CommandBuilder MsBuildCommand(this CommandBuilder cmdBuilder, IAutobuilder<AutobuildOptionsShared> builder, bool preferDotnet)
{
// mono doesn't ship with `msbuild` on Arm-based Macs, but we can fall back to
// msbuild that ships with `dotnet` which can be invoked with `dotnet msbuild`
// perhaps we should do this on all platforms?
return builder.Actions.IsRunningOnAppleSilicon()
// Similarly, there's no point in trying to rely on mono if it's not installed.
// In which case we can still fall back to `dotnet msbuild`.
return preferDotnet
? cmdBuilder.RunCommand("dotnet").Argument("msbuild")
: cmdBuilder.RunCommand("msbuild");
}
@@ -75,13 +75,16 @@ namespace Semmle.Autobuild.Shared
QuoteArgument(projectOrSolution.FullPath).
Argument("-DisableParallelProcessing").
Script;
var preferDotnet = builder.Actions.IsRunningOnAppleSilicon() || !builder.Actions.IsWindows() && !builder.Actions.IsMonoInstalled();
var nugetRestore = GetNugetRestoreScript();
var msbuildRestoreCommand = new CommandBuilder(builder.Actions).
MsBuildCommand(builder).
MsBuildCommand(builder, preferDotnet).
Argument("/t:restore").
QuoteArgument(projectOrSolution.FullPath);
if (builder.Actions.IsRunningOnAppleSilicon())
if (preferDotnet)
{
// On Apple Silicon, only try package restore with `dotnet msbuild /t:restore`
ret &= BuildScript.Try(msbuildRestoreCommand.Script);
@@ -119,7 +122,7 @@ namespace Semmle.Autobuild.Shared
command.RunCommand("set Platform=&& type NUL", quoteExe: false);
}
command.MsBuildCommand(builder);
command.MsBuildCommand(builder, preferDotnet);
command.QuoteArgument(projectOrSolution.FullPath);
var target = "rebuild";

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml;
using Semmle.Util.Logging;
namespace Semmle.Autobuild.Shared
{
@@ -26,6 +25,26 @@ namespace Semmle.Autobuild.Shared
private readonly Lazy<List<Project<TAutobuildOptions>>> includedProjectsLazy;
public override IEnumerable<IProjectOrSolution> IncludedProjects => includedProjectsLazy.Value;
private static bool HasSdkAttribute(XmlElement xml) =>
xml.HasAttribute("Sdk");
private static bool AnyElement(XmlNodeList l, Func<XmlElement, bool> f) =>
l.OfType<XmlElement>().Any(f);
/// <summary>
/// According to https://learn.microsoft.com/en-us/visualstudio/msbuild/how-to-use-project-sdk?view=vs-2022#reference-a-project-sdk
/// there are three ways to reference a project SDK:
/// 1. As an attribute on the &lt;Project/&gt;.
/// 2. As a top level element of &lt;Project&gt;.
/// 3. As an attribute on an &lt;Import&gt; element.
///
/// Returns true, if the Sdk attribute is used, otherwise false.
/// </summary>
private static bool ReferencesSdk(XmlElement xml) =>
HasSdkAttribute(xml) || // Case 1
AnyElement(xml.ChildNodes, e => e.Name == "Sdk") || // Case 2
AnyElement(xml.GetElementsByTagName("Import"), HasSdkAttribute); // Case 3
public Project(Autobuilder<TAutobuildOptions> builder, string path) : base(builder, path)
{
ToolsVersion = new Version();
@@ -49,7 +68,7 @@ namespace Semmle.Autobuild.Shared
if (root?.Name == "Project")
{
if (root.HasAttribute("Sdk"))
if (ReferencesSdk(root))
{
DotNetProject = true;
return;

View File

@@ -125,6 +125,11 @@ namespace Semmle.Util
/// <returns>True if we are running on Apple Silicon.</returns>
bool IsRunningOnAppleSilicon();
/// <summary>
/// Checks if Mono is installed.
/// </summary>
bool IsMonoInstalled();
/// <summary>
/// Combine path segments, Path.Combine().
/// </summary>
@@ -261,6 +266,25 @@ namespace Semmle.Util
}
}
bool IBuildActions.IsMonoInstalled()
{
var thisBuildActions = (IBuildActions)this;
if (thisBuildActions.IsWindows())
{
return false;
}
try
{
return 0 == thisBuildActions.RunProcess("mono", "--version", workingDirectory: null, env: null);
}
catch (Exception)
{
return false;
}
}
string IBuildActions.PathCombine(params string[] parts) => Path.Combine(parts);
void IBuildActions.WriteAllText(string filename, string contents) => File.WriteAllText(filename, contents);

View File

@@ -1,3 +1,7 @@
## 1.7.38
No user-facing changes.
## 1.7.37
No user-facing changes.

View File

@@ -0,0 +1,3 @@
## 1.7.38
No user-facing changes.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 1.7.37
lastReleaseVersion: 1.7.38

View File

@@ -1,5 +1,5 @@
name: codeql/csharp-solorigate-all
version: 1.7.38-dev
version: 1.7.39-dev
groups:
- csharp
- solorigate

View File

@@ -1,3 +1,7 @@
## 1.7.38
No user-facing changes.
## 1.7.37
No user-facing changes.

View File

@@ -0,0 +1,3 @@
## 1.7.38
No user-facing changes.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 1.7.37
lastReleaseVersion: 1.7.38

View File

@@ -1,5 +1,5 @@
name: codeql/csharp-solorigate-queries
version: 1.7.38-dev
version: 1.7.39-dev
groups:
- csharp
- solorigate

View File

@@ -3,8 +3,11 @@ import pytest
import os
# Skipping the test on the ARM runners, as we're running into trouble with Mono and nuget.
@pytest.mark.only_if(runs_on.linux or (runs_on.macos and runs_on.x86_64))
# Skipping the test on the ARM runners and macos-15, as we're running into trouble with Mono and nuget.
@pytest.mark.only_if(
runs_on.linux
or (runs_on.macos and runs_on.x86_64 and not runs_on.macos_15)
)
def test(codeql, csharp):
os.environ["CODEQL_EXTRACTOR_CSHARP_BUILDLESS_DOTNET_FRAMEWORK_REFERENCES"] = (
"/non-existent-path"

View File

@@ -3,8 +3,11 @@ import runs_on
import pytest
# Skipping the test on the ARM runners, as we're running into trouble with Mono and nuget.
@pytest.mark.only_if(runs_on.linux or (runs_on.macos and runs_on.x86_64))
# Skipping the test on the ARM runners and macos-15, as we're running into trouble with Mono and nuget.
@pytest.mark.only_if(
runs_on.linux
or (runs_on.macos and runs_on.x86_64 and not runs_on.macos_15)
)
def test(codeql, csharp):
# making sure we're not doing any fallback restore:
os.environ["CODEQL_EXTRACTOR_CSHARP_BUILDLESS_NUGET_FEEDS_CHECK_FALLBACK_TIMEOUT"] = "1"

View File

@@ -2,7 +2,10 @@ import runs_on
import pytest
# Skipping the test on the ARM runners, as we're running into trouble with Mono and nuget.
@pytest.mark.only_if(runs_on.linux or (runs_on.macos and runs_on.x86_64))
# Skipping the test on the ARM runners and macos-15, as we're running into trouble with Mono and nuget.
@pytest.mark.only_if(
runs_on.linux
or (runs_on.macos and runs_on.x86_64 and not runs_on.macos_15)
)
def test(codeql, csharp):
codeql.database.create(build_mode="none")

View File

@@ -3,6 +3,9 @@ import pytest
# Skipping the test on the ARM runners, as we're running into trouble with Mono and nuget.
@pytest.mark.only_if(runs_on.linux or (runs_on.macos and runs_on.x86_64))
@pytest.mark.only_if(
runs_on.linux
or (runs_on.macos and runs_on.x86_64 and not runs_on.macos_15)
)
def test(codeql, csharp):
codeql.database.create(source_root="proj", build_mode="none")

View File

@@ -1,3 +1,10 @@
## 5.1.4
### Minor Analysis Improvements
* The *alignment* and *format* clauses in string interpolation expressions are now extracted. That is, in `$"Hello {name,align:format}"` *name*, *align* and *format* are extracted as children of the string interpolation *insert* `{name,align:format}`.
* Blazor support can now better recognize when a property being set is specified with a string literal, rather than referenced in a `nameof` expression.
## 5.1.3
### Minor Analysis Improvements

View File

@@ -1,4 +0,0 @@
---
category: minorAnalysis
---
* Blazor support can now better recognize when a property being set is specified with a string literal, rather than referenced in a `nameof` expression.

Some files were not shown because too many files have changed in this diff Show More