mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
remove rustc-serialize dependency and factor util::cargo
out into a crate
This commit is contained in:
parent
bc497a6262
commit
26e8558d8a
@ -32,14 +32,15 @@ test = false
|
|||||||
# begin automatic update
|
# begin automatic update
|
||||||
clippy_lints = { version = "0.0.111", path = "clippy_lints" }
|
clippy_lints = { version = "0.0.111", path = "clippy_lints" }
|
||||||
# end automatic update
|
# end automatic update
|
||||||
|
cargo_metadata = "0.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
compiletest_rs = "0.2.5"
|
compiletest_rs = "0.2.5"
|
||||||
lazy_static = "0.1.15"
|
lazy_static = "0.1.15"
|
||||||
regex = "0.2"
|
regex = "0.2"
|
||||||
rustc-serialize = "0.3"
|
serde_derive = "0.9.0-rc3"
|
||||||
clippy-mini-macro-test = { version = "0.1", path = "mini-macro" }
|
clippy-mini-macro-test = { version = "0.1", path = "mini-macro" }
|
||||||
serde = "0.7"
|
serde = "0.9.0-rc3"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
debugging = []
|
debugging = []
|
||||||
|
@ -22,7 +22,6 @@ semver = "0.2.1"
|
|||||||
toml = "0.2"
|
toml = "0.2"
|
||||||
unicode-normalization = "0.1"
|
unicode-normalization = "0.1"
|
||||||
quine-mc_cluskey = "0.2.2"
|
quine-mc_cluskey = "0.2.2"
|
||||||
rustc-serialize = "0.3"
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
debugging = []
|
debugging = []
|
||||||
|
@ -38,8 +38,6 @@ extern crate regex_syntax;
|
|||||||
// for finding minimal boolean expressions
|
// for finding minimal boolean expressions
|
||||||
extern crate quine_mc_cluskey;
|
extern crate quine_mc_cluskey;
|
||||||
|
|
||||||
extern crate rustc_serialize;
|
|
||||||
|
|
||||||
extern crate rustc_errors;
|
extern crate rustc_errors;
|
||||||
extern crate rustc_plugin;
|
extern crate rustc_plugin;
|
||||||
extern crate rustc_const_eval;
|
extern crate rustc_const_eval;
|
||||||
|
@ -1,77 +0,0 @@
|
|||||||
use std::collections::HashMap;
|
|
||||||
use std::process::Command;
|
|
||||||
use std::str::{from_utf8, Utf8Error};
|
|
||||||
use std::io;
|
|
||||||
use rustc_serialize::json;
|
|
||||||
|
|
||||||
#[derive(RustcDecodable, Debug)]
|
|
||||||
pub struct Metadata {
|
|
||||||
pub packages: Vec<Package>,
|
|
||||||
resolve: Option<()>,
|
|
||||||
pub version: usize,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(RustcDecodable, Debug)]
|
|
||||||
pub struct Package {
|
|
||||||
pub name: String,
|
|
||||||
pub version: String,
|
|
||||||
id: String,
|
|
||||||
source: Option<String>,
|
|
||||||
pub dependencies: Vec<Dependency>,
|
|
||||||
pub targets: Vec<Target>,
|
|
||||||
features: HashMap<String, Vec<String>>,
|
|
||||||
pub manifest_path: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(RustcDecodable, Debug)]
|
|
||||||
pub struct Dependency {
|
|
||||||
pub name: String,
|
|
||||||
source: Option<String>,
|
|
||||||
pub req: String,
|
|
||||||
kind: Option<String>,
|
|
||||||
optional: bool,
|
|
||||||
uses_default_features: bool,
|
|
||||||
features: Vec<String>,
|
|
||||||
target: Option<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(RustcDecodable, Debug)]
|
|
||||||
pub struct Target {
|
|
||||||
pub name: String,
|
|
||||||
pub kind: Vec<String>,
|
|
||||||
src_path: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub enum Error {
|
|
||||||
Io(io::Error),
|
|
||||||
Utf8(Utf8Error),
|
|
||||||
Json(json::DecoderError),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<io::Error> for Error {
|
|
||||||
fn from(err: io::Error) -> Self {
|
|
||||||
Error::Io(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl From<Utf8Error> for Error {
|
|
||||||
fn from(err: Utf8Error) -> Self {
|
|
||||||
Error::Utf8(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl From<json::DecoderError> for Error {
|
|
||||||
fn from(err: json::DecoderError) -> Self {
|
|
||||||
Error::Json(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn metadata(manifest_path_arg: Option<&str>) -> Result<Metadata, Error> {
|
|
||||||
let mut cmd = Command::new("cargo");
|
|
||||||
cmd.arg("metadata").arg("--no-deps");
|
|
||||||
if let Some(mani) = manifest_path_arg {
|
|
||||||
cmd.arg(mani);
|
|
||||||
}
|
|
||||||
let output = cmd.output()?;
|
|
||||||
let stdout = from_utf8(&output.stdout)?;
|
|
||||||
Ok(json::decode(stdout)?)
|
|
||||||
}
|
|
@ -21,7 +21,6 @@ use syntax::errors::DiagnosticBuilder;
|
|||||||
use syntax::ptr::P;
|
use syntax::ptr::P;
|
||||||
use syntax::symbol::keywords;
|
use syntax::symbol::keywords;
|
||||||
|
|
||||||
pub mod cargo;
|
|
||||||
pub mod comparisons;
|
pub mod comparisons;
|
||||||
pub mod conf;
|
pub mod conf;
|
||||||
pub mod constants;
|
pub mod constants;
|
||||||
|
@ -21,7 +21,7 @@ use std::process::{self, Command};
|
|||||||
use syntax::ast;
|
use syntax::ast;
|
||||||
use std::io::{self, Write};
|
use std::io::{self, Write};
|
||||||
|
|
||||||
use clippy_lints::utils::cargo;
|
extern crate cargo_metadata;
|
||||||
|
|
||||||
struct ClippyCompilerCalls {
|
struct ClippyCompilerCalls {
|
||||||
default: RustcDefaultCalls,
|
default: RustcDefaultCalls,
|
||||||
@ -179,15 +179,13 @@ pub fn main() {
|
|||||||
|
|
||||||
let manifest_path_arg = std::env::args().skip(2).find(|val| val.starts_with("--manifest-path="));
|
let manifest_path_arg = std::env::args().skip(2).find(|val| val.starts_with("--manifest-path="));
|
||||||
|
|
||||||
let mut metadata = if let Ok(metadata) = cargo::metadata(manifest_path_arg.as_ref().map(AsRef::as_ref)) {
|
let mut metadata = if let Ok(metadata) = cargo_metadata::metadata(manifest_path_arg.as_ref().map(AsRef::as_ref)) {
|
||||||
metadata
|
metadata
|
||||||
} else {
|
} else {
|
||||||
let _ = io::stderr().write_fmt(format_args!("error: Could not obtain cargo metadata."));
|
let _ = io::stderr().write_fmt(format_args!("error: Could not obtain cargo metadata."));
|
||||||
process::exit(101);
|
process::exit(101);
|
||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(metadata.version, 1);
|
|
||||||
|
|
||||||
let manifest_path = manifest_path_arg.map(|arg| PathBuf::from(Path::new(&arg["--manifest-path=".len()..])));
|
let manifest_path = manifest_path_arg.map(|arg| PathBuf::from(Path::new(&arg["--manifest-path=".len()..])));
|
||||||
|
|
||||||
let current_dir = std::env::current_dir();
|
let current_dir = std::env::current_dir();
|
||||||
|
@ -9,14 +9,19 @@ struct A;
|
|||||||
|
|
||||||
impl serde::de::Visitor for A {
|
impl serde::de::Visitor for A {
|
||||||
type Value = ();
|
type Value = ();
|
||||||
fn visit_str<E>(&mut self, _v: &str) -> Result<Self::Value, E>
|
|
||||||
where E: serde::Error,
|
fn expecting(&self, _: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn visit_str<E>(self, _v: &str) -> Result<Self::Value, E>
|
||||||
|
where E: serde::de::Error,
|
||||||
{
|
{
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_string<E>(&mut self, _v: String) -> Result<Self::Value, E>
|
fn visit_string<E>(self, _v: String) -> Result<Self::Value, E>
|
||||||
where E: serde::Error,
|
where E: serde::de::Error,
|
||||||
{
|
{
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
@ -27,9 +32,13 @@ struct B;
|
|||||||
impl serde::de::Visitor for B {
|
impl serde::de::Visitor for B {
|
||||||
type Value = ();
|
type Value = ();
|
||||||
|
|
||||||
fn visit_string<E>(&mut self, _v: String) -> Result<Self::Value, E>
|
fn expecting(&self, _: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn visit_string<E>(self, _v: String) -> Result<Self::Value, E>
|
||||||
//~^ ERROR you should not implement `visit_string` without also implementing `visit_str`
|
//~^ ERROR you should not implement `visit_string` without also implementing `visit_str`
|
||||||
where E: serde::Error,
|
where E: serde::de::Error,
|
||||||
{
|
{
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#![feature(plugin)]
|
#![feature(plugin)]
|
||||||
#![plugin(clippy)]
|
#![plugin(clippy)]
|
||||||
|
|
||||||
extern crate rustc_serialize;
|
#[macro_use] extern crate serde_derive;
|
||||||
|
|
||||||
/// Test that we do not lint for unused underscores in a `MacroAttribute` expansion
|
/// Test that we do not lint for unused underscores in a `MacroAttribute` expansion
|
||||||
#[deny(used_underscore_binding)]
|
#[deny(used_underscore_binding)]
|
||||||
#[derive(RustcEncodable)]
|
#[derive(Deserialize)]
|
||||||
struct MacroAttributesTest {
|
struct MacroAttributesTest {
|
||||||
_foo: u32,
|
_foo: u32,
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
extern crate clippy_lints;
|
extern crate cargo_metadata;
|
||||||
use clippy_lints::utils::cargo;
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn check_that_clippy_lints_has_the_same_version_as_clippy() {
|
fn check_that_clippy_lints_has_the_same_version_as_clippy() {
|
||||||
let clippy_meta = cargo::metadata(None).expect("could not obtain cargo metadata");
|
let clippy_meta = cargo_metadata::metadata(None).expect("could not obtain cargo metadata");
|
||||||
std::env::set_current_dir(std::env::current_dir().unwrap().join("clippy_lints")).unwrap();
|
std::env::set_current_dir(std::env::current_dir().unwrap().join("clippy_lints")).unwrap();
|
||||||
let clippy_lints_meta = cargo::metadata(None).expect("could not obtain cargo metadata");
|
let clippy_lints_meta = cargo_metadata::metadata(None).expect("could not obtain cargo metadata");
|
||||||
assert_eq!(clippy_lints_meta.packages[0].version, clippy_meta.packages[0].version);
|
assert_eq!(clippy_lints_meta.packages[0].version, clippy_meta.packages[0].version);
|
||||||
for package in &clippy_meta.packages[0].dependencies {
|
for package in &clippy_meta.packages[0].dependencies {
|
||||||
if package.name == "clippy_lints" {
|
if package.name == "clippy_lints" {
|
||||||
|
Loading…
Reference in New Issue
Block a user