[INFO] crate xml-rs 0.8.0 is already in cache [INFO] extracting crate xml-rs 0.8.0 into work/ex/clippy-test-run/sources/stable/reg/xml-rs/0.8.0 [INFO] extracting crate xml-rs 0.8.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/xml-rs/0.8.0 [INFO] validating manifest of xml-rs-0.8.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 xml-rs-0.8.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 xml-rs-0.8.0 [INFO] finished frobbing xml-rs-0.8.0 [INFO] frobbed toml for xml-rs-0.8.0 written to work/ex/clippy-test-run/sources/stable/reg/xml-rs/0.8.0/Cargo.toml [INFO] started frobbing xml-rs-0.8.0 [INFO] finished frobbing xml-rs-0.8.0 [INFO] frobbed toml for xml-rs-0.8.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/xml-rs/0.8.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 xml-rs-0.8.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/xml-rs/0.8.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] 898ccda6fc238d21b8edb8b4ad9e191d19866e83fe64e2b87832b17bb13a81fb [INFO] running `"docker" "start" "-a" "898ccda6fc238d21b8edb8b4ad9e191d19866e83fe64e2b87832b17bb13a81fb"` [INFO] [stderr] Checking xml-rs v0.8.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_processing_instruction.rs:37:37 [INFO] [stderr] | [INFO] [stderr] 37 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_processing_instruction.rs:81:29 [INFO] [stderr] | [INFO] [stderr] 81 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_declaration.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | standalone: standalone [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `standalone` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_opening_tag.rs:98:33 [INFO] [stderr] | [INFO] [stderr] 98 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:513:13 [INFO] [stderr] | [INFO] [stderr] 513 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:514:13 [INFO] [stderr] | [INFO] [stderr] 514 | attributes: attributes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `attributes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:515:13 [INFO] [stderr] | [INFO] [stderr] 515 | namespace: namespace [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `namespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:533:79 [INFO] [stderr] | [INFO] [stderr] 533 | self.into_state_emit(State::OutsideTag, Ok(XmlEvent::EndElement { name: name })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/events.rs:195:21 [INFO] [stderr] | [INFO] [stderr] 195 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/events.rs:197:21 [INFO] [stderr] | [INFO] [stderr] 197 | standalone: standalone [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `standalone` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/events.rs:201:21 [INFO] [stderr] | [INFO] [stderr] 201 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/mod.rs:43:23 [INFO] [stderr] | [INFO] [stderr] 43 | EventReader { source: source, parser: PullParser::new(config) } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/writer/events.rs:100:43 [INFO] [stderr] | [INFO] [stderr] 100 | XmlEvent::ProcessingInstruction { name: name, data: data } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/writer/events.rs:100:55 [INFO] [stderr] | [INFO] [stderr] 100 | XmlEvent::ProcessingInstruction { name: name, data: data } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_processing_instruction.rs:37:37 [INFO] [stderr] | [INFO] [stderr] 37 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_processing_instruction.rs:81:29 [INFO] [stderr] | [INFO] [stderr] 81 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_declaration.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | standalone: standalone [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `standalone` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/inside_opening_tag.rs:98:33 [INFO] [stderr] | [INFO] [stderr] 98 | value: value [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:513:13 [INFO] [stderr] | [INFO] [stderr] 513 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:514:13 [INFO] [stderr] | [INFO] [stderr] 514 | attributes: attributes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `attributes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:515:13 [INFO] [stderr] | [INFO] [stderr] 515 | namespace: namespace [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `namespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/parser/mod.rs:533:79 [INFO] [stderr] | [INFO] [stderr] 533 | self.into_state_emit(State::OutsideTag, Ok(XmlEvent::EndElement { name: name })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/events.rs:195:21 [INFO] [stderr] | [INFO] [stderr] 195 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/events.rs:197:21 [INFO] [stderr] | [INFO] [stderr] 197 | standalone: standalone [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `standalone` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/events.rs:201:21 [INFO] [stderr] | [INFO] [stderr] 201 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader/mod.rs:43:23 [INFO] [stderr] | [INFO] [stderr] 43 | EventReader { source: source, parser: PullParser::new(config) } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/writer/events.rs:100:43 [INFO] [stderr] | [INFO] [stderr] 100 | XmlEvent::ProcessingInstruction { name: name, data: data } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/writer/events.rs:100:55 [INFO] [stderr] | [INFO] [stderr] 100 | XmlEvent::ProcessingInstruction { name: name, data: data } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:14:29 [INFO] [stderr] | [INFO] [stderr] 14 | pub const NS_XMLNS_PREFIX: &'static str = "xmlns"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:21:26 [INFO] [stderr] | [INFO] [stderr] 21 | pub const NS_XMLNS_URI: &'static str = "http://www.w3.org/2000/xmlns/"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:32:27 [INFO] [stderr] | [INFO] [stderr] 32 | pub const NS_XML_PREFIX: &'static str = "xml"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | pub const NS_XML_URI: &'static str = "http://www.w3.org/XML/1998/namespace"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:55:26 [INFO] [stderr] | [INFO] [stderr] 55 | pub const NS_NO_PREFIX: &'static str = ""; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | pub const NS_EMPTY_URI: &'static str = ""; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `NameTarget` [INFO] [stderr] --> src/reader/parser/mod.rs:196:1 [INFO] [stderr] | [INFO] [stderr] 196 | / enum QualifiedNameTarget { [INFO] [stderr] 197 | | AttributeNameTarget, [INFO] [stderr] 198 | | OpeningTagNameTarget, [INFO] [stderr] 199 | | ClosingTagNameTarget [INFO] [stderr] 200 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/reader/parser/mod.rs:302:16 [INFO] [stderr] | [INFO] [stderr] 302 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 303 | | if self.config.ignore_end_of_stream { [INFO] [stderr] 304 | | self.final_result = None; [INFO] [stderr] 305 | | self.lexer.reset_eof_handled(); [INFO] [stderr] ... | [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | }; [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] 302 | } else if self.config.ignore_end_of_stream { [INFO] [stderr] 303 | self.final_result = None; [INFO] [stderr] 304 | self.lexer.reset_eof_handled(); [INFO] [stderr] 305 | return self_error!(self; "Unexpected end of stream: still inside the root element"); [INFO] [stderr] 306 | } else { [INFO] [stderr] 307 | self_error!(self; "Unexpected end of stream: still inside the root element") [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Wrote` [INFO] [stderr] --> src/writer/emitter.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / enum IndentFlags { [INFO] [stderr] 114 | | WroteNothing, [INFO] [stderr] 115 | | WroteMarkup, [INFO] [stderr] 116 | | WroteText, [INFO] [stderr] 117 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:14:29 [INFO] [stderr] | [INFO] [stderr] 14 | pub const NS_XMLNS_PREFIX: &'static str = "xmlns"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:21:26 [INFO] [stderr] | [INFO] [stderr] 21 | pub const NS_XMLNS_URI: &'static str = "http://www.w3.org/2000/xmlns/"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:32:27 [INFO] [stderr] | [INFO] [stderr] 32 | pub const NS_XML_PREFIX: &'static str = "xml"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | pub const NS_XML_URI: &'static str = "http://www.w3.org/XML/1998/namespace"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:55:26 [INFO] [stderr] | [INFO] [stderr] 55 | pub const NS_NO_PREFIX: &'static str = ""; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/namespace.rs:63:26 [INFO] [stderr] | [INFO] [stderr] 63 | pub const NS_EMPTY_URI: &'static str = ""; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `NameTarget` [INFO] [stderr] --> src/reader/parser/mod.rs:196:1 [INFO] [stderr] | [INFO] [stderr] 196 | / enum QualifiedNameTarget { [INFO] [stderr] 197 | | AttributeNameTarget, [INFO] [stderr] 198 | | OpeningTagNameTarget, [INFO] [stderr] 199 | | ClosingTagNameTarget [INFO] [stderr] 200 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/reader/parser/mod.rs:302:16 [INFO] [stderr] | [INFO] [stderr] 302 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 303 | | if self.config.ignore_end_of_stream { [INFO] [stderr] 304 | | self.final_result = None; [INFO] [stderr] 305 | | self.lexer.reset_eof_handled(); [INFO] [stderr] ... | [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | }; [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] 302 | } else if self.config.ignore_end_of_stream { [INFO] [stderr] 303 | self.final_result = None; [INFO] [stderr] 304 | self.lexer.reset_eof_handled(); [INFO] [stderr] 305 | return self_error!(self; "Unexpected end of stream: still inside the root element"); [INFO] [stderr] 306 | } else { [INFO] [stderr] 307 | self_error!(self; "Unexpected end of stream: still inside the root element") [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Wrote` [INFO] [stderr] --> src/writer/emitter.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / enum IndentFlags { [INFO] [stderr] 114 | | WroteNothing, [INFO] [stderr] 115 | | WroteMarkup, [INFO] [stderr] 116 | | WroteText, [INFO] [stderr] 117 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/name.rs:61:37 [INFO] [stderr] | [INFO] [stderr] 61 | let mut parts = s.splitn(2, ":").fuse(); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `common::TextPosition` [INFO] [stderr] --> src/common.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new() -> TextPosition { [INFO] [stderr] 18 | | TextPosition { row: 0, column: 0 } [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/common.rs:24:24 [INFO] [stderr] | [INFO] [stderr] 24 | self.column += count as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(count)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/common.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | let width = width as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/reader/lexer.rs:293:13 [INFO] [stderr] | [INFO] [stderr] 293 | / match try!(self.read_next_token(c)) { [INFO] [stderr] 294 | | Some(t) => { [INFO] [stderr] 295 | | self.inside_token = false; [INFO] [stderr] 296 | | return Ok(Some(t)); [INFO] [stderr] 297 | | } [INFO] [stderr] 298 | | None => {} // continue [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 293 | if let Some(t) = match $ expr { [INFO] [stderr] 294 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 295 | :: Err ( err ) => { [INFO] [stderr] 296 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 297 | $ crate :: convert :: From :: from ( err ) ) } } { [INFO] [stderr] 298 | self.inside_token = false; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/reader/lexer.rs:302:9 [INFO] [stderr] | [INFO] [stderr] 302 | / loop { [INFO] [stderr] 303 | | // TODO: this should handle multiple encodings [INFO] [stderr] 304 | | let c = match try!(util::next_char_from(b)) { [INFO] [stderr] 305 | | Some(c) => c, // got next char [INFO] [stderr] ... | [INFO] [stderr] 317 | | } [INFO] [stderr] 318 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 302 | while let Some(c) = match $ expr { [INFO] [stderr] 303 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 304 | :: Err ( err ) => { [INFO] [stderr] 305 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 306 | $ crate :: convert :: From :: from ( err ) ) } } { .. } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/reader/lexer.rs:309:13 [INFO] [stderr] | [INFO] [stderr] 309 | / match try!(self.read_next_token(c)) { [INFO] [stderr] 310 | | Some(t) => { [INFO] [stderr] 311 | | self.inside_token = false; [INFO] [stderr] 312 | | return Ok(Some(t)); [INFO] [stderr] ... | [INFO] [stderr] 316 | | } [INFO] [stderr] 317 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 309 | if let Some(t) = match $ expr { [INFO] [stderr] 310 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 311 | :: Err ( err ) => { [INFO] [stderr] 312 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 313 | $ crate :: convert :: From :: from ( err ) ) } } { [INFO] [stderr] 314 | self.inside_token = false; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/reader/parser/inside_declaration.rs:28:36 [INFO] [stderr] | [INFO] [stderr] 28 | encoding: encoding.unwrap_or(DEFAULT_ENCODING.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| DEFAULT_ENCODING.into())` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/reader/parser/inside_opening_tag.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | if this.data.attributes.iter().find(|a| a.name == name).is_some() { // TODO: looks bad [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|a| a.name == name).is_some()` with `any(|a| a.name == name)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/reader/parser/mod.rs:361:9 [INFO] [stderr] | [INFO] [stderr] 361 | self.buf.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/reader/parser/mod.rs:376:19 [INFO] [stderr] | [INFO] [stderr] 376 | fn into_state(&mut self, st: State, ev: Option) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/reader/parser/mod.rs:382:28 [INFO] [stderr] | [INFO] [stderr] 382 | fn into_state_continue(&mut self, st: State) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/reader/parser/mod.rs:387:24 [INFO] [stderr] | [INFO] [stderr] 387 | fn into_state_emit(&mut self, st: State, ev: Result) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/reader/events.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | / pub fn as_writer_event<'a>(&'a self) -> Option<::writer::events::XmlEvent<'a>> { [INFO] [stderr] 192 | | match *self { [INFO] [stderr] 193 | | XmlEvent::StartDocument { version, ref encoding, standalone } => [INFO] [stderr] 194 | | Some(::writer::events::XmlEvent::StartDocument { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/reader/error.rs:97:38 [INFO] [stderr] | [INFO] [stderr] 97 | Utf8(ref reason) => Utf8(reason.clone()), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*reason` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/reader/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn next(&mut self) -> Result { [INFO] [stderr] 52 | | self.parser.next(&mut self.source) [INFO] [stderr] 53 | | } [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: 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/reader/mod.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | / pub fn from_str(source: &'r str) -> EventReader<&'r [u8]> { [INFO] [stderr] 127 | | EventReader::new(source.as_bytes()) [INFO] [stderr] 128 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | target.write(self.config.line_separator.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | target.write(self.config.indent_string.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:393:13 [INFO] [stderr] | [INFO] [stderr] 393 | target.write(b" src/writer/emitter.rs:394:13 [INFO] [stderr] | [INFO] [stderr] 394 | target.write(content.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:395:13 [INFO] [stderr] | [INFO] [stderr] 395 | target.write(b"]]>")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | / target.write( [INFO] [stderr] 407 | | (if self.config.perform_escaping { [INFO] [stderr] 408 | | escape_str_pcdata(content) [INFO] [stderr] 409 | | } else { [INFO] [stderr] 410 | | Cow::Borrowed(content) [INFO] [stderr] 411 | | }).as_bytes() [INFO] [stderr] 412 | | )?; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:424:13 [INFO] [stderr] | [INFO] [stderr] 424 | target.write(b" src/writer/emitter.rs:427:17 [INFO] [stderr] | [INFO] [stderr] 427 | target.write(b" ")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:430:13 [INFO] [stderr] | [INFO] [stderr] 430 | target.write(content.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:433:17 [INFO] [stderr] | [INFO] [stderr] 433 | target.write(b" ")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:436:13 [INFO] [stderr] | [INFO] [stderr] 436 | target.write(b"-->")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/writer/events.rs:112:24 [INFO] [stderr] | [INFO] [stderr] 112 | namespace: Namespace::empty().into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Namespace::empty()` [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] error: aborting due to 11 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `xml-rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/name.rs:61:37 [INFO] [stderr] | [INFO] [stderr] 61 | let mut parts = s.splitn(2, ":").fuse(); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `common::TextPosition` [INFO] [stderr] --> src/common.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new() -> TextPosition { [INFO] [stderr] 18 | | TextPosition { row: 0, column: 0 } [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/common.rs:24:24 [INFO] [stderr] | [INFO] [stderr] 24 | self.column += count as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(count)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/common.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | let width = width as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/reader/lexer.rs:293:13 [INFO] [stderr] | [INFO] [stderr] 293 | / match try!(self.read_next_token(c)) { [INFO] [stderr] 294 | | Some(t) => { [INFO] [stderr] 295 | | self.inside_token = false; [INFO] [stderr] 296 | | return Ok(Some(t)); [INFO] [stderr] 297 | | } [INFO] [stderr] 298 | | None => {} // continue [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 293 | if let Some(t) = match $ expr { [INFO] [stderr] 294 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 295 | :: Err ( err ) => { [INFO] [stderr] 296 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 297 | $ crate :: convert :: From :: from ( err ) ) } } { [INFO] [stderr] 298 | self.inside_token = false; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/reader/lexer.rs:302:9 [INFO] [stderr] | [INFO] [stderr] 302 | / loop { [INFO] [stderr] 303 | | // TODO: this should handle multiple encodings [INFO] [stderr] 304 | | let c = match try!(util::next_char_from(b)) { [INFO] [stderr] 305 | | Some(c) => c, // got next char [INFO] [stderr] ... | [INFO] [stderr] 317 | | } [INFO] [stderr] 318 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 302 | while let Some(c) = match $ expr { [INFO] [stderr] 303 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 304 | :: Err ( err ) => { [INFO] [stderr] 305 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 306 | $ crate :: convert :: From :: from ( err ) ) } } { .. } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/reader/lexer.rs:309:13 [INFO] [stderr] | [INFO] [stderr] 309 | / match try!(self.read_next_token(c)) { [INFO] [stderr] 310 | | Some(t) => { [INFO] [stderr] 311 | | self.inside_token = false; [INFO] [stderr] 312 | | return Ok(Some(t)); [INFO] [stderr] ... | [INFO] [stderr] 316 | | } [INFO] [stderr] 317 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 309 | if let Some(t) = match $ expr { [INFO] [stderr] 310 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 311 | :: Err ( err ) => { [INFO] [stderr] 312 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 313 | $ crate :: convert :: From :: from ( err ) ) } } { [INFO] [stderr] 314 | self.inside_token = false; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 54 [INFO] [stderr] --> src/reader/lexer.rs:566:5 [INFO] [stderr] | [INFO] [stderr] 566 | / fn simple_lexer_test() { [INFO] [stderr] 567 | | let (mut lex, mut buf) = make_lex_and_buf( [INFO] [stderr] 568 | | r#" xd

 "# [INFO] [stderr] 569 | | ); [INFO] [stderr] ... | [INFO] [stderr] 625 | | assert_none!(for lex and buf); [INFO] [stderr] 626 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 51 [INFO] [stderr] --> src/reader/lexer.rs:719:5 [INFO] [stderr] | [INFO] [stderr] 719 | / fn end_of_stream_handling_error() { [INFO] [stderr] 720 | | macro_rules! eof_check( [INFO] [stderr] 721 | | ($data:expr; $r:expr, $c:expr) => ({ [INFO] [stderr] 722 | | let (mut lex, mut buf) = make_lex_and_buf($data); [INFO] [stderr] ... | [INFO] [stderr] 736 | | eof_check!("--" ; 0, 2); [INFO] [stderr] 737 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 43 [INFO] [stderr] --> src/reader/lexer.rs:802:5 [INFO] [stderr] | [INFO] [stderr] 802 | / fn error_in_cdata_started() { [INFO] [stderr] 803 | | check_case!(" src/reader/lexer.rs:812:5 [INFO] [stderr] | [INFO] [stderr] 812 | / fn error_in_doctype_started() { [INFO] [stderr] 813 | | check_case!(" src/reader/parser/inside_declaration.rs:28:36 [INFO] [stderr] | [INFO] [stderr] 28 | encoding: encoding.unwrap_or(DEFAULT_ENCODING.into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| DEFAULT_ENCODING.into())` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/reader/parser/inside_opening_tag.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | if this.data.attributes.iter().find(|a| a.name == name).is_some() { // TODO: looks bad [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|a| a.name == name).is_some()` with `any(|a| a.name == name)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/reader/parser/mod.rs:361:9 [INFO] [stderr] | [INFO] [stderr] 361 | self.buf.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buf.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/reader/parser/mod.rs:376:19 [INFO] [stderr] | [INFO] [stderr] 376 | fn into_state(&mut self, st: State, ev: Option) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/reader/parser/mod.rs:382:28 [INFO] [stderr] | [INFO] [stderr] 382 | fn into_state_continue(&mut self, st: State) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/reader/parser/mod.rs:387:24 [INFO] [stderr] | [INFO] [stderr] 387 | fn into_state_emit(&mut self, st: State, ev: Result) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/reader/events.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | / pub fn as_writer_event<'a>(&'a self) -> Option<::writer::events::XmlEvent<'a>> { [INFO] [stderr] 192 | | match *self { [INFO] [stderr] 193 | | XmlEvent::StartDocument { version, ref encoding, standalone } => [INFO] [stderr] 194 | | Some(::writer::events::XmlEvent::StartDocument { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/reader/error.rs:97:38 [INFO] [stderr] | [INFO] [stderr] 97 | Utf8(ref reason) => Utf8(reason.clone()), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try dereferencing it: `*reason` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/reader/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn next(&mut self) -> Result { [INFO] [stderr] 52 | | self.parser.next(&mut self.source) [INFO] [stderr] 53 | | } [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: 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/reader/mod.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | / pub fn from_str(source: &'r str) -> EventReader<&'r [u8]> { [INFO] [stderr] 127 | | EventReader::new(source.as_bytes()) [INFO] [stderr] 128 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | target.write(self.config.line_separator.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | target.write(self.config.indent_string.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:393:13 [INFO] [stderr] | [INFO] [stderr] 393 | target.write(b" src/writer/emitter.rs:394:13 [INFO] [stderr] | [INFO] [stderr] 394 | target.write(content.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:395:13 [INFO] [stderr] | [INFO] [stderr] 395 | target.write(b"]]>")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | / target.write( [INFO] [stderr] 407 | | (if self.config.perform_escaping { [INFO] [stderr] 408 | | escape_str_pcdata(content) [INFO] [stderr] 409 | | } else { [INFO] [stderr] 410 | | Cow::Borrowed(content) [INFO] [stderr] 411 | | }).as_bytes() [INFO] [stderr] 412 | | )?; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:424:13 [INFO] [stderr] | [INFO] [stderr] 424 | target.write(b" src/writer/emitter.rs:427:17 [INFO] [stderr] | [INFO] [stderr] 427 | target.write(b" ")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:430:13 [INFO] [stderr] | [INFO] [stderr] 430 | target.write(content.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:433:17 [INFO] [stderr] | [INFO] [stderr] 433 | target.write(b" ")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/writer/emitter.rs:436:13 [INFO] [stderr] | [INFO] [stderr] 436 | target.write(b"-->")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/writer/events.rs:112:24 [INFO] [stderr] | [INFO] [stderr] 112 | namespace: Namespace::empty().into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Namespace::empty()` [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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/util.rs:67:32 [INFO] [stderr] | [INFO] [stderr] 67 | let mut bytes: &[u8] = "correct".as_bytes(); // correct ASCII [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"correct"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] error: aborting due to 11 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `xml-rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "898ccda6fc238d21b8edb8b4ad9e191d19866e83fe64e2b87832b17bb13a81fb"` [INFO] running `"docker" "rm" "-f" "898ccda6fc238d21b8edb8b4ad9e191d19866e83fe64e2b87832b17bb13a81fb"` [INFO] [stdout] 898ccda6fc238d21b8edb8b4ad9e191d19866e83fe64e2b87832b17bb13a81fb