From bf707acbc390d4fffeca5e2d656670cf703a778e Mon Sep 17 00:00:00 2001 From: Victor Porof Date: Wed, 22 Feb 2017 18:11:05 +0100 Subject: [PATCH] Lint for the clippy gods in the edn crate (#340) Signed-off-by: Victor Porof --- edn/src/pretty_print.rs | 28 +++++++++++++--------------- edn/src/types.rs | 12 ++++++------ edn/tests/tests.rs | 1 + 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/edn/src/pretty_print.rs b/edn/src/pretty_print.rs index de69a58f..949e158b 100644 --- a/edn/src/pretty_print.rs +++ b/edn/src/pretty_print.rs @@ -38,12 +38,10 @@ impl Value { /// 2, /// 3]. fn bracket<'a, A, T, I>(&'a self, allocator: &'a A, open: T, vs: I, close: T) -> pretty::DocBuilder<'a, A> - where A: pretty::DocAllocator<'a>, T: Into>, - I: IntoIterator, - { + where A: pretty::DocAllocator<'a>, T: Into>, I: IntoIterator { let open = open.into(); let n = open.len(); - let i = vs.into_iter().map(|ref v| v.as_doc(allocator)).intersperse(allocator.space()); + let i = vs.into_iter().map(|v| v.as_doc(allocator)).intersperse(allocator.space()); allocator.text(open) .append(allocator.concat(i).nest(n)) .append(allocator.text(close)) @@ -55,22 +53,22 @@ impl Value { /// readability and limited whitespace expansion. pub fn as_doc<'a, A>(&'a self, pp: &'a A) -> pretty::DocBuilder<'a, A> where A: pretty::DocAllocator<'a> { - match self { - &Value::Vector(ref vs) => self.bracket(pp, "[", vs, "]"), - &Value::List(ref vs) => self.bracket(pp, "(", vs, ")"), - &Value::Set(ref vs) => self.bracket(pp, "#{", vs, "}"), - &Value::Map(ref vs) => { - let xs = vs.iter().rev().map(|(ref k, ref v)| k.as_doc(pp).append(pp.space()).append(v.as_doc(pp)).group()).intersperse(pp.space()); + match *self { + Value::Vector(ref vs) => self.bracket(pp, "[", vs, "]"), + Value::List(ref vs) => self.bracket(pp, "(", vs, ")"), + Value::Set(ref vs) => self.bracket(pp, "#{", vs, "}"), + Value::Map(ref vs) => { + let xs = vs.iter().rev().map(|(k, v)| k.as_doc(pp).append(pp.space()).append(v.as_doc(pp)).group()).intersperse(pp.space()); pp.text("{") .append(pp.concat(xs).nest(1)) .append(pp.text("}")) .group() } - &Value::NamespacedSymbol(ref v) => pp.text(v.namespace.as_ref()).append("/").append(v.name.as_ref()), - &Value::PlainSymbol(ref v) => pp.text(v.0.as_ref()), - &Value::NamespacedKeyword(ref v) => pp.text(":").append(v.namespace.as_ref()).append("/").append(v.name.as_ref()), - &Value::Keyword(ref v) => pp.text(":").append(v.0.as_ref()), - &Value::Text(ref v) => pp.text("\"").append(v.as_ref()).append("\""), + Value::NamespacedSymbol(ref v) => pp.text(v.namespace.as_ref()).append("/").append(v.name.as_ref()), + Value::PlainSymbol(ref v) => pp.text(v.0.as_ref()), + Value::NamespacedKeyword(ref v) => pp.text(":").append(v.namespace.as_ref()).append("/").append(v.name.as_ref()), + Value::Keyword(ref v) => pp.text(":").append(v.0.as_ref()), + Value::Text(ref v) => pp.text("\"").append(v.as_ref()).append("\""), _ => pp.text(self.to_string()) } } diff --git a/edn/src/types.rs b/edn/src/types.rs index 1c845b60..46f1b6cb 100644 --- a/edn/src/types.rs +++ b/edn/src/types.rs @@ -45,8 +45,8 @@ pub enum Value { Map(BTreeMap), } -/// SpannedValue is the parallel to Value but used in ValueAndSpan. -/// Container types have ValueAndSpan children. +/// `SpannedValue` is the parallel to `Value` but used in `ValueAndSpan`. +/// Container types have `ValueAndSpan` children. #[derive(PartialEq, Eq, Hash, Clone, Debug)] pub enum SpannedValue { Nil, @@ -69,7 +69,7 @@ pub enum SpannedValue { #[derive(PartialEq, Eq, Hash, Clone, Debug)] pub struct Span(pub usize, pub usize); -/// A wrapper type around SpannedValue and Span, representing some EDN Value +/// A wrapper type around `SpannedValue` and `Span`, representing some EDN value /// and the parsing offset (start, end) in the original EDN string. #[derive(PartialEq, Eq, Hash, Clone, Debug)] pub struct ValueAndSpan { @@ -113,9 +113,9 @@ macro_rules! def_from { /// like `from_bigint()` where the conversion is optional. macro_rules! def_from_option { ($name: ident, $out: ty, $kind: path, $t: ty, $( $transform: expr ),* ) => { - pub fn $name<'a>(src: $t) -> Option<$out> { + pub fn $name(src: $t) -> Option<$out> { $( let src = $transform(src); )* - src.map(|v| $kind(v)) + src.map($kind) } } } @@ -277,7 +277,7 @@ macro_rules! def_common_value_methods { def_into!(into_set, $t::Set, BTreeSet<$tchild>,); def_into!(into_map, $t::Map, BTreeMap<$tchild, $tchild>,); - def_from_option!(from_bigint, $t, $t::BigInteger, &'a str, |src: &'a str| src.parse::().ok()); + def_from_option!(from_bigint, $t, $t::BigInteger, &str, |src: &str| src.parse::().ok()); def_from!(from_float, $t, $t::Float, f64, |src: f64| OrderedFloat::from(src)); def_from!(from_ordered_float, $t, $t::Float, OrderedFloat,); diff --git a/edn/tests/tests.rs b/edn/tests/tests.rs index a3b91194..fce14eb2 100644 --- a/edn/tests/tests.rs +++ b/edn/tests/tests.rs @@ -1348,6 +1348,7 @@ macro_rules! def_test_into_type { } #[test] +#[cfg_attr(feature = "cargo-clippy", allow(float_cmp))] fn test_is_and_as_type_helper_functions() { let max_i64 = i64::max_value().to_bigint().unwrap(); let bigger = &max_i64 * &max_i64;