diff options
| author | Rune Tynan <runetynan@gmail.com> | 2022-01-26 19:53:14 -0500 |
|---|---|---|
| committer | Rune Tynan <runetynan@gmail.com> | 2022-01-26 19:53:14 -0500 |
| commit | 1c82e5ed9cd2611bf80d4de3cc7202258fe2edb9 (patch) | |
| tree | b843892b4b6af9466d67fe21be3acf76ab336e65 | |
| parent | 2f7b7d5f4a1cbe2d63eea95d0ef1af3c2b30fdd6 (diff) | |
| download | rust-1c82e5ed9cd2611bf80d4de3cc7202258fe2edb9.tar.gz rust-1c82e5ed9cd2611bf80d4de3cc7202258fe2edb9.zip | |
Convert empty tuple to DefaultReturn in ty path
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index f9b4d1435bd..be83338f675 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -895,8 +895,15 @@ fn clean_fn_decl_from_did_and_sig( ) -> FnDecl { let mut names = did.map_or(&[] as &[_], |did| cx.tcx.fn_arg_names(did)).iter(); + // We assume all empty tuples are default return type. This theoretically can discard `-> ()`, + // but shouldn't change any code meaning. + let output = match sig.skip_binder().output().clean(cx) { + Type::Tuple(inner) if inner.len() == 0 => DefaultReturn, + ty => Return(ty), + }; + FnDecl { - output: Return(sig.skip_binder().output().clean(cx)), + output, c_variadic: sig.skip_binder().c_variadic, inputs: Arguments { values: sig |
