about summary refs log tree commit diff
path: root/src/librustdoc/json
diff options
context:
space:
mode:
authorNoah Lev <camelidcamel@gmail.com>2021-11-07 08:52:28 -0800
committerNoah Lev <camelidcamel@gmail.com>2021-11-07 08:52:28 -0800
commit543aea6c03fde24aa35f2bfbff7915868d074bca (patch)
treee3520d47b3cfc978fc0c8ae1bd43b520eaba701c /src/librustdoc/json
parent7b7023cb723775fa20bda42e97dbc44abe7ecb0c (diff)
downloadrust-543aea6c03fde24aa35f2bfbff7915868d074bca.tar.gz
rust-543aea6c03fde24aa35f2bfbff7915868d074bca.zip
Use an enum to record polarity in `clean::Impl`
Diffstat (limited to 'src/librustdoc/json')
-rw-r--r--src/librustdoc/json/conversions.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs
index 94069b99c7d..8dc7a33cb13 100644
--- a/src/librustdoc/json/conversions.rs
+++ b/src/librustdoc/json/conversions.rs
@@ -500,8 +500,7 @@ impl FromWithTcx<clean::Trait> for Trait {
 impl FromWithTcx<clean::Impl> for Impl {
     fn from_tcx(impl_: clean::Impl, tcx: TyCtxt<'_>) -> Self {
         let provided_trait_methods = impl_.provided_trait_methods(tcx);
-        let clean::Impl { unsafety, generics, trait_, for_, items, negative_polarity, kind } =
-            impl_;
+        let clean::Impl { unsafety, generics, trait_, for_, items, polarity, kind } = impl_;
         // FIXME: should `trait_` be a clean::Path equivalent in JSON?
         let trait_ = trait_.map(|path| {
             let did = path.def_id();
@@ -513,6 +512,10 @@ impl FromWithTcx<clean::Impl> for Impl {
             clean::ImplKind::Auto => (true, None),
             clean::ImplKind::Blanket(ty) => (false, Some(*ty)),
         };
+        let negative_polarity = match polarity {
+            clean::ImplPolarity::Positive => false,
+            clean::ImplPolarity::Negative => true,
+        };
         Impl {
             is_unsafe: unsafety == rustc_hir::Unsafety::Unsafe,
             generics: generics.into_tcx(tcx),