Auto merge of #12409 - Manishearth:clippy, r=nox

Update clippy, improve clippy integration

This makes it much easier to run rustfix on servo

(rustfix is still pretty buggy though)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12409)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-07-12 07:29:25 -07:00 committed by GitHub
commit 7492546095
12 changed files with 43 additions and 26 deletions

View file

@ -12,10 +12,10 @@ plugin = true
[dependencies] [dependencies]
tenacious = "0.2.0" tenacious = "0.2.0"
[dependencies.clippy] [dependencies.clippy_lints]
git = "https://github.com/Manishearth/rust-clippy" version = "0.0.77"
rev = "9dca15de3e8ea266d3e7e868c0f358ed4fa5f195"
optional = true optional = true
[features] [features]
default = [] default = []
clippy = ["clippy_lints"]

View file

@ -18,7 +18,7 @@
#![deny(unsafe_code)] #![deny(unsafe_code)]
#[cfg(feature = "clippy")] #[cfg(feature = "clippy")]
extern crate clippy; extern crate clippy_lints;
#[macro_use] #[macro_use]
extern crate rustc; extern crate rustc;
extern crate rustc_plugin; extern crate rustc_plugin;
@ -44,12 +44,14 @@ mod utils;
#[plugin_registrar] #[plugin_registrar]
pub fn plugin_registrar(reg: &mut Registry) { pub fn plugin_registrar(reg: &mut Registry) {
reg.register_syntax_extension(intern("dom_struct"), MultiModifier(box jstraceable::expand_dom_struct)); reg.register_syntax_extension(intern("dom_struct"), MultiModifier(box jstraceable::expand_dom_struct));
reg.register_syntax_extension(intern("derive_JSTraceable"), MultiDecorator(box jstraceable::expand_jstraceable)); reg.register_syntax_extension(intern("derive_JSTraceable"),
reg.register_syntax_extension(intern("_generate_reflector"), MultiDecorator(box reflector::expand_reflector)); MultiDecorator(box jstraceable::expand_jstraceable));
reg.register_late_lint_pass(box lints::transmute_type::TransmutePass); reg.register_syntax_extension(intern("_generate_reflector"),
MultiDecorator(box reflector::expand_reflector));
reg.register_late_lint_pass(box lints::unrooted_must_root::UnrootedPass::new()); reg.register_late_lint_pass(box lints::unrooted_must_root::UnrootedPass::new());
reg.register_late_lint_pass(box lints::privatize::PrivatizePass); reg.register_late_lint_pass(box lints::privatize::PrivatizePass);
reg.register_late_lint_pass(box lints::inheritance_integrity::InheritancePass); reg.register_late_lint_pass(box lints::inheritance_integrity::InheritancePass);
reg.register_late_lint_pass(box lints::transmute_type::TransmutePass);
reg.register_early_lint_pass(box lints::ban::BanPass); reg.register_early_lint_pass(box lints::ban::BanPass);
reg.register_late_lint_pass(box tenacious::TenaciousPass); reg.register_late_lint_pass(box tenacious::TenaciousPass);
reg.register_attribute("must_root".to_string(), Whitelisted); reg.register_attribute("must_root".to_string(), Whitelisted);
@ -60,7 +62,7 @@ pub fn plugin_registrar(reg: &mut Registry) {
#[cfg(feature = "clippy")] #[cfg(feature = "clippy")]
fn register_clippy(reg: &mut Registry) { fn register_clippy(reg: &mut Registry) {
::clippy::plugin_registrar(reg); ::clippy_lints::register_plugins(reg);
} }
#[cfg(not(feature = "clippy"))] #[cfg(not(feature = "clippy"))]
fn register_clippy(_reg: &mut Registry) { fn register_clippy(_reg: &mut Registry) {

View file

@ -2240,6 +2240,7 @@ dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2464,6 +2465,7 @@ dependencies = [
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)",

View file

@ -16,7 +16,7 @@ servo = ["serde", "serde/nightly", "serde_macros", "heapsize", "heapsize_plugin"
"style_traits/servo", "app_units/plugins", "euclid/plugins", "style_traits/servo", "app_units/plugins", "euclid/plugins",
"cssparser/heap_size", "cssparser/serde-serialization", "cssparser/heap_size", "cssparser/serde-serialization",
"selectors/heap_size", "selectors/unstable", "string_cache/heap_size", "selectors/heap_size", "selectors/unstable", "string_cache/heap_size",
"url/heap_size"] "url/heap_size", "plugins"]
[dependencies] [dependencies]
app_units = "0.2.5" app_units = "0.2.5"
@ -45,6 +45,7 @@ style_traits = {path = "../style_traits"}
time = "0.1" time = "0.1"
url = "1.0.0" url = "1.0.0"
util = {path = "../util"} util = {path = "../util"}
plugins = {path = "../plugins", optional = true}
[target.'cfg(windows)'.dependencies] [target.'cfg(windows)'.dependencies]
kernel32-sys = "0.2" kernel32-sys = "0.2"

View file

@ -490,7 +490,7 @@ pub fn parse_length(mut value: &str) -> LengthOrPercentageOrAuto {
} }
// Step 5 // Step 5
if value.starts_with("+") { if value.starts_with('+') {
value = &value[1..] value = &value[1..]
} }

View file

@ -194,7 +194,7 @@ fn parse_declaration_value_block(input: &mut Parser,
let token_slice = input.slice_from(token_start); let token_slice = input.slice_from(token_start);
if !token_slice.ends_with("*/") { if !token_slice.ends_with("*/") {
missing_closing_characters.push_str( missing_closing_characters.push_str(
if token_slice.ends_with("*") { "/" } else { "*/" }) if token_slice.ends_with('*') { "/" } else { "*/" })
} }
token.serialization_type() token.serialization_type()
} }

View file

@ -27,6 +27,7 @@
#![cfg_attr(feature = "servo", feature(custom_derive))] #![cfg_attr(feature = "servo", feature(custom_derive))]
#![cfg_attr(feature = "servo", feature(plugin))] #![cfg_attr(feature = "servo", feature(plugin))]
#![cfg_attr(feature = "servo", plugin(heapsize_plugin))] #![cfg_attr(feature = "servo", plugin(heapsize_plugin))]
#![cfg_attr(feature = "servo", plugin(plugins))]
#![cfg_attr(feature = "servo", plugin(serde_macros))] #![cfg_attr(feature = "servo", plugin(serde_macros))]
#![deny(unsafe_code)] #![deny(unsafe_code)]

View file

@ -602,17 +602,14 @@ pub trait ElementMatchMethods : TElement
} }
for (i, &(ref candidate, ())) in style_sharing_candidate_cache.iter().enumerate() { for (i, &(ref candidate, ())) in style_sharing_candidate_cache.iter().enumerate() {
match self.share_style_with_candidate_if_possible(parent.clone(), candidate) { if let Some(shared_style) = self.share_style_with_candidate_if_possible(parent.clone(), candidate) {
Some(shared_style) => { // Yay, cache hit. Share the style.
// Yay, cache hit. Share the style. let node = self.as_node();
let node = self.as_node(); let style = &mut node.mutate_data().unwrap().style;
let style = &mut node.mutate_data().unwrap().style; let damage = <<Self as TElement>::ConcreteNode as TNode>
let damage = <<Self as TElement>::ConcreteNode as TNode> ::ConcreteRestyleDamage::compute((*style).as_ref(), &*shared_style);
::ConcreteRestyleDamage::compute((*style).as_ref(), &*shared_style); *style = Some(shared_style);
*style = Some(shared_style); return StyleSharingResult::StyleWasShared(i, damage)
return StyleSharingResult::StyleWasShared(i, damage)
}
None => {}
} }
} }

