Commit 97acaae
authored
[ty] Fix stack overflow for self-referential
## Summary
When a function references itself via `TypeOf` in a deferred annotation
(`def foo(x: "TypeOf[foo]")`), the resulting `FunctionType` contains
itself as a parameter type, forming a cycle.
Closes astral-sh/ty#2800.TypeOf in annotations (#23407)1 parent 1f380c8 commit 97acaae
3 files changed
Lines changed: 53 additions & 21 deletions
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
427 | 427 | | |
428 | 428 | | |
429 | 429 | | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
430 | 442 | | |
431 | 443 | | |
432 | 444 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6408 | 6408 | | |
6409 | 6409 | | |
6410 | 6410 | | |
6411 | | - | |
6412 | | - | |
6413 | | - | |
6414 | | - | |
6415 | | - | |
| 6411 | + | |
| 6412 | + | |
| 6413 | + | |
| 6414 | + | |
| 6415 | + | |
| 6416 | + | |
| 6417 | + | |
| 6418 | + | |
| 6419 | + | |
| 6420 | + | |
| 6421 | + | |
| 6422 | + | |
| 6423 | + | |
| 6424 | + | |
6416 | 6425 | | |
6417 | 6426 | | |
6418 | 6427 | | |
6419 | 6428 | | |
6420 | | - | |
6421 | | - | |
| 6429 | + | |
6422 | 6430 | | |
6423 | | - | |
6424 | | - | |
6425 | | - | |
6426 | | - | |
6427 | | - | |
6428 | | - | |
6429 | | - | |
| 6431 | + | |
6430 | 6432 | | |
6431 | 6433 | | |
6432 | 6434 | | |
| |||
6692 | 6694 | | |
6693 | 6695 | | |
6694 | 6696 | | |
6695 | | - | |
| 6697 | + | |
| 6698 | + | |
| 6699 | + | |
6696 | 6700 | | |
6697 | 6701 | | |
6698 | 6702 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
90 | 93 | | |
91 | 94 | | |
92 | 95 | | |
| |||
1466 | 1469 | | |
1467 | 1470 | | |
1468 | 1471 | | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
1469 | 1485 | | |
1470 | 1486 | | |
1471 | 1487 | | |
| |||
1475 | 1491 | | |
1476 | 1492 | | |
1477 | 1493 | | |
1478 | | - | |
| 1494 | + | |
1479 | 1495 | | |
1480 | 1496 | | |
1481 | 1497 | | |
1482 | 1498 | | |
1483 | 1499 | | |
1484 | 1500 | | |
1485 | 1501 | | |
1486 | | - | |
| 1502 | + | |
1487 | 1503 | | |
1488 | 1504 | | |
1489 | 1505 | | |
1490 | 1506 | | |
1491 | | - | |
| 1507 | + | |
1492 | 1508 | | |
1493 | 1509 | | |
1494 | 1510 | | |
1495 | 1511 | | |
1496 | 1512 | | |
1497 | | - | |
| 1513 | + | |
1498 | 1514 | | |
1499 | 1515 | | |
1500 | | - | |
| 1516 | + | |
1501 | 1517 | | |
1502 | 1518 | | |
1503 | | - | |
| 1519 | + | |
1504 | 1520 | | |
1505 | 1521 | | |
1506 | 1522 | | |
| |||
0 commit comments