Skip to content

Commit 44cdd48

Browse files
authored
Merge pull request #911 from Mingun/clippy
Address some clippy lints
2 parents 71406f4 + 8fa6c6a commit 44cdd48

File tree

21 files changed

+91
-78
lines changed

21 files changed

+91
-78
lines changed

benches/macrobenches.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
// std::hint::black_box stable since 1.66, but our MSRV = 1.56.
2+
// criterion::black_box is deprecated in since criterion 0.7.
3+
// Running benchmarks assumed on current Rust version, so this should be fine
4+
#![allow(clippy::incompatible_msrv)]
15
use criterion::{self, criterion_group, criterion_main, Criterion, Throughput};
26
use quick_xml::events::Event;
37
use quick_xml::reader::{NsReader, Reader};

benches/microbenches.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
// std::hint::black_box stable since 1.66, but our MSRV = 1.56.
2+
// criterion::black_box is deprecated in since criterion 0.7.
3+
// Running benchmarks assumed on current Rust version, so this should be fine
4+
#![allow(clippy::incompatible_msrv)]
15
use criterion::{self, criterion_group, criterion_main, Criterion};
26
use pretty_assertions::assert_eq;
37
use quick_xml::escape::{escape, unescape};

examples/flattened_enum.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ fn main() {
129129
</model>
130130
"#;
131131

132-
let model: Model = from_str(&x).unwrap();
132+
let model: Model = from_str(x).unwrap();
133133
println!("{:?}", model);
134134
// Model { elem: [Foo(Foo { a: "1", subfoo: SubFoo { a1: "2", a2: "42", a3: "1337" } }), Bar(Bar { b: "22" })] }
135135

src/de/key.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ impl<'i, 'd> QNameDeserializer<'i, 'd> {
9696
// can apper only in this literal form, as `xml` prefix cannot be redeclared or unbound
9797
let (local, prefix_opt) = name.decompose();
9898
if prefix_opt.map_or(false, |prefix| prefix.is_xml()) {
99-
decoder.decode_into(&name.into_inner(), key_buf)?;
99+
decoder.decode_into(name.into_inner(), key_buf)?;
100100
} else {
101101
decoder.decode_into(local.into_inner(), key_buf)?;
102102
}

src/de/map.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,16 +207,16 @@ where
207207
de: &'d mut Deserializer<'de, R, E>,
208208
start: BytesStart<'de>,
209209
fields: &'static [&'static str],
210-
) -> Result<Self, DeError> {
211-
Ok(Self {
210+
) -> Self {
211+
Self {
212212
de,
213213
iter: IterState::new(start.name().as_ref().len(), false),
214214
start,
215215
source: ValueSource::Unknown,
216216
fields,
217217
has_value_field: fields.contains(&VALUE_KEY),
218218
has_text_field: fields.contains(&TEXT_KEY),
219-
})
219+
}
220220
}
221221

