diff options
| author | Noah Lev <camelidcamel@gmail.com> | 2021-12-28 13:15:02 -0800 |
|---|---|---|
| committer | Noah Lev <camelidcamel@gmail.com> | 2021-12-28 14:09:20 -0800 |
| commit | 908a9d4aad61f4b8108ff91ae42f76e67dec5148 (patch) | |
| tree | 24bc1f60ae9b3c73f464a514727a12686eae175b | |
| parent | 7d1ec648914d59a6620ed0dcc2ed60c86b53f189 (diff) | |
| download | rust-908a9d4aad61f4b8108ff91ae42f76e67dec5148.tar.gz rust-908a9d4aad61f4b8108ff91ae42f76e67dec5148.zip | |
Add regression test for #59502
This issue was fixed using a hacky recursion "fuel" argument, but the issue was never minimized nor was a regression test added. The underlying bug is still unfixed, so this test should help with fixing it and removing the `recurse` hack.
| -rw-r--r-- | src/librustdoc/html/render/search_index.rs | 2 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/search-index-generics-recursion-bug-issue-59502.rs | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/librustdoc/html/render/search_index.rs b/src/librustdoc/html/render/search_index.rs index 038ee351545..0fbe090f219 100644 --- a/src/librustdoc/html/render/search_index.rs +++ b/src/librustdoc/html/render/search_index.rs @@ -236,6 +236,7 @@ fn get_index_type_name(clean_type: &clean::Type) -> Option<Symbol> { /// /// Important note: It goes through generics recursively. So if you have /// `T: Option<Result<(), ()>>`, it'll go into `Option` and then into `Result`. +#[instrument(level = "trace", skip(tcx, res))] fn add_generics_and_bounds_as_types<'tcx>( generics: &Generics, arg: &Type, @@ -316,6 +317,7 @@ fn add_generics_and_bounds_as_types<'tcx>( if recurse >= 10 { // FIXME: remove this whole recurse thing when the recursion bug is fixed + // See #59502 for the original issue. return; } diff --git a/src/test/rustdoc-ui/search-index-generics-recursion-bug-issue-59502.rs b/src/test/rustdoc-ui/search-index-generics-recursion-bug-issue-59502.rs new file mode 100644 index 00000000000..ce51556dd41 --- /dev/null +++ b/src/test/rustdoc-ui/search-index-generics-recursion-bug-issue-59502.rs @@ -0,0 +1,11 @@ +// check-pass + +// Minimization of issue #59502 + +trait MyTrait<T> { + type Output; +} + +pub fn pow<T: MyTrait<T, Output = T>>(arg: T) -> T { + arg +} |
