Skip to content

Commit 6cca016

Browse files
authored
Merge pull request #19755 from hvitved/rust/type-inference-operand-workaround
Rust: Temporarily disable type information to flow into operands
2 parents 7051ad5 + 5f4d588 commit 6cca016

File tree

2 files changed

+3
-49
lines changed

2 files changed

+3
-49
lines changed

rust/ql/lib/codeql/rust/internal/TypeInference.qll

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,9 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) {
767767
TypePath path0
768768
|
769769
n = a.getNodeAt(apos) and
770-
result = CallExprBaseMatching::inferAccessType(a, apos, path0)
770+
result = CallExprBaseMatching::inferAccessType(a, apos, path0) and
771+
// temporary workaround until implicit borrows are handled correctly
772+
if a instanceof Operation then apos.isReturn() else any()
771773
|
772774
if apos.isSelf(_)
773775
then

rust/ql/test/library-tests/type-inference/type-inference.expected

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2302,135 +2302,93 @@ inferType
23022302
| main.rs:1594:28:1594:28 | 1 | | {EXTERNAL LOCATION} | i64 |
23032303
| main.rs:1594:34:1594:34 | 2 | | {EXTERNAL LOCATION} | i32 |
23042304
| main.rs:1594:34:1594:34 | 2 | | {EXTERNAL LOCATION} | i64 |
2305-
| main.rs:1595:13:1595:14 | v2 | | file://:0:0:0:0 | & |
23062305
| main.rs:1595:13:1595:14 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2307-
| main.rs:1595:13:1595:14 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
2308-
| main.rs:1595:18:1595:36 | Vec2 {...} | | file://:0:0:0:0 | & |
23092306
| main.rs:1595:18:1595:36 | Vec2 {...} | | main.rs:1302:5:1307:5 | Vec2 |
2310-
| main.rs:1595:18:1595:36 | Vec2 {...} | &T | main.rs:1302:5:1307:5 | Vec2 |
23112307
| main.rs:1595:28:1595:28 | 3 | | {EXTERNAL LOCATION} | i32 |
23122308
| main.rs:1595:28:1595:28 | 3 | | {EXTERNAL LOCATION} | i64 |
23132309
| main.rs:1595:34:1595:34 | 4 | | {EXTERNAL LOCATION} | i32 |
23142310
| main.rs:1595:34:1595:34 | 4 | | {EXTERNAL LOCATION} | i64 |
23152311
| main.rs:1598:13:1598:19 | vec2_eq | | {EXTERNAL LOCATION} | bool |
23162312
| main.rs:1598:23:1598:24 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23172313
| main.rs:1598:23:1598:30 | ... == ... | | {EXTERNAL LOCATION} | bool |
2318-
| main.rs:1598:29:1598:30 | v2 | | file://:0:0:0:0 | & |
23192314
| main.rs:1598:29:1598:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2320-
| main.rs:1598:29:1598:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23212315
| main.rs:1599:13:1599:19 | vec2_ne | | {EXTERNAL LOCATION} | bool |
23222316
| main.rs:1599:23:1599:24 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23232317
| main.rs:1599:23:1599:30 | ... != ... | | {EXTERNAL LOCATION} | bool |
2324-
| main.rs:1599:29:1599:30 | v2 | | file://:0:0:0:0 | & |
23252318
| main.rs:1599:29:1599:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2326-
| main.rs:1599:29:1599:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23272319
| main.rs:1600:13:1600:19 | vec2_lt | | {EXTERNAL LOCATION} | bool |
23282320
| main.rs:1600:23:1600:24 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23292321
| main.rs:1600:23:1600:29 | ... < ... | | {EXTERNAL LOCATION} | bool |
2330-
| main.rs:1600:28:1600:29 | v2 | | file://:0:0:0:0 | & |
23312322
| main.rs:1600:28:1600:29 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2332-
| main.rs:1600:28:1600:29 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23332323
| main.rs:1601:13:1601:19 | vec2_le | | {EXTERNAL LOCATION} | bool |
23342324
| main.rs:1601:23:1601:24 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23352325
| main.rs:1601:23:1601:30 | ... <= ... | | {EXTERNAL LOCATION} | bool |
2336-
| main.rs:1601:29:1601:30 | v2 | | file://:0:0:0:0 | & |
23372326
| main.rs:1601:29:1601:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2338-
| main.rs:1601:29:1601:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23392327
| main.rs:1602:13:1602:19 | vec2_gt | | {EXTERNAL LOCATION} | bool |
23402328
| main.rs:1602:23:1602:24 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23412329
| main.rs:1602:23:1602:29 | ... > ... | | {EXTERNAL LOCATION} | bool |
2342-
| main.rs:1602:28:1602:29 | v2 | | file://:0:0:0:0 | & |
23432330
| main.rs:1602:28:1602:29 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2344-
| main.rs:1602:28:1602:29 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23452331
| main.rs:1603:13:1603:19 | vec2_ge | | {EXTERNAL LOCATION} | bool |
23462332
| main.rs:1603:23:1603:24 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23472333
| main.rs:1603:23:1603:30 | ... >= ... | | {EXTERNAL LOCATION} | bool |
2348-
| main.rs:1603:29:1603:30 | v2 | | file://:0:0:0:0 | & |
23492334
| main.rs:1603:29:1603:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2350-
| main.rs:1603:29:1603:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23512335
| main.rs:1606:13:1606:20 | vec2_add | | main.rs:1302:5:1307:5 | Vec2 |
23522336
| main.rs:1606:24:1606:25 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23532337
| main.rs:1606:24:1606:30 | ... + ... | | main.rs:1302:5:1307:5 | Vec2 |
2354-
| main.rs:1606:29:1606:30 | v2 | | file://:0:0:0:0 | & |
23552338
| main.rs:1606:29:1606:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2356-
| main.rs:1606:29:1606:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23572339
| main.rs:1607:13:1607:20 | vec2_sub | | main.rs:1302:5:1307:5 | Vec2 |
23582340
| main.rs:1607:24:1607:25 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23592341
| main.rs:1607:24:1607:30 | ... - ... | | main.rs:1302:5:1307:5 | Vec2 |
2360-
| main.rs:1607:29:1607:30 | v2 | | file://:0:0:0:0 | & |
23612342
| main.rs:1607:29:1607:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2362-
| main.rs:1607:29:1607:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23632343
| main.rs:1608:13:1608:20 | vec2_mul | | main.rs:1302:5:1307:5 | Vec2 |
23642344
| main.rs:1608:24:1608:25 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23652345
| main.rs:1608:24:1608:30 | ... * ... | | main.rs:1302:5:1307:5 | Vec2 |
2366-
| main.rs:1608:29:1608:30 | v2 | | file://:0:0:0:0 | & |
23672346
| main.rs:1608:29:1608:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2368-
| main.rs:1608:29:1608:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23692347
| main.rs:1609:13:1609:20 | vec2_div | | main.rs:1302:5:1307:5 | Vec2 |
23702348
| main.rs:1609:24:1609:25 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23712349
| main.rs:1609:24:1609:30 | ... / ... | | main.rs:1302:5:1307:5 | Vec2 |
2372-
| main.rs:1609:29:1609:30 | v2 | | file://:0:0:0:0 | & |
23732350
| main.rs:1609:29:1609:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2374-
| main.rs:1609:29:1609:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23752351
| main.rs:1610:13:1610:20 | vec2_rem | | main.rs:1302:5:1307:5 | Vec2 |
23762352
| main.rs:1610:24:1610:25 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23772353
| main.rs:1610:24:1610:30 | ... % ... | | main.rs:1302:5:1307:5 | Vec2 |
2378-
| main.rs:1610:29:1610:30 | v2 | | file://:0:0:0:0 | & |
23792354
| main.rs:1610:29:1610:30 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2380-
| main.rs:1610:29:1610:30 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23812355
| main.rs:1613:13:1613:31 | mut vec2_add_assign | | main.rs:1302:5:1307:5 | Vec2 |
23822356
| main.rs:1613:35:1613:36 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23832357
| main.rs:1614:9:1614:23 | vec2_add_assign | | main.rs:1302:5:1307:5 | Vec2 |
23842358
| main.rs:1614:9:1614:29 | ... += ... | | file://:0:0:0:0 | () |
2385-
| main.rs:1614:28:1614:29 | v2 | | file://:0:0:0:0 | & |
23862359
| main.rs:1614:28:1614:29 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2387-
| main.rs:1614:28:1614:29 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23882360
| main.rs:1616:13:1616:31 | mut vec2_sub_assign | | main.rs:1302:5:1307:5 | Vec2 |
23892361
| main.rs:1616:35:1616:36 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23902362
| main.rs:1617:9:1617:23 | vec2_sub_assign | | main.rs:1302:5:1307:5 | Vec2 |
23912363
| main.rs:1617:9:1617:29 | ... -= ... | | file://:0:0:0:0 | () |
2392-
| main.rs:1617:28:1617:29 | v2 | | file://:0:0:0:0 | & |
23932364
| main.rs:1617:28:1617:29 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2394-
| main.rs:1617:28:1617:29 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
23952365
| main.rs:1619:13:1619:31 | mut vec2_mul_assign | | main.rs:1302:5:1307:5 | Vec2 |
23962366
| main.rs:1619:35:1619:36 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
23972367
| main.rs:1620:9:1620:23 | vec2_mul_assign | | main.rs:1302:5:1307:5 | Vec2 |
23982368
| main.rs:1620:9:1620:29 | ... *= ... | | file://:0:0:0:0 | () |
2399-
| main.rs:1620:28:1620:29 | v2 | | file://:0:0:0:0 | & |
24002369
| main.rs:1620:28:1620:29 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2401-
| main.rs:1620:28:1620:29 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24022370
| main.rs:1622:13:1622:31 | mut vec2_div_assign | | main.rs:1302:5:1307:5 | Vec2 |
24032371
| main.rs:1622:35:1622:36 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24042372
| main.rs:1623:9:1623:23 | vec2_div_assign | | main.rs:1302:5:1307:5 | Vec2 |
24052373
| main.rs:1623:9:1623:29 | ... /= ... | | file://:0:0:0:0 | () |
2406-
| main.rs:1623:28:1623:29 | v2 | | file://:0:0:0:0 | & |
24072374
| main.rs:1623:28:1623:29 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2408-
| main.rs:1623:28:1623:29 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24092375
| main.rs:1625:13:1625:31 | mut vec2_rem_assign | | main.rs:1302:5:1307:5 | Vec2 |
24102376
| main.rs:1625:35:1625:36 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24112377
| main.rs:1626:9:1626:23 | vec2_rem_assign | | main.rs:1302:5:1307:5 | Vec2 |
24122378
| main.rs:1626:9:1626:29 | ... %= ... | | file://:0:0:0:0 | () |
2413-
| main.rs:1626:28:1626:29 | v2 | | file://:0:0:0:0 | & |
24142379
| main.rs:1626:28:1626:29 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2415-
| main.rs:1626:28:1626:29 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24162380
| main.rs:1629:13:1629:23 | vec2_bitand | | main.rs:1302:5:1307:5 | Vec2 |
24172381
| main.rs:1629:27:1629:28 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24182382
| main.rs:1629:27:1629:33 | ... & ... | | main.rs:1302:5:1307:5 | Vec2 |
2419-
| main.rs:1629:32:1629:33 | v2 | | file://:0:0:0:0 | & |
24202383
| main.rs:1629:32:1629:33 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2421-
| main.rs:1629:32:1629:33 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24222384
| main.rs:1630:13:1630:22 | vec2_bitor | | main.rs:1302:5:1307:5 | Vec2 |
24232385
| main.rs:1630:26:1630:27 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24242386
| main.rs:1630:26:1630:32 | ... \| ... | | main.rs:1302:5:1307:5 | Vec2 |
2425-
| main.rs:1630:31:1630:32 | v2 | | file://:0:0:0:0 | & |
24262387
| main.rs:1630:31:1630:32 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2427-
| main.rs:1630:31:1630:32 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24282388
| main.rs:1631:13:1631:23 | vec2_bitxor | | main.rs:1302:5:1307:5 | Vec2 |
24292389
| main.rs:1631:27:1631:28 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24302390
| main.rs:1631:27:1631:33 | ... ^ ... | | main.rs:1302:5:1307:5 | Vec2 |
2431-
| main.rs:1631:32:1631:33 | v2 | | file://:0:0:0:0 | & |
24322391
| main.rs:1631:32:1631:33 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2433-
| main.rs:1631:32:1631:33 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24342392
| main.rs:1632:13:1632:20 | vec2_shl | | main.rs:1302:5:1307:5 | Vec2 |
24352393
| main.rs:1632:24:1632:25 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24362394
| main.rs:1632:24:1632:33 | ... << ... | | main.rs:1302:5:1307:5 | Vec2 |
@@ -2443,23 +2401,17 @@ inferType
24432401
| main.rs:1636:38:1636:39 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24442402
| main.rs:1637:9:1637:26 | vec2_bitand_assign | | main.rs:1302:5:1307:5 | Vec2 |
24452403
| main.rs:1637:9:1637:32 | ... &= ... | | file://:0:0:0:0 | () |
2446-
| main.rs:1637:31:1637:32 | v2 | | file://:0:0:0:0 | & |
24472404
| main.rs:1637:31:1637:32 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2448-
| main.rs:1637:31:1637:32 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24492405
| main.rs:1639:13:1639:33 | mut vec2_bitor_assign | | main.rs:1302:5:1307:5 | Vec2 |
24502406
| main.rs:1639:37:1639:38 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24512407
| main.rs:1640:9:1640:25 | vec2_bitor_assign | | main.rs:1302:5:1307:5 | Vec2 |
24522408
| main.rs:1640:9:1640:31 | ... \|= ... | | file://:0:0:0:0 | () |
2453-
| main.rs:1640:30:1640:31 | v2 | | file://:0:0:0:0 | & |
24542409
| main.rs:1640:30:1640:31 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2455-
| main.rs:1640:30:1640:31 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24562410
| main.rs:1642:13:1642:34 | mut vec2_bitxor_assign | | main.rs:1302:5:1307:5 | Vec2 |
24572411
| main.rs:1642:38:1642:39 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24582412
| main.rs:1643:9:1643:26 | vec2_bitxor_assign | | main.rs:1302:5:1307:5 | Vec2 |
24592413
| main.rs:1643:9:1643:32 | ... ^= ... | | file://:0:0:0:0 | () |
2460-
| main.rs:1643:31:1643:32 | v2 | | file://:0:0:0:0 | & |
24612414
| main.rs:1643:31:1643:32 | v2 | | main.rs:1302:5:1307:5 | Vec2 |
2462-
| main.rs:1643:31:1643:32 | v2 | &T | main.rs:1302:5:1307:5 | Vec2 |
24632415
| main.rs:1645:13:1645:31 | mut vec2_shl_assign | | main.rs:1302:5:1307:5 | Vec2 |
24642416
| main.rs:1645:35:1645:36 | v1 | | main.rs:1302:5:1307:5 | Vec2 |
24652417
| main.rs:1646:9:1646:23 | vec2_shl_assign | | main.rs:1302:5:1307:5 | Vec2 |

0 commit comments

Comments
 (0)