Remove krate.version; fix crate_version in JSON

Previously, `JsonRenderer::after_krate` called `krate.version.clone()`.
The problem was it did that after the version was already moved into the
cache, so it would always be None. The fix was to get the version from
the cache instead.
This commit is contained in:
Joshua Nelson 2021-02-25 00:16:47 -05:00
parent 163b01aa14
commit be069a687a
5 changed files with 5 additions and 6 deletions

View File

@ -50,7 +50,6 @@ thread_local!(crate static MAX_DEF_IDX: RefCell<FxHashMap<CrateNum, DefIndex>> =
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
crate struct Crate { crate struct Crate {
crate name: Symbol, crate name: Symbol,
crate version: Option<String>,
crate src: FileName, crate src: FileName,
crate module: Option<Item>, crate module: Option<Item>,
crate externs: Vec<(CrateNum, ExternalCrate)>, crate externs: Vec<(CrateNum, ExternalCrate)>,

View File

@ -77,7 +77,6 @@ crate fn krate(cx: &mut DocContext<'_>) -> Crate {
Crate { Crate {
name, name,
version: None,
src, src,
module: Some(module), module: Some(module),
externs, externs,

View File

@ -144,7 +144,6 @@ impl Cache {
dst: &Path, dst: &Path,
) -> clean::Crate { ) -> clean::Crate {
// Crawl the crate to build various caches used for the output // Crawl the crate to build various caches used for the output
self.crate_version = krate.version.take();
debug!(?self.crate_version); debug!(?self.crate_version);
self.traits = krate.external_traits.take(); self.traits = krate.external_traits.take();
self.masked_crates = mem::take(&mut krate.masked_crates); self.masked_crates = mem::take(&mut krate.masked_crates);

View File

@ -199,7 +199,7 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
fn after_krate( fn after_krate(
&mut self, &mut self,
krate: &clean::Crate, _krate: &clean::Crate,
_diag: &rustc_errors::Handler, _diag: &rustc_errors::Handler,
) -> Result<(), Error> { ) -> Result<(), Error> {
debug!("Done with crate"); debug!("Done with crate");
@ -210,7 +210,7 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
#[allow(rustc::default_hash_types)] #[allow(rustc::default_hash_types)]
let output = types::Crate { let output = types::Crate {
root: types::Id(String::from("0:0")), root: types::Id(String::from("0:0")),
crate_version: krate.version.clone(), crate_version: self.cache.crate_version.clone(),
includes_private: self.cache.document_private, includes_private: self.cache.document_private,
index: index.into_iter().collect(), index: index.into_iter().collect(),
paths: self paths: self

View File

@ -1,6 +1,8 @@
// edition:2018 // edition:2018
// compile-flags: --crate-version 1.0.0
// @is nested.json "$.index[*][?(@.name=='nested')].kind" \"module\" // @is nested.json "$.crate_version" \"1.0.0\"
// @is - "$.index[*][?(@.name=='nested')].kind" \"module\"
// @is - "$.index[*][?(@.name=='nested')].inner.is_crate" true // @is - "$.index[*][?(@.name=='nested')].inner.is_crate" true
// @count - "$.index[*][?(@.name=='nested')].inner.items[*]" 1 // @count - "$.index[*][?(@.name=='nested')].inner.items[*]" 1