Commit 3c30d61
authored
fix: Generic constructor type inference from iterable arguments (jaseci-labs#5182)
## Summary
- `set(list[Item])` now correctly infers `set[Item]`
- `enumerate(list[Item])` now correctly infers `enumerate[Item]`
- Propagates TypeVar bindings through `base_classes` in MRO walk
Previously, generic constructors like `set()` and `enumerate()` returned
unparameterized types because TypeVar bindings weren't propagated
through the inheritance chain.1 parent 93c74b4 commit 3c30d61
File tree
8 files changed
+78
-80
lines changed- docs/docs/community/release_notes
- jac
- jaclang/compiler/type_system
- impl
- type_evaluator.impl
- tests
- compiler/passes/main
- fixtures/checker
- runtimelib/fixtures
8 files changed
+78
-80
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
Lines changed: 22 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
534 | 534 | | |
535 | 535 | | |
536 | 536 | | |
537 | | - | |
538 | | - | |
| 537 | + | |
539 | 538 | | |
540 | 539 | | |
541 | 540 | | |
| |||
545 | 544 | | |
546 | 545 | | |
547 | 546 | | |
548 | | - | |
549 | | - | |
550 | | - | |
| 547 | + | |
551 | 548 | | |
552 | 549 | | |
553 | 550 | | |
554 | 551 | | |
555 | 552 | | |
556 | 553 | | |
557 | 554 | | |
558 | | - | |
559 | | - | |
560 | | - | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
561 | 575 | | |
562 | 576 | | |
563 | 577 | | |
564 | 578 | | |
565 | | - | |
566 | 579 | | |
567 | 580 | | |
568 | 581 | | |
569 | 582 | | |
570 | 583 | | |
571 | 584 | | |
572 | 585 | | |
573 | | - | |
574 | | - | |
575 | 586 | | |
576 | 587 | | |
577 | 588 | | |
| |||
581 | 592 | | |
582 | 593 | | |
583 | 594 | | |
584 | | - | |
585 | 595 | | |
586 | 596 | | |
587 | 597 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
326 | | - | |
327 | | - | |
| 326 | + | |
| 327 | + | |
328 | 328 | | |
329 | 329 | | |
330 | 330 | | |
| |||
335 | 335 | | |
336 | 336 | | |
337 | 337 | | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
338 | 348 | | |
339 | 349 | | |
340 | 350 | | |
| |||
419 | 429 | | |
420 | 430 | | |
421 | 431 | | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
422 | 440 | | |
423 | 441 | | |
424 | 442 | | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
425 | 447 | | |
426 | 448 | | |
427 | 449 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1542 | 1542 | | |
1543 | 1543 | | |
1544 | 1544 | | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
1545 | 1557 | | |
1546 | 1558 | | |
1547 | 1559 | | |
| |||
Lines changed: 4 additions & 23 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
| 1 | + | |
16 | 2 | | |
17 | 3 | | |
18 | 4 | | |
| |||
22 | 8 | | |
23 | 9 | | |
24 | 10 | | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
33 | 14 | | |
34 | 15 | | |
Lines changed: 7 additions & 27 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
| 1 | + | |
16 | 2 | | |
17 | 3 | | |
18 | 4 | | |
19 | 5 | | |
20 | 6 | | |
21 | | - | |
22 | 7 | | |
23 | 8 | | |
24 | 9 | | |
| |||
28 | 13 | | |
29 | 14 | | |
30 | 15 | | |
31 | | - | |
32 | 16 | | |
33 | 17 | | |
34 | | - | |
35 | | - | |
| 18 | + | |
36 | 19 | | |
37 | | - | |
38 | | - | |
39 | | - | |
| 20 | + | |
| 21 | + | |
40 | 22 | | |
41 | 23 | | |
42 | | - | |
| 24 | + | |
43 | 25 | | |
44 | | - | |
45 | 26 | | |
46 | | - | |
47 | | - | |
48 | | - | |
| 27 | + | |
| 28 | + | |
49 | 29 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2087 | 2087 | | |
2088 | 2088 | | |
2089 | 2089 | | |
2090 | | - | |
2091 | 2090 | | |
2092 | 2091 | | |
2093 | 2092 | | |
2094 | 2093 | | |
2095 | 2094 | | |
2096 | | - | |
2097 | | - | |
2098 | | - | |
2099 | | - | |
| 2095 | + | |
2100 | 2096 | | |
2101 | 2097 | | |
2102 | | - | |
2103 | 2098 | | |
2104 | | - | |
| 2099 | + | |
| 2100 | + | |
2105 | 2101 | | |
2106 | 2102 | | |
2107 | | - | |
2108 | 2103 | | |
2109 | 2104 | | |
2110 | 2105 | | |
2111 | 2106 | | |
2112 | 2107 | | |
2113 | | - | |
2114 | | - | |
2115 | | - | |
2116 | | - | |
| 2108 | + | |
2117 | 2109 | | |
2118 | 2110 | | |
2119 | | - | |
2120 | 2111 | | |
2121 | | - | |
| 2112 | + | |
| 2113 | + | |
2122 | 2114 | | |
2123 | 2115 | | |
2124 | 2116 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| |||
0 commit comments