Commit 542cadf
committed
inference: model
`Core._svec_ref` was added in #45062, but its rt, effects
and exct have not been properly modeled in the compiler.
This usually isn't a problem because `Core._svec_ref` gets optimized
away by the `lift_svec_ref!` pass during optimization.
However, external abstract interpreters like JET, which don't run these
optimizations, can have type inference issues because of this.
This commit adds the correct handling.
Also, `Base.ismutationfree(Core.Simplevector)` was incorrectly returning
`true`. This commit fixes that too.Core._svec_ref
1 parent d6f5b7f commit 542cadf
File tree
4 files changed
+35
-6
lines changed- Compiler
- src
- test
- src
- test
4 files changed
+35
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
573 | 573 | | |
574 | 574 | | |
575 | 575 | | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
576 | 586 | | |
577 | 587 | | |
578 | 588 | | |
| |||
2316 | 2326 | | |
2317 | 2327 | | |
2318 | 2328 | | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
2319 | 2332 | | |
2320 | 2333 | | |
2321 | 2334 | | |
| |||
2346 | 2359 | | |
2347 | 2360 | | |
2348 | 2361 | | |
2349 | | - | |
| 2362 | + | |
| 2363 | + | |
| 2364 | + | |
2350 | 2365 | | |
2351 | 2366 | | |
2352 | 2367 | | |
| |||
2371 | 2386 | | |
2372 | 2387 | | |
2373 | 2388 | | |
| 2389 | + | |
2374 | 2390 | | |
2375 | 2391 | | |
2376 | 2392 | | |
| |||
2404 | 2420 | | |
2405 | 2421 | | |
2406 | 2422 | | |
| 2423 | + | |
2407 | 2424 | | |
2408 | 2425 | | |
2409 | 2426 | | |
| |||
2546 | 2563 | | |
2547 | 2564 | | |
2548 | 2565 | | |
2549 | | - | |
| 2566 | + | |
2550 | 2567 | | |
2551 | 2568 | | |
2552 | 2569 | | |
| |||
2650 | 2667 | | |
2651 | 2668 | | |
2652 | 2669 | | |
2653 | | - | |
2654 | | - | |
2655 | | - | |
| 2670 | + | |
2656 | 2671 | | |
2657 | 2672 | | |
2658 | 2673 | | |
| |||
2838 | 2853 | | |
2839 | 2854 | | |
2840 | 2855 | | |
| 2856 | + | |
| 2857 | + | |
2841 | 2858 | | |
2842 | 2859 | | |
2843 | 2860 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1467 | 1467 | | |
1468 | 1468 | | |
1469 | 1469 | | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3887 | 3887 | | |
3888 | 3888 | | |
3889 | 3889 | | |
3890 | | - | |
| 3890 | + | |
3891 | 3891 | | |
3892 | 3892 | | |
3893 | 3893 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1211 | 1211 | | |
1212 | 1212 | | |
1213 | 1213 | | |
| 1214 | + | |
| 1215 | + | |
1214 | 1216 | | |
1215 | 1217 | | |
1216 | 1218 | | |
| |||
0 commit comments