about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/etc/check_missing_items.py4
-rw-r--r--src/librustdoc/json/conversions.rs11
-rw-r--r--src/librustdoc/json/mod.rs2
-rw-r--r--src/rustdoc-json-types/lib.rs23
-rw-r--r--src/test/rustdoc-json/generic-associated-types/gats.rs6
-rw-r--r--src/test/rustdoc-json/traits/implementors.rs19
6 files changed, 49 insertions, 16 deletions
diff --git a/src/etc/check_missing_items.py b/src/etc/check_missing_items.py
index de1717b3f3f..89696f39262 100644
--- a/src/etc/check_missing_items.py
+++ b/src/etc/check_missing_items.py
@@ -31,7 +31,7 @@ def check_generics(generics):
     for where_predicate in generics["where_predicates"]:
         if "bound_predicate" in where_predicate:
             pred = where_predicate["bound_predicate"]
-            check_type(pred["ty"])
+            check_type(pred["type"])
             for bound in pred["bounds"]:
                 check_generic_bound(bound)
         elif "region_predicate" in where_predicate:
@@ -171,7 +171,7 @@ while work_list:
         for bound in item["inner"]["bounds"]:
             check_generic_bound(bound)
         work_list |= (
-            set(item["inner"]["items"]) | set(item["inner"]["implementors"])
+            set(item["inner"]["items"]) | set(item["inner"]["implementations"])
         ) - visited
     elif item["kind"] == "impl":
         check_generics(item["inner"]["generics"])
diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs
index 7ffcfada5c0..7cf5d02f9f8 100644
--- a/src/librustdoc/json/conversions.rs
+++ b/src/librustdoc/json/conversions.rs
@@ -345,9 +345,10 @@ impl FromWithTcx<clean::GenericParamDefKind> for GenericParamDefKind {
                 default: default.map(|x| (*x).into_tcx(tcx)),
                 synthetic,
             },
-            Const { did: _, ty, default } => {
-                GenericParamDefKind::Const { ty: (*ty).into_tcx(tcx), default: default.map(|x| *x) }
-            }
+            Const { did: _, ty, default } => GenericParamDefKind::Const {
+                type_: (*ty).into_tcx(tcx),
+                default: default.map(|x| *x),
+            },
         }
     }
 }
@@ -357,7 +358,7 @@ impl FromWithTcx<clean::WherePredicate> for WherePredicate {
         use clean::WherePredicate::*;
         match predicate {
             BoundPredicate { ty, bounds, .. } => WherePredicate::BoundPredicate {
-                ty: ty.into_tcx(tcx),
+                type_: ty.into_tcx(tcx),
                 bounds: bounds.into_iter().map(|x| x.into_tcx(tcx)).collect(),
                 // FIXME: add `bound_params` to rustdoc-json-params?
             },
@@ -516,7 +517,7 @@ impl FromWithTcx<clean::Trait> for Trait {
             items: ids(items),
             generics: generics.into_tcx(tcx),
             bounds: bounds.into_iter().map(|x| x.into_tcx(tcx)).collect(),
-            implementors: Vec::new(), // Added in JsonRenderer::item
+            implementations: Vec::new(), // Added in JsonRenderer::item
         }
     }
 }
