diff options
| author | Martin Nordholts <enselic@gmail.com> | 2022-06-29 20:34:56 +0200 |
|---|---|---|
| committer | Martin Nordholts <enselic@gmail.com> | 2022-06-29 21:05:51 +0200 |
| commit | ba87c934ea86476bbd75909eb18cbf7627c12c81 (patch) | |
| tree | 0a6e3159ab00c15cdb5d386d552aa47b4cb366e3 | |
| parent | 116edb6800ea1d6615578e7f65366ae65364b3d8 (diff) | |
| download | rust-ba87c934ea86476bbd75909eb18cbf7627c12c81.tar.gz rust-ba87c934ea86476bbd75909eb18cbf7627c12c81.zip | |
rustdoc-json: Make default value of blanket impl assoc types work
| -rw-r--r-- | src/librustdoc/json/conversions.rs | 2 | ||||
| -rw-r--r-- | src/test/rustdoc-json/blanket_impls.rs | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs index afc84cc0a97..316554808c2 100644 --- a/src/librustdoc/json/conversions.rs +++ b/src/librustdoc/json/conversions.rs @@ -255,7 +255,7 @@ fn from_clean_item(item: clean::Item, tcx: TyCtxt<'_>) -> ItemEnum { AssocTypeItem(t, b) => ItemEnum::AssocType { generics: t.generics.into_tcx(tcx), bounds: b.into_iter().map(|x| x.into_tcx(tcx)).collect(), - default: t.item_type.map(|ty| ty.into_tcx(tcx)), + default: Some(t.item_type.unwrap_or(t.type_).into_tcx(tcx)), }, // `convert_item` early returns `None` for striped items and keywords. StrippedItem(_) | KeywordItem(_) => unreachable!(), diff --git a/src/test/rustdoc-json/blanket_impls.rs b/src/test/rustdoc-json/blanket_impls.rs new file mode 100644 index 00000000000..edf1a9fe2fc --- /dev/null +++ b/src/test/rustdoc-json/blanket_impls.rs @@ -0,0 +1,9 @@ +// Regression test for <https://github.com/rust-lang/rust/issues/98658> + +#![no_std] + +// @has blanket_impls.json +// @has - "$.index[*][?(@.name=='Error')].kind" \"assoc_type\" +// @has - "$.index[*][?(@.name=='Error')].inner.default.kind" \"resolved_path\" +// @has - "$.index[*][?(@.name=='Error')].inner.default.inner.name" \"Infallible\" +pub struct ForBlanketTryFromImpl; |
