aboutsummaryrefslogtreecommitdiffstats
path: root/components/plugins/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/plugins/lib.rs')
-rw-r--r--components/plugins/lib.rs47
1 files changed, 5 insertions, 42 deletions
diff --git a/components/plugins/lib.rs b/components/plugins/lib.rs
index 03585ae3718..d3e54a21a4d 100644
--- a/components/plugins/lib.rs
+++ b/components/plugins/lib.rs
@@ -2,58 +2,21 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-//! Servo's compiler plugin/macro crate
-//!
-//! Attributes this crate provides:
-//!
-//! - `#[derive(DenyPublicFields)]` : Forces all fields in a struct/enum to be private
-//! - `#[derive(JSTraceable)]` : Auto-derives an implementation of `JSTraceable` for a struct in the script crate
-//! - `#[must_root]` : Prevents data of the marked type from being used on the stack.
-//! See the lints module for more details
-//! - `#[dom_struct]` : Implies #[derive(JSTraceable, DenyPublicFields)]`, and `#[must_root]`.
-//! Use this for structs that correspond to a DOM type
-
-
-#![feature(box_syntax, plugin, plugin_registrar, quote, rustc_private, slice_patterns)]
+//! Exists only to hook into clippy.
+#![cfg_attr(feature = "clippy", feature(plugin, plugin_registrar, rustc_private))]
#![deny(unsafe_code)]
#[cfg(feature = "clippy")]
extern crate clippy_lints;
-#[macro_use]
-extern crate rustc;
+#[cfg(feature = "clippy")]
extern crate rustc_plugin;
-extern crate syntax;
+#[cfg(feature = "clippy")]
use rustc_plugin::Registry;
-use syntax::ext::base::*;
-use syntax::feature_gate::AttributeType::Whitelisted;
-use syntax::symbol::Symbol;
-
-// Public for documentation to show up
-/// Handles the auto-deriving for `#[derive(JSTraceable)]`
-pub mod jstraceable;
-pub mod lints;
-/// Utilities for writing plugins
-mod utils;
+#[cfg(feature = "clippy")]
#[plugin_registrar]
pub fn plugin_registrar(reg: &mut Registry) {
- reg.register_syntax_extension(
- Symbol::intern("dom_struct"),
- MultiModifier(box jstraceable::expand_dom_struct));
-
- reg.register_late_lint_pass(box lints::unrooted_must_root::UnrootedPass::new());
- reg.register_early_lint_pass(box lints::ban::BanPass);
- reg.register_attribute("allow_unrooted_interior".to_string(), Whitelisted);
- reg.register_attribute("must_root".to_string(), Whitelisted);
- register_clippy(reg);
-}
-
-#[cfg(feature = "clippy")]
-fn register_clippy(reg: &mut Registry) {
::clippy_lints::register_plugins(reg);
}
-#[cfg(not(feature = "clippy"))]
-fn register_clippy(_reg: &mut Registry) {
-}