[INFO] crate svgdom 0.14.0 is already in cache [INFO] extracting crate svgdom 0.14.0 into work/ex/clippy-test-run/sources/stable/reg/svgdom/0.14.0 [INFO] extracting crate svgdom 0.14.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/svgdom/0.14.0 [INFO] validating manifest of svgdom-0.14.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of svgdom-0.14.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing svgdom-0.14.0 [INFO] finished frobbing svgdom-0.14.0 [INFO] frobbed toml for svgdom-0.14.0 written to work/ex/clippy-test-run/sources/stable/reg/svgdom/0.14.0/Cargo.toml [INFO] started frobbing svgdom-0.14.0 [INFO] finished frobbing svgdom-0.14.0 [INFO] frobbed toml for svgdom-0.14.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/svgdom/0.14.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting svgdom-0.14.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/svgdom/0.14.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] c9772db9902edbbfc04eafe8bb392c7ac81150f4d001576a71506719747e9650 [INFO] running `"docker" "start" "-a" "c9772db9902edbbfc04eafe8bb392c7ac81150f4d001576a71506719747e9650"` [INFO] [stderr] Checking simplecss v0.1.0 [INFO] [stderr] Checking roxmltree v0.1.0 [INFO] [stderr] Checking svgtypes v0.2.0 [INFO] [stderr] Checking svgdom v0.14.0 (/opt/crater/workdir) [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parser/text.rs:212:24 [INFO] [stderr] | [INFO] [stderr] 212 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 213 | | if xmlspace1 == XmlSpace::Default && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 214 | | node1.text_mut().remove_last(); [INFO] [stderr] 215 | | } else if xmlspace1 == XmlSpace::Preserve && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 216 | | node2.text_mut().remove_first(); [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 212 | } else if xmlspace1 == XmlSpace::Default && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 213 | node1.text_mut().remove_last(); [INFO] [stderr] 214 | } else if xmlspace1 == XmlSpace::Preserve && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 215 | node2.text_mut().remove_first(); [INFO] [stderr] 216 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/writer/mod.rs:256:5 [INFO] [stderr] | [INFO] [stderr] 256 | / if node.is_tag_name(ElementId::Svg) { [INFO] [stderr] 257 | | if node.parent().map(|v| v.is_root()) == Some(true) { [INFO] [stderr] 258 | | let attr = Attribute::new("xmlns", "http://www.w3.org/2000/svg"); [INFO] [stderr] 259 | | write_attribute(&attr, depth, attrs_depth, opt, out); [INFO] [stderr] ... | [INFO] [stderr] 266 | | } [INFO] [stderr] 267 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 256 | if node.is_tag_name(ElementId::Svg) && node.parent().map(|v| v.is_root()) == Some(true) { [INFO] [stderr] 257 | let attr = Attribute::new("xmlns", "http://www.w3.org/2000/svg"); [INFO] [stderr] 258 | write_attribute(&attr, depth, attrs_depth, opt, out); [INFO] [stderr] 259 | [INFO] [stderr] 260 | let xlink_needed = node.descendants().any(|n| n.has_attribute(AttributeId::Href)); [INFO] [stderr] 261 | if xlink_needed { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/writer/mod.rs:392:13 [INFO] [stderr] | [INFO] [stderr] 392 | / if node.is_element() { [INFO] [stderr] 393 | | if node == *root { [INFO] [stderr] 394 | | break; [INFO] [stderr] 395 | | } [INFO] [stderr] 396 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 392 | if node.is_element() && node == *root { [INFO] [stderr] 393 | break; [INFO] [stderr] 394 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parser/text.rs:212:24 [INFO] [stderr] | [INFO] [stderr] 212 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 213 | | if xmlspace1 == XmlSpace::Default && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 214 | | node1.text_mut().remove_last(); [INFO] [stderr] 215 | | } else if xmlspace1 == XmlSpace::Preserve && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 216 | | node2.text_mut().remove_first(); [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 212 | } else if xmlspace1 == XmlSpace::Default && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 213 | node1.text_mut().remove_last(); [INFO] [stderr] 214 | } else if xmlspace1 == XmlSpace::Preserve && xmlspace2 == XmlSpace::Default { [INFO] [stderr] 215 | node2.text_mut().remove_first(); [INFO] [stderr] 216 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/writer/mod.rs:256:5 [INFO] [stderr] | [INFO] [stderr] 256 | / if node.is_tag_name(ElementId::Svg) { [INFO] [stderr] 257 | | if node.parent().map(|v| v.is_root()) == Some(true) { [INFO] [stderr] 258 | | let attr = Attribute::new("xmlns", "http://www.w3.org/2000/svg"); [INFO] [stderr] 259 | | write_attribute(&attr, depth, attrs_depth, opt, out); [INFO] [stderr] ... | [INFO] [stderr] 266 | | } [INFO] [stderr] 267 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 256 | if node.is_tag_name(ElementId::Svg) && node.parent().map(|v| v.is_root()) == Some(true) { [INFO] [stderr] 257 | let attr = Attribute::new("xmlns", "http://www.w3.org/2000/svg"); [INFO] [stderr] 258 | write_attribute(&attr, depth, attrs_depth, opt, out); [INFO] [stderr] 259 | [INFO] [stderr] 260 | let xlink_needed = node.descendants().any(|n| n.has_attribute(AttributeId::Href)); [INFO] [stderr] 261 | if xlink_needed { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/writer/mod.rs:392:13 [INFO] [stderr] | [INFO] [stderr] 392 | / if node.is_element() { [INFO] [stderr] 393 | | if node == *root { [INFO] [stderr] 394 | | break; [INFO] [stderr] 395 | | } [INFO] [stderr] 396 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 392 | if node.is_element() && node == *root { [INFO] [stderr] 393 | break; [INFO] [stderr] 394 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `document::Document` [INFO] [stderr] --> src/document.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn new() -> Document { [INFO] [stderr] 80 | | let mut storage = Slab::new(); [INFO] [stderr] 81 | | let mut root = Node::new(NodeData { [INFO] [stderr] 82 | | storage_key: None, [INFO] [stderr] ... | [INFO] [stderr] 97 | | } [INFO] [stderr] 98 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 77 | impl Default for document::Document { [INFO] [stderr] 78 | fn default() -> Self { [INFO] [stderr] 79 | Self::new() [INFO] [stderr] 80 | } [INFO] [stderr] 81 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/document.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / pub fn from_str(text: &str) -> Result { [INFO] [stderr] 106 | | Document::from_str_with_opt(text, &ParseOptions::default()) [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `document::Document` [INFO] [stderr] --> src/document.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn new() -> Document { [INFO] [stderr] 80 | | let mut storage = Slab::new(); [INFO] [stderr] 81 | | let mut root = Node::new(NodeData { [INFO] [stderr] 82 | | storage_key: None, [INFO] [stderr] ... | [INFO] [stderr] 97 | | } [INFO] [stderr] 98 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 77 | impl Default for document::Document { [INFO] [stderr] 78 | fn default() -> Self { [INFO] [stderr] 79 | Self::new() [INFO] [stderr] 80 | } [INFO] [stderr] 81 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/document.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / pub fn from_str(text: &str) -> Result { [INFO] [stderr] 106 | | Document::from_str_with_opt(text, &ParseOptions::default()) [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/node.rs:555:34 [INFO] [stderr] | [INFO] [stderr] 555 | pub fn set_attribute_if_none<'a, T>(&mut self, v: T) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/node.rs:645:21 [INFO] [stderr] | [INFO] [stderr] 645 | fn svg(self) -> FilterMap Option<(ElementId, Node)>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/tree.rs:259:67 [INFO] [stderr] | [INFO] [stderr] 259 | new_child_borrow.root = Some(self_borrow.root.clone().unwrap_or(Rc::downgrade(&self.0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Rc::downgrade(&self.0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/tree.rs:293:67 [INFO] [stderr] | [INFO] [stderr] 293 | new_child_borrow.root = Some(self_borrow.root.clone().unwrap_or(Rc::downgrade(&self.0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Rc::downgrade(&self.0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/node.rs:555:34 [INFO] [stderr] | [INFO] [stderr] 555 | pub fn set_attribute_if_none<'a, T>(&mut self, v: T) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/node.rs:645:21 [INFO] [stderr] | [INFO] [stderr] 645 | fn svg(self) -> FilterMap Option<(ElementId, Node)>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/tree.rs:259:67 [INFO] [stderr] | [INFO] [stderr] 259 | new_child_borrow.root = Some(self_borrow.root.clone().unwrap_or(Rc::downgrade(&self.0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Rc::downgrade(&self.0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/tree.rs:293:67 [INFO] [stderr] | [INFO] [stderr] 293 | new_child_borrow.root = Some(self_borrow.root.clone().unwrap_or(Rc::downgrade(&self.0))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Rc::downgrade(&self.0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/name.rs:126:22 [INFO] [stderr] | [INFO] [stderr] 126 | QNameRef::Id(value.into()) [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/name.rs:132:24 [INFO] [stderr] | [INFO] [stderr] 132 | QNameRef::Name(value.into()) [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/parser/css.rs:66:16 [INFO] [stderr] | [INFO] [stderr] 66 | if let Err(_) = parse_style(style, doc, post_data, &mut resolved_classes, opt) { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 67 | | let text_node = node.first_child().unwrap(); [INFO] [stderr] 68 | | // TODO: test [INFO] [stderr] 69 | | let pos = ro_doc.text_pos_from(text_node.pos()); [INFO] [stderr] 70 | | return Err(ParserError::UnsupportedCSS(pos)); [INFO] [stderr] 71 | | } [INFO] [stderr] | |_________- help: try this: `if parse_style(style, doc, post_data, &mut resolved_classes, opt).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser/css.rs:205:31 [INFO] [stderr] | [INFO] [stderr] 205 | fn postprocess_class_selector<'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/name.rs:126:22 [INFO] [stderr] | [INFO] [stderr] 126 | QNameRef::Id(value.into()) [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/name.rs:132:24 [INFO] [stderr] | [INFO] [stderr] 132 | QNameRef::Name(value.into()) [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/parser/css.rs:66:16 [INFO] [stderr] | [INFO] [stderr] 66 | if let Err(_) = parse_style(style, doc, post_data, &mut resolved_classes, opt) { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 67 | | let text_node = node.first_child().unwrap(); [INFO] [stderr] 68 | | // TODO: test [INFO] [stderr] 69 | | let pos = ro_doc.text_pos_from(text_node.pos()); [INFO] [stderr] 70 | | return Err(ParserError::UnsupportedCSS(pos)); [INFO] [stderr] 71 | | } [INFO] [stderr] | |_________- help: try this: `if parse_style(style, doc, post_data, &mut resolved_classes, opt).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser/css.rs:205:31 [INFO] [stderr] | [INFO] [stderr] 205 | fn postprocess_class_selector<'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/parser/mod.rs:122:24 [INFO] [stderr] | [INFO] [stderr] 122 | return Err(e.into()); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/parser/mod.rs:299:28 [INFO] [stderr] | [INFO] [stderr] 299 | return Err(e.into()); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/parser/mod.rs:122:24 [INFO] [stderr] | [INFO] [stderr] 122 | return Err(e.into()); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/parser/mod.rs:299:28 [INFO] [stderr] | [INFO] [stderr] 299 | return Err(e.into()); [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/attributes.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | fn svg<'a>(self) -> FilterMap Option<(AttributeId, &Attribute)>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/attributes.rs:49:25 [INFO] [stderr] | [INFO] [stderr] 49 | fn svg<'a>(self) -> FilterMap Option<(AttributeId, &mut Attribute)>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/attributes.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | fn svg<'a>(self) -> FilterMap Option<(AttributeId, &Attribute)>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/attributes.rs:49:25 [INFO] [stderr] | [INFO] [stderr] 49 | fn svg<'a>(self) -> FilterMap Option<(AttributeId, &mut Attribute)>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> tests/domapi.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | let n = doc.root().descendants().skip(1).next().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> tests/domapi.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | let n = doc.root().descendants().skip(1).next().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/domapi.rs:206:16 [INFO] [stderr] | [INFO] [stderr] 206 | assert_eq!(n.attributes().iter().find(|ref attr| attr.has_id(AId::StrokeWidth)).is_some(), true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|ref attr| attr.has_id(AId::StrokeWidth)).is_some()` with `any(|ref attr| attr.has_id(AId::StrokeWidth))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.22s [INFO] running `"docker" "inspect" "c9772db9902edbbfc04eafe8bb392c7ac81150f4d001576a71506719747e9650"` [INFO] running `"docker" "rm" "-f" "c9772db9902edbbfc04eafe8bb392c7ac81150f4d001576a71506719747e9650"` [INFO] [stdout] c9772db9902edbbfc04eafe8bb392c7ac81150f4d001576a71506719747e9650