diff options
| author | Michael Howell <michael@notriddle.com> | 2023-04-20 18:08:06 -0700 |
|---|---|---|
| committer | Michael Howell <michael@notriddle.com> | 2023-04-29 16:53:02 -0700 |
| commit | b1d08275a9914b59bbad3cf5f80073b8365e9e67 (patch) | |
| tree | 7faaffc6f6692b47ab7d49d3d655cb34f34750b3 /compiler/rustc_interface/src/interface.rs | |
| parent | 87b1f891ea76713462cfc5a15137a8fe2b24ecc2 (diff) | |
| download | rust-b1d08275a9914b59bbad3cf5f80073b8365e9e67.tar.gz rust-b1d08275a9914b59bbad3cf5f80073b8365e9e67.zip | |
rustdoc: catch and don't blow up on impl Trait cycles
An odd feature of Rust is that `Foo` is invalid, but `Bar` is okay:
type Foo<'a, 'b> = Box<dyn PartialEq<Foo<'a, 'b>>>;
type Bar<'a, 'b> = impl PartialEq<Bar<'a, 'b>>;
To get it right, track every time rustdoc descends into a type alias,
so if it shows up twice, it can be write the path instead of
infinitely expanding it.
Diffstat (limited to 'compiler/rustc_interface/src/interface.rs')
0 files changed, 0 insertions, 0 deletions
