Commit de9f6ac
committed
Fix broken sidebar links for chained class aliases
When Ruby defines chained aliases like `A = B = C` (e.g.,
`HTTPRequestURITooLarge = HTTPRequestURITooLong = HTTPURITooLong`
in net/http), the sidebar link for the outermost alias pointed to
the intermediate alias's HTML file, which is never generated.
The root cause: `update_aliases` creates ClassModule objects whose
`is_alias_for` references stale intermediate objects from
`add_module_alias` that don't know they are aliases. Resolve through
the store to follow already-processed aliases back to the real class.
Also make `name_for_path` follow the alias chain recursively as a
defensive measure.
Fixes #1664.1 parent 345c840 commit de9f6ac
2 files changed
Lines changed: 45 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
673 | 673 | | |
674 | 674 | | |
675 | 675 | | |
676 | | - | |
| 676 | + | |
677 | 677 | | |
678 | 678 | | |
679 | 679 | | |
| |||
848 | 848 | | |
849 | 849 | | |
850 | 850 | | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
851 | 858 | | |
852 | 859 | | |
853 | 860 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
610 | 610 | | |
611 | 611 | | |
612 | 612 | | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
613 | 650 | | |
614 | 651 | | |
615 | 652 | | |
| |||
0 commit comments