Skip to content

Commit 46804ef

Browse files
committed
Auto merge of #52257 - steveklabnik:refactor-rustdoc, r=QuietMisdreavus
Refactor rustdoc This is based on #52194 and so shouldn't be merged until it gets merged. Now that plugin functionality has been removed, let's kill PluginManager. Additionally, rustdoc now follows the standard cargo layout instead of dumping everything at the top level. r? @rust-lang/rustdoc
2 parents 487e961 + 0bf2a06 commit 46804ef

9 files changed

+16
-72
lines changed

src/librustdoc/lib.rs

+9-13
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ pub mod html {
9090
}
9191
pub mod markdown;
9292
pub mod passes;
93-
pub mod plugins;
9493
pub mod visit_ast;
9594
pub mod visit_lib;
9695
pub mod test;
@@ -750,25 +749,22 @@ where R: 'static + Send,
750749
eprintln!("WARNING: --plugin-path no longer functions; see CVE-2018-1000622");
751750
}
752751

753-
// Load all plugins/passes into a PluginManager
754-
let mut pm = plugins::PluginManager::new();
752+
info!("Executing passes");
753+
755754
for pass in &passes {
756-
let plugin = match passes::PASSES.iter()
757-
.position(|&(p, ..)| {
758-
p == *pass
759-
}) {
760-
Some(i) => passes::PASSES[i].1,
755+
// determine if we know about this pass
756+
let pass = match passes::PASSES.iter().find(|(p, ..)| p == pass) {
757+
Some(pass) => pass.1,
761758
None => {
762759
error!("unknown pass {}, skipping", *pass);
760+
763761
continue
764762
},
765763
};
766-
pm.add_plugin(plugin);
767-
}
768764

769-
// Run everything!
770-
info!("Executing passes/plugins");
771-
let krate = pm.run_plugins(krate);
765+
// run it
766+
krate = pass(krate);
767+
}
772768

773769
tx.send(f(Output { krate: krate, renderinfo: renderinfo, passes: passes })).unwrap();
774770
}));

src/librustdoc/passes/collapse_docs.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
// except according to those terms.
1010

1111
use clean::{self, DocFragment, Item};
12-
use plugins;
1312
use fold;
1413
use fold::DocFolder;
1514
use std::mem::replace;
@@ -31,7 +30,7 @@ impl DocFragment {
3130
}
3231
}
3332

34-
pub fn collapse_docs(krate: clean::Crate) -> plugins::PluginResult {
33+
pub fn collapse_docs(krate: clean::Crate) -> clean::Crate {
3534
Collapser.fold_crate(krate)
3635
}
3736

src/librustdoc/passes/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use std::mem;
1616
use clean::{self, GetDefId, Item};
1717
use fold;
1818
use fold::FoldItem::Strip;
19-
use plugins;
2019

2120
mod collapse_docs;
2221
pub use self::collapse_docs::collapse_docs;
@@ -37,7 +36,7 @@ mod propagate_doc_cfg;
3736
pub use self::propagate_doc_cfg::propagate_doc_cfg;
3837

3938
type Pass = (&'static str, // name
40-
fn(clean::Crate) -> plugins::PluginResult, // fn
39+
fn(clean::Crate) -> clean::Crate, // fn
4140
&'static str); // description
4241

4342
pub const PASSES: &'static [Pass] = &[

src/librustdoc/passes/propagate_doc_cfg.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@ use std::sync::Arc;
1313
use clean::{Crate, Item};
1414
use clean::cfg::Cfg;
1515
use fold::DocFolder;
16-
use plugins::PluginResult;
1716

18-
pub fn propagate_doc_cfg(cr: Crate) -> PluginResult {
17+
pub fn propagate_doc_cfg(cr: Crate) -> Crate {
1918
CfgPropagator { parent_cfg: None }.fold_crate(cr)
2019
}
2120

src/librustdoc/passes/strip_hidden.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@ use std::mem;
1313

1414
use clean::{self, AttributesExt, NestedAttributesExt};
1515
use clean::Item;
16-
use plugins;
1716
use fold;
1817
use fold::DocFolder;
1918
use fold::FoldItem::Strip;
2019
use passes::ImplStripper;
2120

2221
/// Strip items marked `#[doc(hidden)]`
23-
pub fn strip_hidden(krate: clean::Crate) -> plugins::PluginResult {
22+
pub fn strip_hidden(krate: clean::Crate) -> clean::Crate {
2423
let mut retained = DefIdSet();
2524

2625
// strip all #[doc(hidden)] items

src/librustdoc/passes/strip_priv_imports.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@
1010

1111
use clean;
1212
use fold::DocFolder;
13-
use plugins;
1413
use passes::ImportStripper;
1514

16-
pub fn strip_priv_imports(krate: clean::Crate) -> plugins::PluginResult {
15+
pub fn strip_priv_imports(krate: clean::Crate) -> clean::Crate {
1716
ImportStripper.fold_crate(krate)
1817
}

src/librustdoc/passes/strip_private.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111
use rustc::util::nodemap::DefIdSet;
1212

1313
use clean;
14-
use plugins;
1514
use fold::DocFolder;
1615
use passes::{ImplStripper, ImportStripper, Stripper};
1716

1817
/// Strip private items from the point of view of a crate or externally from a
1918
/// crate, specified by the `xcrate` flag.
20-
pub fn strip_private(mut krate: clean::Crate) -> plugins::PluginResult {
19+
pub fn strip_private(mut krate: clean::Crate) -> clean::Crate {
2120
// This stripper collects all *retained* nodes.
2221
let mut retained = DefIdSet();
2322
let access_levels = krate.access_levels.clone();

src/librustdoc/passes/unindent_comments.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ use std::string::String;
1313
use std::usize;
1414

1515
use clean::{self, DocFragment, Item};
16-
use plugins;
1716
use fold::{self, DocFolder};
1817

19-
pub fn unindent_comments(krate: clean::Crate) -> plugins::PluginResult {
18+
pub fn unindent_comments(krate: clean::Crate) -> clean::Crate {
2019
CommentCleaner.fold_crate(krate)
2120
}
2221

src/librustdoc/plugins.rs

-45
This file was deleted.

0 commit comments

Comments
 (0)