diff --git a/src/librustdoc/json/mod.rs b/src/librustdoc/json/mod.rs
index 52980e07b8c..126c5d89ca9 100644
--- a/src/librustdoc/json/mod.rs
+++ b/src/librustdoc/json/mod.rs
@@ -179,7 +179,7 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
         let id = item.def_id;
         if let Some(mut new_item) = self.convert_item(item) {
             if let types::ItemEnum::Trait(ref mut t) = new_item.inner {
-                t.implementors = self.get_trait_implementors(id.expect_def_id())
+                t.implementations = self.get_trait_implementors(id.expect_def_id())
             } else if let types::ItemEnum::Struct(ref mut s) = new_item.inner {
                 s.impls = self.get_impls(id.expect_def_id())
             } else if let types::ItemEnum::Enum(ref mut e) = new_item.inner {
diff --git a/src/rustdoc-json-types/lib.rs b/src/rustdoc-json-types/lib.rs
index 7df880a4ed8..17b3859a77b 100644
--- a/src/rustdoc-json-types/lib.rs
+++ b/src/rustdoc-json-types/lib.rs
@@ -9,7 +9,7 @@ use std::path::PathBuf;
 use serde::{Deserialize, Serialize};
 
 /// rustdoc format-version.
-pub const FORMAT_VERSION: u32 = 13;
+pub const FORMAT_VERSION: u32 = 14;
 
 /// A `Crate` is the root of the emitted JSON blob. It contains all type/documentation information
 /// about the language items in the local crate, as well as info about external items to allow
@@ -378,7 +378,8 @@ pub enum GenericParamDefKind {
         synthetic: bool,
     },
     Const {
-        ty: Type,
+        #[serde(rename = "type")]
+        type_: Type,
         default: Option<String>,
     },
 }
@@ -386,9 +387,19 @@ pub enum GenericParamDefKind {
 #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
 #[serde(rename_all = "snake_case")]
 pub enum WherePredicate {
-    BoundPredicate { ty: Type, bounds: Vec<GenericBound> },
-    RegionPredicate { lifetime: String, bounds: Vec<GenericBound> },
-    EqPredicate { lhs: Type, rhs: Term },
+    BoundPredicate {
+        #[serde(rename = "type")]
+        type_: Type,
+        bounds: Vec<GenericBound>,
+    },
+    RegionPredicate {
+        lifetime: String,
+        bounds: Vec<GenericBound>,
+    },
+    EqPredicate {
+        lhs: Type,
+        rhs: Term,
+    },
 }
 
 #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
@@ -494,7 +505,7 @@ pub struct Trait {
     pub items: Vec<Id>,
     pub generics: Generics,
     pub bounds: Vec<GenericBound>,
-    pub implementors: Vec<Id>,
+    pub implementations: Vec<Id>,
 }
 
 #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
diff --git a/src/test/rustdoc-json/generic-associated-types/gats.rs b/src/test/rustdoc-json/generic-associated-types/gats.rs
index 7adcd712ba6..368ff8d8da0 100644
--- a/src/test/rustdoc-json/generic-associated-types/gats.rs
+++ b/src/test/rustdoc-json/generic-associated-types/gats.rs
@@ -13,10 +13,12 @@ pub trait LendingIterator {
     // @count - "$.index[*][?(@.name=='LendingItem')].inner.generics.params[*]" 1
     // @is - "$.index[*][?(@.name=='LendingItem')].inner.generics.params[*].name" \"\'a\"
     // @count - "$.index[*][?(@.name=='LendingItem')].inner.generics.where_predicates[*]" 1
-    // @is - "$.index[*][?(@.name=='LendingItem')].inner.generics.where_predicates[*].bound_predicate.ty.inner" \"Self\"
+    // @is - "$.index[*][?(@.name=='LendingItem')].inner.generics.where_predicates[*].bound_predicate.type.inner" \"Self\"
     // @is - "$.index[*][?(@.name=='LendingItem')].inner.generics.where_predicates[*].bound_predicate.bounds[*].outlives" \"\'a\"
     // @count - "$.index[*][?(@.name=='LendingItem')].inner.bounds[*]" 1
-    type LendingItem<'a>: Display where Self: 'a;
+    type LendingItem<'a>: Display
+    where
+        Self: 'a;
 
     // @is - "$.index[*][?(@.name=='lending_next')].inner.decl.output.kind" \"qualified_path\"
     // @count - "$.index[*][?(@.name=='lending_next')].inner.decl.output.inner.args.angle_bracketed.args[*]" 1
diff --git a/src/test/rustdoc-json/traits/implementors.rs b/src/test/rustdoc-json/traits/implementors.rs
new file mode 100644
index 00000000000..f7f03d98720
--- /dev/null
+++ b/src/test/rustdoc-json/traits/implementors.rs
@@ -0,0 +1,19 @@
+#![feature(no_core)]
+#![no_core]
+
+// @set wham = implementors.json "$.index[*][?(@.name=='Wham')].id"
+// @count - "$.index[*][?(@.name=='Wham')].inner.implementations[*]" 1
+// @set gmWham = - "$.index[*][?(@.name=='Wham')].inner.implementations[0]"
+pub trait Wham {}
+
+// @count - "$.index[*][?(@.name=='GeorgeMichael')].inner.impls[*]" 1
+// @is - "$.index[*][?(@.name=='GeorgeMichael')].inner.impls[0]" $gmWham
+// @set gm = - "$.index[*][?(@.name=='Wham')].id"
+
+// jsonpath_lib isnt expressive enough (for now) to get the "impl" item, so we
+// just check it isn't pointing to the type, but when you port to jsondocck-ng
+// check what the impl item is
+// @!is - "$.index[*][?(@.name=='Wham')].inner.implementations[0]" $gm
+pub struct GeorgeMichael {}
+
+impl Wham for GeorgeMichael {}