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 |
|
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 |
|
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
|
7094fb07a4
|
Rust: Replace FunctionPosition with FunctionPositionAdj
|
2026-03-13 14:37:40 +01:00 |
|
Tom Hvitved
|
1b6f3a43ef
|
Rust: Unify type inference logic for associated functions
|
2026-03-12 10:31:35 +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 |
|
Owen Mansel-Chan
|
c82f75604a
|
Add change notes
|
2026-03-05 10:34:30 +00:00 |
|
Geoffrey White
|
370c5157f1
|
Merge branch 'main' into mapfix
|
2026-03-04 10:20:04 +00: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 |
|
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
|
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 |
|
Geoffrey White
|
75ffb5fc4c
|
Rust: Change note.
|
2026-02-26 10:59:48 +00:00 |
|
Geoffrey White
|
75fea4245a
|
Rust: Add neutral models of From::from (corresponding with existing generated sink models).
|
2026-02-26 10:00:30 +00:00 |
|
Geoffrey White
|
5c108e5c12
|
Rust: Add a manual model for flow through Option::map.
|
2026-02-26 09:12:33 +00:00 |
|
Geoffrey White
|
53e886380c
|
Rust: Add a neutral model of Option::map (so that we don't use the generated models).
|
2026-02-26 08:36:28 +00:00 |
|
Geoffrey White
|
5523b5e25f
|
Merge pull request #21271 from geoffw0/neutralmodels
Rust: Add support for neutral models.
|
2026-02-25 16:15:55 +00:00 |
|
Geoffrey White
|
ccc318106e
|
Rust: Add an empty.model.yml similar to the one in CPP, to avoid errors about missing extensionals.
|
2026-02-25 14:25:12 +00:00 |
|
Tom Hvitved
|
de9b1adf63
|
Rust: Unify logic in MethodResolution; remove TypeQualifierIsInstantiationOfImplSelf logic
|
2026-02-25 09:05:58 +01:00 |
|
Tom Hvitved
|
018674cfde
|
Merge pull request #21333 from hvitved/rust/type-inference-restrict-receiver-type-propagation
Rust: Restrict type propagation into receivers
|
2026-02-25 08:48:14 +01:00 |
|
Geoffrey White
|
8769059ce5
|
Rust: Remove another call to neutralModel we don't need to make explicitly.
|
2026-02-24 15:01:45 +00:00 |
|
Tom Hvitved
|
f9869daa91
|
Address review comments
|
2026-02-24 12:12:47 +01:00 |
|
Geoffrey White
|
e9511560b7
|
Rust: Autoformat.
|
2026-02-23 19:51:22 +00:00 |
|
Geoffrey White
|
6b7f339287
|
Rust: Define neutralElement in the shared data flow input.
|
2026-02-23 19:38:13 +00:00 |
|
Tom Hvitved
|
e587541e55
|
Rust: Restrict type propagation into receivers
|
2026-02-17 13:42:56 +01:00 |
|
Tom Hvitved
|
d3541b87d6
|
Rust: Make path resolution robust against invalid code with conflicting declarations
|
2026-02-17 11:13:32 +01:00 |
|
Michael B. Gale
|
b34777e67f
|
Merge pull request #21332 from github/post-release-prep/codeql-cli-2.24.2
Post-release preparation for codeql-cli-2.24.2
|
2026-02-16 17:50:30 +00:00 |
|