Tom Hvitved
|
f99f26f908
|
Merge pull request #21464 from hvitved/rust/type-inference-trait-bound-impl-overlap
Rust: Disambiguate types inferred from trait bounds
|
2026-03-20 15:14:24 +01:00 |
|
Óscar San José
|
2139b97628
|
Merge branch 'main' into post-release-prep/codeql-cli-2.25.0
|
2026-03-19 13:07:00 +01:00 |
|
Tom Hvitved
|
7fc1d53ede
|
Rust: Disambiguate types inferred from trait bounds
|
2026-03-19 12:57:22 +01:00 |
|
Tom Hvitved
|
2ff5c2c234
|
Rust: Fix two bad joins
Before
```
Evaluated relational algebra for predicate TypeInference::DeconstructionPatMatchingInput::Access.getNodeAt/1#dispred#cc149bc2@88f6f09n with tuple counts:
142521 ~1% {3} r1 = JOIN num#FunctionType::TReturnFunctionPosition#a15fd6be WITH TypeInference::DeconstructionPatMatchingInput::Access#a2676dcb CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0, Rhs.0
131938 ~0% {3} r2 = JOIN `TupleStructPat::Generated::TupleStructPat.getField/1#dispred#ac9c1af6` WITH TypeInference::DeconstructionPatMatchingInput::Access#a2676dcb ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2
131938 ~6% {3} | JOIN WITH `FunctionType::FunctionPosition.asPosition/0#dispred#efcc0611_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2
3071346 ~0% {2} r3 = SCAN `Name::Generated::Name.getText/0#dispred#107a5a39` OUTPUT In.1, In.0
103064442 ~2% {3} | JOIN WITH `StructPat::StructPat.getPatField/1#5e21ea0e_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2
103064442 ~3% {3} | JOIN WITH TypeInference::DeconstructionPatMatchingInput::Access#a2676dcb ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.0
103064438 ~1% {3} | JOIN WITH `StructPatField::Generated::StructPatField.getPat/0#dispred#1aadfeff` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1
20514858 ~2% {3} | JOIN WITH `StructField::Generated::StructField.getName/0#dispred#e0248569_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2
59554 ~1% {3} | JOIN WITH `StructPat::StructPat.getNthStructField/1#dispred#de537654_021#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.0, Lhs.2
59542 ~0% {3} | JOIN WITH `FunctionType::FunctionPosition.asPosition/0#dispred#efcc0611_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2
334001 ~0% {3} r4 = r1 UNION r2 UNION r3
return r4
Evaluated relational algebra for predicate TypeInference::ConstructionMatchingInput::Access.getNodeAt/1#dispred#acd835e6@bfb1f1e1 with tuple counts:
1395153 ~3% {3} r1 = JOIN TypeInference::ConstructionMatchingInput::PathExprAccess#b7a80c43 WITH num#FunctionType::TReturnFunctionPosition#a15fd6be CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0, Lhs.0
34290 ~3% {3} r2 = JOIN StructExpr::Generated::StructExpr#d0a89c56 WITH num#FunctionType::TReturnFunctionPosition#a15fd6be CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0, Lhs.0
3071346 ~0% {2} r3 = SCAN `Name::Generated::Name.getText/0#dispred#107a5a39` OUTPUT In.1, In.0
145365745 ~0% {3} | JOIN WITH `StructExpr::StructExpr.getFieldExpr/1#cd55566d_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2
145365745 ~1% {3} | JOIN WITH StructExpr::Generated::StructExpr#d0a89c56 ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2
33371514 ~0% {3} | JOIN WITH `StructField::Generated::StructField.getName/0#dispred#e0248569_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2
108831 ~0% {3} | JOIN WITH `StructExpr::StructExpr.getNthStructField/1#dispred#89ad7e20_021#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.0, Lhs.2
108751 ~0% {3} | JOIN WITH `FunctionType::FunctionPosition.asPosition/0#dispred#efcc0611_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Rhs.1
108751 ~4% {3} | JOIN WITH `StructExprField::Generated::StructExprField.getExpr/0#dispred#956e6ba1` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1
1748398 ~4% {3} r4 = `TypeInference::ConstructionMatchingInput::NonAssocCallAccess.getNodeAt/1#dispred#ef232b1f` UNION r1 UNION r2 UNION r3
return r4
```
After
```
Evaluated relational algebra for predicate TypeInference::DeconstructionPatMatchingInput::Access.getNodeAt/1#dispred#cc149bc2@2ea6ebjs with tuple counts:
142521 ~1% {3} r1 = JOIN num#FunctionType::TReturnFunctionPosition#a15fd6be WITH TypeInference::DeconstructionPatMatchingInput::Access#a2676dcb CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0, Rhs.0
131938 ~0% {3} r2 = JOIN `TupleStructPat::Generated::TupleStructPat.getField/1#dispred#ac9c1af6` WITH TypeInference::DeconstructionPatMatchingInput::Access#a2676dcb ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2
131938 ~6% {3} | JOIN WITH `FunctionType::FunctionPosition.asPosition/0#dispred#efcc0611_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2
166829 ~3% {3} r3 = JOIN `_Name::Generated::Name.getText/0#dispred#107a5a39_StructField::Generated::StructField.getName/0#disp__#shared` WITH `StructPat::StructPat.getNthStructField/1#dispred#de537654_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2
166817 ~2% {3} | JOIN WITH TypeInference::DeconstructionPatMatchingInput::Access#a2676dcb ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.0
166817 ~0% {3} | JOIN WITH `FunctionType::FunctionPosition.asPosition/0#dispred#efcc0611_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Rhs.1
59542 ~0% {3} | JOIN WITH `StructPat::StructPat.getPatField/1#5e21ea0e` ON FIRST 2 OUTPUT Rhs.2, Lhs.0, Lhs.2
59542 ~0% {3} | JOIN WITH `StructPatField::Generated::StructPatField.getPat/0#dispred#1aadfeff` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1
334001 ~0% {3} r4 = r1 UNION r2 UNION r3
return r4
Evaluated relational algebra for predicate TypeInference::ConstructionMatchingInput::Access.getNodeAt/1#dispred#acd835e6@c7f267fp with tuple counts:
1395153 ~3% {3} r1 = JOIN TypeInference::ConstructionMatchingInput::PathExprAccess#b7a80c43 WITH num#FunctionType::TReturnFunctionPosition#a15fd6be CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0, Lhs.0
34290 ~3% {3} r2 = JOIN StructExpr::Generated::StructExpr#d0a89c56 WITH num#FunctionType::TReturnFunctionPosition#a15fd6be CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0, Lhs.0
159331 ~0% {3} r3 = JOIN `_Name::Generated::Name.getText/0#dispred#107a5a39_StructField::Generated::StructField.getName/0#disp__#shared` WITH `StructExpr::StructExpr.getNthStructField/1#dispred#89ad7e20_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2
159231 ~3% {3} | JOIN WITH StructExpr::Generated::StructExpr#d0a89c56 ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.0
159231 ~3% {3} | JOIN WITH `FunctionType::FunctionPosition.asPosition/0#dispred#efcc0611_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Rhs.1
108731 ~0% {3} | JOIN WITH `StructExpr::StructExpr.getFieldExpr/1#cd55566d` ON FIRST 2 OUTPUT Rhs.2, Lhs.0, Lhs.2
108731 ~4% {3} | JOIN WITH `StructExprField::Generated::StructExprField.getExpr/0#dispred#956e6ba1` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1
1748378 ~4% {3} r4 = `TypeInference::ConstructionMatchingInput::NonAssocCallAccess.getNodeAt/1#dispred#ef232b1f` UNION r1 UNION r2 UNION r3
return r4
```
|
2026-03-18 20:42:57 +01:00 |
|
Tom Hvitved
|
98d8cd1d6d
|
Rust: Make getATypeParameterConstraint return a TypeMention again
|
2026-03-18 19:52:45 +01:00 |
|
Tom Hvitved
|
e8e46accc0
|
Rust: Refine AssociatedTypeTypeParameter.toString
|
2026-03-18 19:52:43 +01:00 |
|
Tom Hvitved
|
06f0c1189f
|
Shared: Generalize SatisfiesConstraint module
|
2026-03-18 19:52:41 +01:00 |
|
Tom Hvitved
|
082dc61620
|
Rust: Add type inference test
|
2026-03-18 19:52:39 +01:00 |
|
Tom Hvitved
|
2e7da72277
|
Merge pull request #21488 from paldepind/rust/tuple-constructor-self
Rust: Unify handling of struct and tuple constructors
|
2026-03-18 19:52:06 +01:00 |
|
Owen Mansel-Chan
|
5b17d8cf76
|
Merge pull request #21472 from owen-mc/adjust-severity/xss-log-injection
Adjust `@security-severity` metadata for XSS and log injection queries
|
2026-03-18 16:51:14 +00:00 |
|
Simon Friis Vindum
|
f2a0724620
|
Rust: Use getReturnType
|
2026-03-18 15:06:34 +01:00 |
|
Simon Friis Vindum
|
b8222167d2
|
Rust: Ensure that TPositionalArgumentPosition is large enough for struct expressions
|
2026-03-18 15:06:32 +01:00 |
|
Simon Friis Vindum
|
6efd844180
|
Rust: Rename into "construction" and "deconstruction"
|
2026-03-18 15:06:23 +01:00 |
|
Simon Friis Vindum
|
d180900ab4
|
Rust: Minor improvements to documentation comments
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
2026-03-17 19:01:22 +01:00 |
|
Simon Friis Vindum
|
97670b3674
|
Rust: Unify handling of struct and tuple constructors
|
2026-03-17 16:41:18 +01:00 |
|
Owen Mansel-Chan
|
3aaee9d981
|
Change @security-severity for rust/log-injection from 2.6 to 6.1
|
2026-03-17 12:01:05 +00:00 |
|
Tom Hvitved
|
1ac9e5a2a4
|
Rust: Elaborate QL doc on FunctionPosition class
|
2026-03-17 09:51:15 +01:00 |
|
github-actions[bot]
|
e3dbf5b022
|
Post-release preparation for codeql-cli-2.25.0
|
2026-03-16 16:03:22 +00:00 |
|
github-actions[bot]
|
d6055754b6
|
Release preparation for version 2.25.0
|
2026-03-16 12:15:34 +00:00 |
|
Tom Hvitved
|
ca2838b361
|
Address review comments
|
2026-03-13 15:38:07 +01:00 |
|
Tom Hvitved
|
7a6ab70091
|
Rust: Add test for free function with context-based typing
|
2026-03-13 15:36:06 +01:00 |
|
Tom Hvitved
|
7094fb07a4
|
Rust: Replace FunctionPosition with FunctionPositionAdj
|
2026-03-13 14:37:40 +01:00 |
|
Owen Mansel-Chan
|
52809133f5
|
Add change notes
|
2026-03-13 11:10:43 +00:00 |
|
Owen Mansel-Chan
|
f58a6e5d3a
|
Change @security-severity for XSS queries from 6.1 to 7.8
|
2026-03-13 10:01:02 +00:00 |
|
Tom Hvitved
|
1b6f3a43ef
|
Rust: Unify type inference logic for associated functions
|
2026-03-12 10:31:35 +01:00 |
|
Tom Hvitved
|
ca7017f3d7
|
Rust: Add more type inference tests
|
2026-03-12 09:02:40 +01:00 |
|
Tom Hvitved
|
c06d4d2647
|
Merge pull request #21422 from hvitved/rust/type-mention-refactor
Rust: Small refactor in `TypeMention.qll`
|
2026-03-11 14:01:03 +01:00 |
|
Geoffrey White
|
d81b9aa5fd
|
Merge branch 'main' into splitoff2
|
2026-03-06 17:24:01 +00:00 |
|
Geoffrey White
|
fd7093e74d
|
Merge pull request #21375 from geoffw0/mapfix
Rust: Add neutral models (map, from)
|
2026-03-06 17:20:14 +00:00 |
|
Óscar San José
|
3b9eba2afc
|
Merge branch 'main' of https://github.com/github/codeql into oscarsj/merge-back-rc-3.21
|
2026-03-06 16:20:36 +01:00 |
|
Tom Hvitved
|
4dca9aa958
|
Rust: Small refactor in TypeMention.qll
|
2026-03-06 15:33:11 +01:00 |
|
Tom Hvitved
|
84bef5d4bc
|
Merge pull request #21420 from hvitved/rust/type-inference-qualified-trait-arg-path
Rust: More conservative resolution of `<Foo as Bar<...>>` paths
|
2026-03-06 15:14:01 +01:00 |
|
Tom Hvitved
|
ff41917147
|
Rust: More conservative resolution of <Foo as Bar<...>> paths
|
2026-03-05 21:42:33 +01:00 |
|
Tom Hvitved
|
838f3b90e7
|
Rust: Add type inference test
|
2026-03-05 20:57:32 +01:00 |
|
Owen Mansel-Chan
|
926725a87f
|
Merge pull request #21405 from owen-mc/java/consistent-inline-expectation-tests
Inline expectation tests should always have space before and after `$`
|
2026-03-05 11:27:37 +00:00 |
|
Owen Mansel-Chan
|
c82f75604a
|
Add change notes
|
2026-03-05 10:34:30 +00:00 |
|
Owen Mansel-Chan
|
aa28c94562
|
Remove double space after $ in inline expectations tests
|
2026-03-04 14:12:42 +00:00 |
|
Geoffrey White
|
370c5157f1
|
Merge branch 'main' into mapfix
|
2026-03-04 10:20:04 +00:00 |
|
Tom Hvitved
|
18d2f586b3
|
Rust: Update AccessAfterLifetime query to use FeatureEscapesSourceCallContextOrEqualSourceSinkCallContext
|
2026-03-04 10:44:25 +01:00 |
|
Geoffrey White
|
bb5bfda14b
|
Rust: Update the models.
|
2026-03-03 09:26:54 +00:00 |
|
github-actions[bot]
|
e152f08468
|
Post-release preparation for codeql-cli-2.24.3
|
2026-03-02 22:51:27 +00:00 |
|
github-actions[bot]
|
7795badd18
|
Release preparation for version 2.24.3
|
2026-03-02 13:23:40 +00:00 |
|
Geoffrey White
|
062fbf2b3c
|
Rust: Accept consistency check changes from CI.
|
2026-02-26 15:45:40 +00:00 |
|
Tom Hvitved
|
4280d35bf3
|
Merge pull request #21366 from hvitved/rust/type-inference-unify-method-resolution
Rust: Unify logic in `MethodResolution`; remove `TypeQualifierIsInstantiationOfImplSelf` logic
|
2026-02-26 14:38:35 +01:00 |
|
Tom Hvitved
|
11a726d1b4
|
Address review comments
|
2026-02-26 14:23:41 +01:00 |
|
Geoffrey White
|
ec0b90f4b4
|
Rust: Simplify with the Copilot suggestions.
|
2026-02-26 13:00:07 +00:00 |
|
Geoffrey White
|
96a06bed8d
|
Rust: Accept consistency check changes.
|
2026-02-26 12:41:17 +00:00 |
|
Geoffrey White
|
f2dc585751
|
Rust: Convert split_off QL-defined barrier to a neutral model (which was always the intent).
|
2026-02-26 12:25:23 +00:00 |
|
Geoffrey White
|
478f56b82f
|
Rust: Move the existing 'alloc' neutral models into alloc.model.yml.
|
2026-02-26 12:25:10 +00:00 |
|
Geoffrey White
|
78f855d7e3
|
Rust: Make the manual model for Option::map more accurate.
|
2026-02-26 11:34:30 +00:00 |
|