]> git.lizzy.rs Git - rust.git/commitdiff
remove pluginmanager
authorsteveklabnik <steve@steveklabnik.com>
Wed, 11 Jul 2018 13:08:27 +0000 (09:08 -0400)
committersteveklabnik <steve@steveklabnik.com>
Tue, 24 Jul 2018 20:44:52 +0000 (16:44 -0400)
src/librustdoc/lib.rs
src/librustdoc/passes/collapse_docs.rs
src/librustdoc/passes/mod.rs
src/librustdoc/passes/propagate_doc_cfg.rs
src/librustdoc/passes/strip_hidden.rs
src/librustdoc/passes/strip_priv_imports.rs
src/librustdoc/passes/strip_private.rs
src/librustdoc/passes/unindent_comments.rs
src/librustdoc/plugins.rs [deleted file]

index ae64c6f1bfd7fb3f47ee6e2fe8d0cdebc86eb3ed..be7ab8804b09156ec5891b82f7a4cbd19a77707f 100644 (file)
@@ -90,7 +90,6 @@ pub mod html {
 }
 pub mod markdown;
 pub mod passes;
-pub mod plugins;
 pub mod visit_ast;
 pub mod visit_lib;
 pub mod test;
@@ -750,25 +749,27 @@ fn report_deprecated_attr(name: &str, diag: &errors::Handler) {
             eprintln!("WARNING: --plugin-path no longer functions; see CVE-2018-1000622");
         }
 
-        // Load all plugins/passes into a PluginManager
-        let mut pm = plugins::PluginManager::new();
+        info!("Executing passes");
+
         for pass in &passes {
-            let plugin = match passes::PASSES.iter()
+            // determine if we know about this pass
+            let pass = match passes::PASSES.iter().find(|(p, ..)| p == pass) {
+            /*
                                              .position(|&(p, ..)| {
                                                  p == *pass
                                              }) {
-                Some(i) => passes::PASSES[i].1,
+                                                 */
+                Some(pass) => pass.1,
                 None => {
                     error!("unknown pass {}, skipping", *pass);
+
                     continue
                 },
             };
-            pm.add_plugin(plugin);
-        }
 
-        // Run everything!
-        info!("Executing passes/plugins");
-        let krate = pm.run_plugins(krate);
+            // run it
+            krate = pass(krate);
+        }
 
         tx.send(f(Output { krate: krate, renderinfo: renderinfo, passes: passes })).unwrap();
     }));
index a2d651d29de93362e00aee7d4857537d4ac5ff1e..6f70fcf1099e634dbecc643b5b14c8e756db6487 100644 (file)
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 use clean::{self, DocFragment, Item};
-use plugins;
 use fold;
 use fold::DocFolder;
 use std::mem::replace;
@@ -31,7 +30,7 @@ fn kind(&self) -> DocFragmentKind {
     }
 }
 