222222
/// Determines if subtree started with the specified event shoould be skipped.
@@ -801,7 +801,7 @@ where
801801
V: Visitor<'de>,
802802
{
803803
match self.map.de.next()? {
804-
DeEvent::Start(e) => visitor.visit_map(ElementMapAccess::new(self.map.de, e, fields)?),
804+
DeEvent::Start(e) => visitor.visit_map(ElementMapAccess::new(self.map.de, e, fields)),
805805
DeEvent::Text(e) => {
806806
SimpleTypeDeserializer::from_text_content(e).deserialize_struct("", fields, visitor)
807807
}
@@ -1144,7 +1144,7 @@ where
11441144
where
11451145
V: Visitor<'de>,
11461146
{
1147-
visitor.visit_map(ElementMapAccess::new(self.de, self.start, fields)?)
1147+
visitor.visit_map(ElementMapAccess::new(self.de, self.start, fields))
11481148
}
11491149

11501150
fn deserialize_enum<V>(

src/de/mod.rs

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2815,34 +2815,31 @@ where
28152815
fn skip(&mut self) -> Result<(), DeError> {
28162816
let event = self.next()?;
28172817
self.skip_event(event)?;
2818-
match self.write.back() {
2819-
// Skip all subtree, if we skip a start event
2820-
Some(DeEvent::Start(e)) => {
2821-
let end = e.name().as_ref().to_owned();
2822-
let mut depth = 0;
2823-
loop {
2824-
let event = self.next()?;
2825-
match event {
2826-
DeEvent::Start(ref e) if e.name().as_ref() == end => {
2827-
self.skip_event(event)?;
2828-
depth += 1;
2829-
}
2830-
DeEvent::End(ref e) if e.name().as_ref() == end => {
2831-
self.skip_event(event)?;
2832-
if depth == 0 {
2833-
break;
2834-
}
2835-
depth -= 1;
2836-
}
2837-
DeEvent::Eof => {
2838-
self.skip_event(event)?;
2818+
// Skip all subtree, if we skip a start event
2819+
if let Some(DeEvent::Start(e)) = self.write.back() {
2820+
let end = e.name().as_ref().to_owned();
2821+
let mut depth = 0;
2822+
loop {
2823+
let event = self.next()?;
2824+
match event {
2825+
DeEvent::Start(ref e) if e.name().as_ref() == end => {
2826+
self.skip_event(event)?;
2827+
depth += 1;
2828+
}
2829+
DeEvent::End(ref e) if e.name().as_ref() == end => {
2830+
self.skip_event(event)?;
2831+
if depth == 0 {
28392832
break;
28402833
}
2841-
_ => self.skip_event(event)?,
2834+
depth -= 1;
2835+
}
2836+
DeEvent::Eof => {
2837+
self.skip_event(event)?;
2838+
break;
28422839
}
2840+
_ => self.skip_event(event)?,
28432841
}
28442842
}
2845-
_ => (),
28462843
}
28472844
Ok(())
28482845
}
@@ -3214,7 +3211,7 @@ where
32143211
}
32153212
}
32163213

3217-
impl<'de, 'a, R, E> de::Deserializer<'de> for &'a mut Deserializer<'de, R, E>
3214+
impl<'de, R, E> de::Deserializer<'de> for &mut Deserializer<'de, R, E>
32183215
where
32193216
R: XmlRead<'de>,
32203217
E: EntityResolver,
@@ -3235,7 +3232,7 @@ where
32353232
// When document is pretty-printed there could be whitespaces before the root element
32363233
self.skip_whitespaces()?;
32373234
match self.next()? {
3238-
DeEvent::Start(e) => visitor.visit_map(ElementMapAccess::new(self, e, fields)?),
3235+
DeEvent::Start(e) => visitor.visit_map(ElementMapAccess::new(self, e, fields)),
32393236
// SAFETY: The reader is guaranteed that we don't have unmatched tags
32403237
// If we here, then our deserializer has a bug
32413238
DeEvent::End(e) => unreachable!("{:?}", e),
@@ -3330,7 +3327,7 @@ where
33303327
DeEvent::Text(t) if t.is_empty() => visitor.visit_none(),
33313328
DeEvent::Eof => visitor.visit_none(),
33323329
// if the `xsi:nil` attribute is set to true we got a none value
3333-
DeEvent::Start(start) if self.reader.reader.has_nil_attr(&start) => {
3330+
DeEvent::Start(start) if self.reader.reader.has_nil_attr(start) => {
33343331
self.skip_next_tree()?;
33353332
visitor.visit_none()
33363333
}
@@ -3354,7 +3351,7 @@ where
33543351
///
33553352
/// Technically, multiple top-level elements violates XML rule of only one top-level
33563353
/// element, but we consider this as several concatenated XML documents.
3357-
impl<'de, 'a, R, E> SeqAccess<'de> for &'a mut Deserializer<'de, R, E>
3354+
impl<'de, R, E> SeqAccess<'de> for &mut Deserializer<'de, R, E>
33583355
where
33593356
R: XmlRead<'de>,
33603357
E: EntityResolver,
@@ -3381,7 +3378,7 @@ where
33813378
}
33823379
}
33833380

3384-
impl<'de, 'a, R, E> IntoDeserializer<'de, DeError> for &'a mut Deserializer<'de, R, E>
3381+
impl<'de, R, E> IntoDeserializer<'de, DeError> for &mut Deserializer<'de, R, E>
33853382
where
33863383
R: XmlRead<'de>,
33873384
E: EntityResolver,
@@ -4508,6 +4505,8 @@ mod tests {
45084505
use super::*;
45094506

45104507
/// <tag1><tag2>...
4508+
// The same name is intentional
4509+
#[allow(clippy::module_inception)]
45114510
mod start {
45124511
use super::*;
45134512
use pretty_assertions::assert_eq;
@@ -4980,6 +4979,8 @@ mod tests {
49804979
}
49814980
}
49824981

4982+
// The same name is intentional
4983+
#[allow(clippy::module_inception)]
49834984
mod cdata {
49844985
use super::*;
49854986
use pretty_assertions::assert_eq;

src/de/var.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ where
132132
V: Visitor<'de>,
133133
{
134134
match self.de.next()? {
135-
DeEvent::Start(e) => visitor.visit_map(ElementMapAccess::new(self.de, e, fields)?),
135+
DeEvent::Start(e) => visitor.visit_map(ElementMapAccess::new(self.de, e, fields)),
136136
DeEvent::Text(e) => {
137137
SimpleTypeDeserializer::from_text_content(e).deserialize_struct("", fields, visitor)
138138
}

src/encoding.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,8 @@ pub fn decode_into(
248248
/// |`3C 3F 78 6D`|UTF-8, ISO 646, ASCII, some part of ISO 8859, Shift-JIS, EUC, or any other 7-bit, 8-bit, or mixed-width encoding which ensures that the characters of ASCII have their normal positions, width, and values; the actual encoding declaration must be read to detect which of these applies, but since all of these encodings use the same bit patterns for the relevant ASCII characters, the encoding declaration itself may be read reliably
249249
#[cfg(feature = "encoding")]
250250
pub fn detect_encoding(bytes: &[u8]) -> Option<(&'static Encoding, usize)> {
251+
// Prevent suggesting "<?xm". We want to have the same formatted lines for all arms.
252+
#[allow(clippy::byte_char_slices)]
251253
match bytes {
252254
// with BOM
253255
_ if bytes.starts_with(UTF16_BE_BOM) => Some((UTF_16BE, 2)),

src/escape.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2183,7 +2183,8 @@ mod normalization {
21832183
if ch == '\u{0085}' {
21842184
assert_eq!(normalize_xml11_eols(input), "\n", "{}", description);
21852185
} else {
2186-
let mut expected = utf8.clone();
2186+
// utf8 is copied, because [u8; 3] implements Copy
2187+
let mut expected = utf8;
21872188
expected[0] = b'\n';
21882189
let expected = std::str::from_utf8(&expected).expect(&description);
21892190
assert_eq!(normalize_xml11_eols(input), expected, "{}", description);

src/events/attributes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ impl<'a> Attributes<'a> {
432432
impl<'a> Debug for Attributes<'a> {
433433
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
434434
f.debug_struct("Attributes")
435-
.field("bytes", &Bytes(&self.bytes))
435+
.field("bytes", &Bytes(self.bytes))
436436
.field("state", &self.state)
437437
.field("decoder", &self.decoder)
438438
.finish()

0 commit comments

Comments
 (0)