View file

@ -11,7 +11,7 @@ path = "lib.rs"
[features] [features]
# servo as opposed to geckolib # servo as opposed to geckolib
servo = ["serde", "serde_macros", "backtrace", "ipc-channel", "app_units/plugins", servo = ["serde", "serde_macros", "backtrace", "ipc-channel", "app_units/plugins",
"euclid/plugins", "euclid/unstable", "url/heap_size", "url/serde"] "euclid/plugins", "euclid/unstable", "url/heap_size", "url/serde", "plugins"]
[dependencies] [dependencies]
app_units = "0.2.5" app_units = "0.2.5"
@ -28,6 +28,7 @@ rustc-serialize = "0.3"
serde = {version = "0.7.11", optional = true} serde = {version = "0.7.11", optional = true}
serde_macros = {version = "0.7.11", optional = true} serde_macros = {version = "0.7.11", optional = true}
url = "1.0.0" url = "1.0.0"
plugins = {path = "../plugins", optional = true}
[target.'cfg(all(unix, not(target_os = "macos"), not(target_os = "ios"), not(target_os = "android")))'.dependencies] [target.'cfg(all(unix, not(target_os = "macos"), not(target_os = "ios"), not(target_os = "android")))'.dependencies]
xdg = "2.0" xdg = "2.0"

View file

@ -7,6 +7,7 @@
#![cfg_attr(feature = "servo", feature(plugin))] #![cfg_attr(feature = "servo", feature(plugin))]
#![cfg_attr(feature = "servo", feature(reflect_marker))] #![cfg_attr(feature = "servo", feature(reflect_marker))]
#![cfg_attr(feature = "servo", plugin(serde_macros))] #![cfg_attr(feature = "servo", plugin(serde_macros))]
#![cfg_attr(feature = "servo", plugin(plugins))]
#![deny(unsafe_code)] #![deny(unsafe_code)]

2
ports/cef/Cargo.lock generated
View file

@ -2125,6 +2125,7 @@ dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2333,6 +2334,7 @@ dependencies = [
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)",

View file

@ -94,11 +94,21 @@ class MachCommands(CommandBase):
@Command('clippy', @Command('clippy',
description='Run Clippy', description='Run Clippy',
category='devenv') category='devenv')
def clippy(self): @CommandArgument(
features = "--features=script/plugins/clippy" '--package', '-p', default=None,
help='Updates the selected package')
@CommandArgument(
'--json', '-j', action="store_true",
help='Outputs')
def clippy(self, package=None, json=False):
params = ["--features=script/plugins/clippy"]
if package:
params += ["-p", package]
if json:
params += ["--", "-Zunstable-options", "--error-format", "json"]
with cd(path.join(self.context.topdir, "components", "servo")): with cd(path.join(self.context.topdir, "components", "servo")):
return subprocess.call(["cargo", "build", features], return subprocess.call(["cargo", "rustc", "-v"] + params,
env=self.build_env()) env=self.build_env())
@Command('rustc', @Command('rustc',