-pub fn collapse_docs(krate: clean::Crate) -> plugins::PluginResult {
+pub fn collapse_docs(krate: clean::Crate) -> clean::Crate {
     Collapser.fold_crate(krate)
 }
 
index 699ee25436a10ea784abe8791ab1d17980b3adb5..63b74ceafacb466cde15c71ece1e74c6eef4754e 100644 (file)
@@ -16,7 +16,6 @@
 use clean::{self, GetDefId, Item};
 use fold;
 use fold::FoldItem::Strip;
-use plugins;
 
 mod collapse_docs;
 pub use self::collapse_docs::collapse_docs;
@@ -37,7 +36,7 @@
 pub use self::propagate_doc_cfg::propagate_doc_cfg;
 
 type Pass = (&'static str,                                      // name
-             fn(clean::Crate) -> plugins::PluginResult,         // fn
+             fn(clean::Crate) -> clean::Crate,                  // fn
              &'static str);                                     // description
 
 pub const PASSES: &'static [Pass] = &[
index fc8abafd4d89b549cb71e4b139f1a8532abec4d0..572a8d3f470f2ac24ad038d5b9e2a94c4154786d 100644 (file)
@@ -13,9 +13,8 @@
 use clean::{Crate, Item};
 use clean::cfg::Cfg;
 use fold::DocFolder;
-use plugins::PluginResult;
 
-pub fn propagate_doc_cfg(cr: Crate) -> PluginResult {
+pub fn propagate_doc_cfg(cr: Crate) -> Crate {
     CfgPropagator { parent_cfg: None }.fold_crate(cr)
 }
 
index 68c1231fc6f7c58e7266ee3e3c52708fa36e7b68..b1545233f8a2b52f4fc0d039ddef8d3816b496b9 100644 (file)
 
 use clean::{self, AttributesExt, NestedAttributesExt};
 use clean::Item;
-use plugins;
 use fold;
 use fold::DocFolder;
 use fold::FoldItem::Strip;
 use passes::ImplStripper;
 
 /// Strip items marked `#[doc(hidden)]`
-pub fn strip_hidden(krate: clean::Crate) -> plugins::PluginResult {
+pub fn strip_hidden(krate: clean::Crate) -> clean::Crate {
     let mut retained = DefIdSet();
 
     // strip all #[doc(hidden)] items
index 91f8be43c281a629de133d6de245e973fc35191c..c4640839923bdc2d781decc786d16a48f8c2bd1d 100644 (file)
@@ -10,9 +10,8 @@
 
 use clean;
 use fold::DocFolder;
-use plugins;
 use passes::ImportStripper;
 
-pub fn strip_priv_imports(krate: clean::Crate)  -> plugins::PluginResult {
+pub fn strip_priv_imports(krate: clean::Crate)  -> clean::Crate {
     ImportStripper.fold_crate(krate)
 }
index acd735739e4887520b3c36a605f487239d6a7de8..45f706590e32e558d6a9af4d001b60402ff75339 100644 (file)
 use rustc::util::nodemap::DefIdSet;
 
 use clean;
-use plugins;
 use fold::DocFolder;
 use passes::{ImplStripper, ImportStripper, Stripper};
 
 /// Strip private items from the point of view of a crate or externally from a
 /// crate, specified by the `xcrate` flag.
-pub fn strip_private(mut krate: clean::Crate) -> plugins::PluginResult {
+pub fn strip_private(mut krate: clean::Crate) -> clean::Crate {
     // This stripper collects all *retained* nodes.
     let mut retained = DefIdSet();
     let access_levels = krate.access_levels.clone();
index 912c7646a06e58414fc5f0784856b99f7393b325..2510ec011b64ca499227e915100e538489fb1fd3 100644 (file)
 use std::usize;
 
 use clean::{self, DocFragment, Item};
-use plugins;
 use fold::{self, DocFolder};
 
-pub fn unindent_comments(krate: clean::Crate) -> plugins::PluginResult {
+pub fn unindent_comments(krate: clean::Crate) -> clean::Crate {
     CommentCleaner.fold_crate(krate)
 }
 
diff --git a/src/librustdoc/plugins.rs b/src/librustdoc/plugins.rs
deleted file mode 100644 (file)
index 261ff72..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![allow(deprecated)]
-
-use clean;
-
-pub type PluginResult = clean::Crate;
-pub type PluginCallback = fn (clean::Crate) -> PluginResult;
-
-/// Manages loading and running of plugins
-pub struct PluginManager {
-    callbacks: Vec<PluginCallback> ,
-}
-
-impl PluginManager {
-    /// Create a new plugin manager
-    pub fn new() -> PluginManager {
-        PluginManager {
-            callbacks: Vec::new(),
-        }
-    }
-
-    /// Load a normal Rust function as a plugin.
-    ///
-    /// This is to run passes over the cleaned crate. Plugins run this way
-    /// correspond to the A-aux tag on Github.
-    pub fn add_plugin(&mut self, plugin: PluginCallback) {
-        self.callbacks.push(plugin);
-    }
-    /// Run all the loaded plugins over the crate, returning their results
-    pub fn run_plugins(&self, mut krate: clean::Crate) -> clean::Crate {
-        for &callback in &self.callbacks {
-            krate = callback(krate);
-        }
-        krate
-    }
-}