[INFO] fetching crate jsonh_rs 1.2.0... [INFO] linting jsonh_rs-1.2.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate jsonh_rs 1.2.0 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate jsonh_rs 1.2.0 [INFO] finished tweaking crates.io crate jsonh_rs 1.2.0 [INFO] tweaked toml for crates.io crate jsonh_rs 1.2.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate jsonh_rs 1.2.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate jsonh_rs 1.2.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded yield-return v0.2.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 01c458554c48697965a75649e3e0e6613d2b6bc10ba3fa74f2f7d9f11d8c4e7d [INFO] running `Command { std: "docker" "start" "-a" "01c458554c48697965a75649e3e0e6613d2b6bc10ba3fa74f2f7d9f11d8c4e7d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "01c458554c48697965a75649e3e0e6613d2b6bc10ba3fa74f2f7d9f11d8c4e7d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01c458554c48697965a75649e3e0e6613d2b6bc10ba3fa74f2f7d9f11d8c4e7d", kill_on_drop: false }` [INFO] [stdout] 01c458554c48697965a75649e3e0e6613d2b6bc10ba3fa74f2f7d9f11d8c4e7d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9e9da782cda02beeaf4d678f3d81c6d80153cea0921d1df08a46d2f43394ae4d [INFO] running `Command { std: "docker" "start" "-a" "9e9da782cda02beeaf4d678f3d81c6d80153cea0921d1df08a46d2f43394ae4d", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking yield-return v0.2.0 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking jsonh_rs v1.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_reader.rs:40:23 [INFO] [stdout] | [INFO] [stdout] 40 | return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_reader.rs:40:39 [INFO] [stdout] | [INFO] [stdout] 40 | return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_token.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | return Self { json_type: json_type, value: value }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_token.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | return Self { json_type: json_type, value: value }; [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_reader.rs:40:23 [INFO] [stdout] | [INFO] [stdout] 40 | return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_reader.rs:40:39 [INFO] [stdout] | [INFO] [stdout] 40 | return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `options` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_token.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | return Self { json_type: json_type, value: value }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/jsonh_token.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | return Self { json_type: json_type, value: value }; [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:24:104 [INFO] [stdout] | [INFO] [stdout] 24 | ...version(JsonhVersion::V2) { &Self::RESERVED_CHARS_V2 } else { &Self::RESERVED_CHARS_V1 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Self::RESERVED_CHARS_V2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:24:138 [INFO] [stdout] | [INFO] [stdout] 24 | ...:RESERVED_CHARS_V2 } else { &Self::RESERVED_CHARS_V1 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Self::RESERVED_CHARS_V1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] 40 + Self { source: source, options: options, char_counter: 0, depth: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return Self::from_peekable_chars(source.peekable(), options); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return Self::from_peekable_chars(source.peekable(), options); [INFO] [stdout] 44 + Self::from_peekable_chars(source.peekable(), options) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | return Self::from_chars(source.chars(), options); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return Self::from_chars(source.chars(), options); [INFO] [stdout] 48 + Self::from_chars(source.chars(), options) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | return Self::from_str(source.as_str(), options); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 52 - return Self::from_str(source.as_str(), options); [INFO] [stdout] 52 + Self::from_str(source.as_str(), options) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/jsonh_reader.rs:51:32 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn from_string(source: &'a String, options: JsonhReaderOptions) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 ~ pub fn from_string(source: &'a str, options: JsonhReaderOptions) -> Self { [INFO] [stdout] 52 ~ return Self::from_str(source, options); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return Self::from_peekable_chars(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return Self::from_peekable_chars(source, options).parse_element(); [INFO] [stdout] 57 + Self::from_peekable_chars(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return Self::from_chars(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return Self::from_chars(source, options).parse_element(); [INFO] [stdout] 61 + Self::from_chars(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | return Self::from_str(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 65 - return Self::from_str(source, options).parse_element(); [INFO] [stdout] 65 + Self::from_str(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return Self::from_string(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return Self::from_string(source, options).parse_element(); [INFO] [stdout] 69 + Self::from_string(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | return next_element; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 193 - return next_element; [INFO] [stdout] 193 + next_element [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 85 - return false; [INFO] [stdout] 85 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return false; [INFO] [stdout] 91 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | return Err("Expected token, got end of input"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 176 - return Err("Expected token, got end of input"); [INFO] [stdout] 176 + Err("Expected token, got end of input") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/jsonh_reader.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | / if next_element.is_ok() { [INFO] [stdout] 184 | | if self.options.parse_single_element { [INFO] [stdout] 185 | | for token_result in self.read_end_of_elements() { [INFO] [stdout] 186 | | if let Err(token_error) = token_result { [INFO] [stdout] ... | [INFO] [stdout] 191 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 183 ~ if next_element.is_ok() [INFO] [stdout] 184 ~ && self.options.parse_single_element { [INFO] [stdout] 185 | for token_result in self.read_end_of_elements() { [INFO] [stdout] ... [INFO] [stdout] 189 | } [INFO] [stdout] 190 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | / if let Err(token_error) = token_result { [INFO] [stdout] 187 | | return Err(token_error); [INFO] [stdout] 188 | | } [INFO] [stdout] | |_____________________^ help: replace it with: `token_result?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/jsonh_reader.rs:228:28 [INFO] [stdout] | [INFO] [stdout] 228 | if !(token.json_type == JsonTokenType::Comment && !include_comments) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `token.json_type != JsonTokenType::Comment || include_comments` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `indent` after checking its variant with `is_some` [INFO] [stdout] --> src/jsonh_reader.rs:242:55 [INFO] [stdout] | [INFO] [stdout] 224 | if indent.is_some() { [INFO] [stdout] | ------------------- help: try: `if let Some() = indent` [INFO] [stdout] ... [INFO] [stdout] 242 | result_builder += indent.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:346:9 [INFO] [stdout] | [INFO] [stdout] 346 | return Err("Expected token, got end of input"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 346 - return Err("Expected token, got end of input"); [INFO] [stdout] 346 + Err("Expected token, got end of input") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:393:9 [INFO] [stdout] | [INFO] [stdout] 393 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 393 - return false; [INFO] [stdout] 393 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/jsonh_reader.rs:382:21 [INFO] [stdout] | [INFO] [stdout] 382 | / if current_depth == 1 && token.value == property_name { [INFO] [stdout] 383 | | // Path found [INFO] [stdout] 384 | | return true; [INFO] [stdout] 385 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 381 ~ JsonTokenType::PropertyName [INFO] [stdout] 382 ~ if current_depth == 1 && token.value == property_name => { [INFO] [stdout] 383 | // Path found [INFO] [stdout] 384 | return true; [INFO] [stdout] 385 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:401:9 [INFO] [stdout] | [INFO] [stdout] 401 | return self.peek().is_some(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 401 - return self.peek().is_some(); [INFO] [stdout] 401 + self.peek().is_some() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 406 | | // Comments & whitespace [INFO] [stdout] 407 | | for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 408 | | if token_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 419 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 405 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 406 + // Comments & whitespace [INFO] [stdout] 407 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 408 + if token_result.is_err() { [INFO] [stdout] 409 + y.ret(token_result).await; [INFO] [stdout] 410 + return; [INFO] [stdout] 411 + } [INFO] [stdout] 412 + y.ret(token_result).await; [INFO] [stdout] 413 + } [INFO] [stdout] 414 + [INFO] [stdout] 415 + // Peek char [INFO] [stdout] 416 + if self.peek().is_some() { [INFO] [stdout] 417 + y.ret(Err("Expected end of elements")).await; [INFO] [stdout] 418 + } [INFO] [stdout] 419 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 424 | | // Comments & whitespace [INFO] [stdout] 425 | | for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 426 | | if token_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 476 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 423 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 424 + // Comments & whitespace [INFO] [stdout] 425 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 426 + if token_result.is_err() { [INFO] [stdout] 427 + y.ret(token_result).await; [INFO] [stdout] 428 + return; [INFO] [stdout] 429 + } [INFO] [stdout] 430 + y.ret(token_result).await; [INFO] [stdout] 431 + } [INFO] [stdout] 432 + [INFO] [stdout] 433 + // Peek char [INFO] [stdout] 434 + let Some(next) = self.peek() else { [INFO] [stdout] 435 + y.ret(Err("Expected token, got end of input")).await; [INFO] [stdout] 436 + return; [INFO] [stdout] 437 + }; [INFO] [stdout] 438 + [INFO] [stdout] 439 + // Object [INFO] [stdout] 440 + if next == '{' { [INFO] [stdout] 441 + for token_result in self.read_object() { [INFO] [stdout] 442 + if token_result.is_err() { [INFO] [stdout] 443 + y.ret(token_result).await; [INFO] [stdout] 444 + return; [INFO] [stdout] 445 + } [INFO] [stdout] 446 + y.ret(token_result).await; [INFO] [stdout] 447 + } [INFO] [stdout] 448 + } [INFO] [stdout] 449 + // Array [INFO] [stdout] 450 + else if next == '[' { [INFO] [stdout] 451 + for token_result in self.read_array() { [INFO] [stdout] 452 + if token_result.is_err() { [INFO] [stdout] 453 + y.ret(token_result).await; [INFO] [stdout] 454 + return; [INFO] [stdout] 455 + } [INFO] [stdout] 456 + y.ret(token_result).await; [INFO] [stdout] 457 + } [INFO] [stdout] 458 + } [INFO] [stdout] 459 + // Primitive value (null, true, false, string, number) [INFO] [stdout] 460 + else { [INFO] [stdout] 461 + let token_result: Result = self.read_primitive_element(); [INFO] [stdout] 462 + if token_result.is_err() { [INFO] [stdout] 463 + y.ret(token_result).await; [INFO] [stdout] 464 + return; [INFO] [stdout] 465 + } [INFO] [stdout] 466 + [INFO] [stdout] 467 + // Detect braceless object from property name [INFO] [stdout] 468 + for token_result2 in self.read_braceless_object_or_end_of_primitive(token_result.unwrap()) { [INFO] [stdout] 469 + if token_result2.is_err() { [INFO] [stdout] 470 + y.ret(token_result2).await; [INFO] [stdout] 471 + return; [INFO] [stdout] 472 + } [INFO] [stdout] 473 + y.ret(token_result2).await; [INFO] [stdout] 474 + } [INFO] [stdout] 475 + } [INFO] [stdout] 476 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 481 | | // Opening brace [INFO] [stdout] 482 | | if !self.read_one('{') { [INFO] [stdout] ... | [INFO] [stdout] 544 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 480 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 481 + // Opening brace [INFO] [stdout] 482 + if !self.read_one('{') { [INFO] [stdout] 483 + // Braceless object [INFO] [stdout] 484 + for token_result in self.read_braceless_object(None) { [INFO] [stdout] 485 + if token_result.is_err() { [INFO] [stdout] 486 + y.ret(token_result).await; [INFO] [stdout] 487 + return; [INFO] [stdout] 488 + } [INFO] [stdout] 489 + y.ret(token_result).await; [INFO] [stdout] 490 + } [INFO] [stdout] 491 + return; [INFO] [stdout] 492 + } [INFO] [stdout] 493 + // Start of object [INFO] [stdout] 494 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartObject))).await; [INFO] [stdout] 495 + self.depth += 1; [INFO] [stdout] 496 + [INFO] [stdout] 497 + // Check exceeded max depth [INFO] [stdout] 498 + if self.depth > self.options.max_depth { [INFO] [stdout] 499 + y.ret(Err("Exceeded max depth")).await; [INFO] [stdout] 500 + return; [INFO] [stdout] 501 + } [INFO] [stdout] 502 + [INFO] [stdout] 503 + loop { [INFO] [stdout] 504 + // Comments & whitespace [INFO] [stdout] 505 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 506 + if token_result.is_err() { [INFO] [stdout] 507 + y.ret(token_result).await; [INFO] [stdout] 508 + return; [INFO] [stdout] 509 + } [INFO] [stdout] 510 + y.ret(token_result).await; [INFO] [stdout] 511 + } [INFO] [stdout] 512 + [INFO] [stdout] 513 + let Some(next) = self.peek() else { [INFO] [stdout] 514 + // End of incomplete object [INFO] [stdout] 515 + if self.options.incomplete_inputs { [INFO] [stdout] 516 + self.depth -= 1; [INFO] [stdout] 517 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndObject))).await; [INFO] [stdout] 518 + return; [INFO] [stdout] 519 + } [INFO] [stdout] 520 + // Missing closing brace [INFO] [stdout] 521 + y.ret(Err("Expected `}` to end object, got end of input")).await; [INFO] [stdout] 522 + return; [INFO] [stdout] 523 + }; [INFO] [stdout] 524 + [INFO] [stdout] 525 + // Closing brace [INFO] [stdout] 526 + if next == '}' { [INFO] [stdout] 527 + // End of object [INFO] [stdout] 528 + self.read(); [INFO] [stdout] 529 + self.depth -= 1; [INFO] [stdout] 530 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndObject))).await; [INFO] [stdout] 531 + return; [INFO] [stdout] 532 + } [INFO] [stdout] 533 + // Property [INFO] [stdout] 534 + else { [INFO] [stdout] 535 + for token_result in self.read_property(None) { [INFO] [stdout] 536 + if token_result.is_err() { [INFO] [stdout] 537 + y.ret(token_result).await; [INFO] [stdout] 538 + return; [INFO] [stdout] 539 + } [INFO] [stdout] 540 + y.ret(token_result).await; [INFO] [stdout] 541 + } [INFO] [stdout] 542 + } [INFO] [stdout] 543 + } [INFO] [stdout] 544 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:547:9 [INFO] [stdout] | [INFO] [stdout] 547 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 548 | | // Start of object [INFO] [stdout] 549 | | y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartObject))).await; [INFO] [stdout] 550 | | self.depth += 1; [INFO] [stdout] ... | [INFO] [stdout] 595 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 547 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 548 + // Start of object [INFO] [stdout] 549 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartObject))).await; [INFO] [stdout] 550 + self.depth += 1; [INFO] [stdout] 551 + [INFO] [stdout] 552 + // Check exceeded max depth [INFO] [stdout] 553 + if self.depth > self.options.max_depth { [INFO] [stdout] 554 + y.ret(Err("Exceeded max depth")).await; [INFO] [stdout] 555 + return; [INFO] [stdout] 556 + } [INFO] [stdout] 557 + [INFO] [stdout] 558 + // Initial tokens [INFO] [stdout] 559 + if property_name_tokens.is_some() { [INFO] [stdout] 560 + for initial_token_result in self.read_property(property_name_tokens) { [INFO] [stdout] 561 + if initial_token_result.is_err() { [INFO] [stdout] 562 + y.ret(initial_token_result).await; [INFO] [stdout] 563 + return; [INFO] [stdout] 564 + } [INFO] [stdout] 565 + y.ret(initial_token_result).await; [INFO] [stdout] 566 + } [INFO] [stdout] 567 + } [INFO] [stdout] 568 + [INFO] [stdout] 569 + loop { [INFO] [stdout] 570 + // Comments & whitespace [INFO] [stdout] 571 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 572 + if token_result.is_err() { [INFO] [stdout] 573 + y.ret(token_result).await; [INFO] [stdout] 574 + return; [INFO] [stdout] 575 + } [INFO] [stdout] 576 + y.ret(token_result).await; [INFO] [stdout] 577 + } [INFO] [stdout] 578 + [INFO] [stdout] 579 + if self.peek().is_none() { [INFO] [stdout] 580 + // End of braceless object [INFO] [stdout] 581 + self.depth -= 1; [INFO] [stdout] 582 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndObject))).await; [INFO] [stdout] 583 + return; [INFO] [stdout] 584 + }; [INFO] [stdout] 585 + [INFO] [stdout] 586 + // Property [INFO] [stdout] 587 + for token_result in self.read_property(None) { [INFO] [stdout] 588 + if token_result.is_err() { [INFO] [stdout] 589 + y.ret(token_result).await; [INFO] [stdout] 590 + return; [INFO] [stdout] 591 + } [INFO] [stdout] 592 + y.ret(token_result).await; [INFO] [stdout] 593 + } [INFO] [stdout] 594 + } [INFO] [stdout] 595 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:598:9 [INFO] [stdout] | [INFO] [stdout] 598 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 599 | | // Comments & whitespace [INFO] [stdout] 600 | | let mut property_name_tokens: Vec = Vec::new(); [INFO] [stdout] 601 | | for comment_or_whitespace_token_result in self.read_comments_and_whitespace() { [INFO] [stdout] ... | [INFO] [stdout] 632 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 598 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 599 + // Comments & whitespace [INFO] [stdout] 600 + let mut property_name_tokens: Vec = Vec::new(); [INFO] [stdout] 601 + for comment_or_whitespace_token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 602 + if comment_or_whitespace_token_result.is_err() { [INFO] [stdout] 603 + y.ret(comment_or_whitespace_token_result).await; [INFO] [stdout] 604 + return; [INFO] [stdout] 605 + } [INFO] [stdout] 606 + property_name_tokens.push(comment_or_whitespace_token_result.unwrap()); [INFO] [stdout] 607 + } [INFO] [stdout] 608 + [INFO] [stdout] 609 + // Primitive [INFO] [stdout] 610 + if !self.read_one(':') { [INFO] [stdout] 611 + // Primitive [INFO] [stdout] 612 + y.ret(Ok(primitive_token)).await; [INFO] [stdout] 613 + // Comments & whitespace [INFO] [stdout] 614 + for comment_or_whitespace_token in property_name_tokens { [INFO] [stdout] 615 + y.ret(Ok(comment_or_whitespace_token)).await; [INFO] [stdout] 616 + } [INFO] [stdout] 617 + // End of primitive [INFO] [stdout] 618 + return; [INFO] [stdout] 619 + } [INFO] [stdout] 620 + [INFO] [stdout] 621 + // Property name [INFO] [stdout] 622 + property_name_tokens.push(JsonhToken::new(JsonTokenType::PropertyName, primitive_token.value)); [INFO] [stdout] 623 + [INFO] [stdout] 624 + // Braceless object [INFO] [stdout] 625 + for object_token in self.read_braceless_object(Some(property_name_tokens)) { [INFO] [stdout] 626 + if object_token.is_err() { [INFO] [stdout] 627 + y.ret(object_token).await; [INFO] [stdout] 628 + return; [INFO] [stdout] 629 + } [INFO] [stdout] 630 + y.ret(object_token).await; [INFO] [stdout] 631 + } [INFO] [stdout] 632 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:635:9 [INFO] [stdout] | [INFO] [stdout] 635 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 636 | | // Property name [INFO] [stdout] 637 | | if !property_name_tokens.is_none() { [INFO] [stdout] 638 | | for token in property_name_tokens.unwrap() { [INFO] [stdout] ... | [INFO] [stdout] 680 | | self.read_one(','); [INFO] [stdout] 681 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 635 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 636 + // Property name [INFO] [stdout] 637 + if !property_name_tokens.is_none() { [INFO] [stdout] 638 + for token in property_name_tokens.unwrap() { [INFO] [stdout] 639 + y.ret(Ok(token)).await; [INFO] [stdout] 640 + } [INFO] [stdout] 641 + } [INFO] [stdout] 642 + else { [INFO] [stdout] 643 + for token in self.read_property_name() { [INFO] [stdout] 644 + if token.is_err() { [INFO] [stdout] 645 + y.ret(token).await; [INFO] [stdout] 646 + return; [INFO] [stdout] 647 + } [INFO] [stdout] 648 + y.ret(token).await; [INFO] [stdout] 649 + } [INFO] [stdout] 650 + } [INFO] [stdout] 651 + [INFO] [stdout] 652 + // Comments & whitespace [INFO] [stdout] 653 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 654 + if token_result.is_err() { [INFO] [stdout] 655 + y.ret(token_result).await; [INFO] [stdout] 656 + return; [INFO] [stdout] 657 + } [INFO] [stdout] 658 + y.ret(token_result).await; [INFO] [stdout] 659 + } [INFO] [stdout] 660 + [INFO] [stdout] 661 + // Property value [INFO] [stdout] 662 + for token_result in self.read_element() { [INFO] [stdout] 663 + if token_result.is_err() { [INFO] [stdout] 664 + y.ret(token_result).await; [INFO] [stdout] 665 + return; [INFO] [stdout] 666 + } [INFO] [stdout] 667 + y.ret(token_result).await; [INFO] [stdout] 668 + } [INFO] [stdout] 669 + [INFO] [stdout] 670 + // Comments & whitespace [INFO] [stdout] 671 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 672 + if token_result.is_err() { [INFO] [stdout] 673 + y.ret(token_result).await; [INFO] [stdout] 674 + return; [INFO] [stdout] 675 + } [INFO] [stdout] 676 + y.ret(token_result).await; [INFO] [stdout] 677 + } [INFO] [stdout] 678 + [INFO] [stdout] 679 + // Optional comma [INFO] [stdout] 680 + self.read_one(','); [INFO] [stdout] 681 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/jsonh_reader.rs:637:16 [INFO] [stdout] | [INFO] [stdout] 637 | if !property_name_tokens.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `property_name_tokens.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `property_name_tokens` after checking its variant with `is_none` [INFO] [stdout] --> src/jsonh_reader.rs:638:30 [INFO] [stdout] | [INFO] [stdout] 637 | if !property_name_tokens.is_none() { [INFO] [stdout] | ------------------------------ the check is happening here [INFO] [stdout] 638 | for token in property_name_tokens.unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:684:9 [INFO] [stdout] | [INFO] [stdout] 684 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 685 | | // String [INFO] [stdout] 686 | | let string_result: Result = self.read_string(); [INFO] [stdout] 687 | | if string_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 708 | | y.ret(Ok(JsonhToken::new(JsonTokenType::PropertyName, string_result.unwrap().value))).await; [INFO] [stdout] 709 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 684 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 685 + // String [INFO] [stdout] 686 + let string_result: Result = self.read_string(); [INFO] [stdout] 687 + if string_result.is_err() { [INFO] [stdout] 688 + y.ret(string_result).await; [INFO] [stdout] 689 + return; [INFO] [stdout] 690 + } [INFO] [stdout] 691 + [INFO] [stdout] 692 + // Comments & whitespace [INFO] [stdout] 693 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 694 + if token_result.is_err() { [INFO] [stdout] 695 + y.ret(token_result).await; [INFO] [stdout] 696 + return; [INFO] [stdout] 697 + } [INFO] [stdout] 698 + y.ret(token_result).await; [INFO] [stdout] 699 + } [INFO] [stdout] 700 + [INFO] [stdout] 701 + // Colon [INFO] [stdout] 702 + if !self.read_one(':') { [INFO] [stdout] 703 + y.ret(Err("Expected `:` after property name in object")).await; [INFO] [stdout] 704 + return; [INFO] [stdout] 705 + } [INFO] [stdout] 706 + [INFO] [stdout] 707 + // End of property name [INFO] [stdout] 708 + y.ret(Ok(JsonhToken::new(JsonTokenType::PropertyName, string_result.unwrap().value))).await; [INFO] [stdout] 709 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:712:9 [INFO] [stdout] | [INFO] [stdout] 712 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 713 | | // Opening bracket [INFO] [stdout] 714 | | if !self.read_one('[') { [INFO] [stdout] 715 | | y.ret(Err("Expected `[` to start array")).await; [INFO] [stdout] ... | [INFO] [stdout] 769 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 712 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 713 + // Opening bracket [INFO] [stdout] 714 + if !self.read_one('[') { [INFO] [stdout] 715 + y.ret(Err("Expected `[` to start array")).await; [INFO] [stdout] 716 + return; [INFO] [stdout] 717 + } [INFO] [stdout] 718 + // Start of array [INFO] [stdout] 719 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartArray))).await; [INFO] [stdout] 720 + self.depth += 1; [INFO] [stdout] 721 + [INFO] [stdout] 722 + // Check exceeded max depth [INFO] [stdout] 723 + if self.depth > self.options.max_depth { [INFO] [stdout] 724 + y.ret(Err("Exceeded max depth")).await; [INFO] [stdout] 725 + return; [INFO] [stdout] 726 + } [INFO] [stdout] 727 + [INFO] [stdout] 728 + loop { [INFO] [stdout] 729 + // Comments & whitespace [INFO] [stdout] 730 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 731 + if token_result.is_err() { [INFO] [stdout] 732 + y.ret(token_result).await; [INFO] [stdout] 733 + return; [INFO] [stdout] 734 + } [INFO] [stdout] 735 + y.ret(token_result).await; [INFO] [stdout] 736 + } [INFO] [stdout] 737 + [INFO] [stdout] 738 + let Some(next) = self.peek() else { [INFO] [stdout] 739 + // End of incomplete array [INFO] [stdout] 740 + if self.options.incomplete_inputs { [INFO] [stdout] 741 + self.depth -= 1; [INFO] [stdout] 742 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndArray))).await; [INFO] [stdout] 743 + return; [INFO] [stdout] 744 + } [INFO] [stdout] 745 + // Missing closing bracket [INFO] [stdout] 746 + y.ret(Err("Expected `]` to end array, got end of input")).await; [INFO] [stdout] 747 + return; [INFO] [stdout] 748 + }; [INFO] [stdout] 749 + [INFO] [stdout] 750 + // Closing bracket [INFO] [stdout] 751 + if next == ']' { [INFO] [stdout] 752 + // End of array [INFO] [stdout] 753 + self.read(); [INFO] [stdout] 754 + self.depth -= 1; [INFO] [stdout] 755 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndArray))).await; [INFO] [stdout] 756 + return; [INFO] [stdout] 757 + } [INFO] [stdout] 758 + // Item [INFO] [stdout] 759 + else { [INFO] [stdout] 760 + for token_result in self.read_item() { [INFO] [stdout] 761 + if token_result.is_err() { [INFO] [stdout] 762 + y.ret(token_result).await; [INFO] [stdout] 763 + return; [INFO] [stdout] 764 + } [INFO] [stdout] 765 + y.ret(token_result).await; [INFO] [stdout] 766 + } [INFO] [stdout] 767 + } [INFO] [stdout] 768 + } [INFO] [stdout] 769 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:772:9 [INFO] [stdout] | [INFO] [stdout] 772 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 773 | | // Element [INFO] [stdout] 774 | | for token_result in self.read_element() { [INFO] [stdout] 775 | | if token_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 792 | | self.read_one(','); [INFO] [stdout] 793 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 772 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 773 + // Element [INFO] [stdout] 774 + for token_result in self.read_element() { [INFO] [stdout] 775 + if token_result.is_err() { [INFO] [stdout] 776 + y.ret(token_result).await; [INFO] [stdout] 777 + return; [INFO] [stdout] 778 + } [INFO] [stdout] 779 + y.ret(token_result).await; [INFO] [stdout] 780 + } [INFO] [stdout] 781 + [INFO] [stdout] 782 + // Comments & whitespace [INFO] [stdout] 783 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 784 + if token_result.is_err() { [INFO] [stdout] 785 + y.ret(token_result).await; [INFO] [stdout] 786 + return; [INFO] [stdout] 787 + } [INFO] [stdout] 788 + y.ret(token_result).await; [INFO] [stdout] 789 + } [INFO] [stdout] 790 + [INFO] [stdout] 791 + // Optional comma [INFO] [stdout] 792 + self.read_one(','); [INFO] [stdout] 793 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:994:9 [INFO] [stdout] | [INFO] [stdout] 994 | return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 994 - return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] 994 + Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:24:104 [INFO] [stdout] | [INFO] [stdout] 24 | ...version(JsonhVersion::V2) { &Self::RESERVED_CHARS_V2 } else { &Self::RESERVED_CHARS_V1 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Self::RESERVED_CHARS_V2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:24:138 [INFO] [stdout] | [INFO] [stdout] 24 | ...:RESERVED_CHARS_V2 } else { &Self::RESERVED_CHARS_V1 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Self::RESERVED_CHARS_V1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return Self { source: source, options: options, char_counter: 0, depth: 0 }; [INFO] [stdout] 40 + Self { source: source, options: options, char_counter: 0, depth: 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return Self::from_peekable_chars(source.peekable(), options); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return Self::from_peekable_chars(source.peekable(), options); [INFO] [stdout] 44 + Self::from_peekable_chars(source.peekable(), options) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | return Self::from_chars(source.chars(), options); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return Self::from_chars(source.chars(), options); [INFO] [stdout] 48 + Self::from_chars(source.chars(), options) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | return Self::from_str(source.as_str(), options); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 52 - return Self::from_str(source.as_str(), options); [INFO] [stdout] 52 + Self::from_str(source.as_str(), options) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/jsonh_reader.rs:51:32 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn from_string(source: &'a String, options: JsonhReaderOptions) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 ~ pub fn from_string(source: &'a str, options: JsonhReaderOptions) -> Self { [INFO] [stdout] 52 ~ return Self::from_str(source, options); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return Self::from_peekable_chars(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return Self::from_peekable_chars(source, options).parse_element(); [INFO] [stdout] 57 + Self::from_peekable_chars(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return Self::from_chars(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return Self::from_chars(source, options).parse_element(); [INFO] [stdout] 61 + Self::from_chars(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | return Self::from_str(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 65 - return Self::from_str(source, options).parse_element(); [INFO] [stdout] 65 + Self::from_str(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return Self::from_string(source, options).parse_element(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return Self::from_string(source, options).parse_element(); [INFO] [stdout] 69 + Self::from_string(source, options).parse_element() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1060:9 [INFO] [stdout] | [INFO] [stdout] 1060 | return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1060 - return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] 1060 + Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | return next_element; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 193 - return next_element; [INFO] [stdout] 193 + next_element [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/jsonh_reader.rs:1002:9 [INFO] [stdout] | [INFO] [stdout] 1002 | / loop { [INFO] [stdout] 1003 | | // Peek char [INFO] [stdout] 1004 | | let Some(next) = self.peek() else { [INFO] [stdout] 1005 | | break; [INFO] [stdout] ... | [INFO] [stdout] 1036 | | } [INFO] [stdout] | |_________^ help: try: `while let Some(next) = self.peek() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 85 - return false; [INFO] [stdout] 85 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/jsonh_reader.rs:1024:59 [INFO] [stdout] | [INFO] [stdout] 1024 | else if self.reserved_chars().contains(&next) { [INFO] [stdout] | ___________________________________________________________^ [INFO] [stdout] 1025 | | break; [INFO] [stdout] 1026 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/jsonh_reader.rs:1028:57 [INFO] [stdout] | [INFO] [stdout] 1028 | else if Self::NEWLINE_CHARS.contains(&next) { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 1029 | | break; [INFO] [stdout] 1030 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return false; [INFO] [stdout] 91 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | return Err("Expected token, got end of input"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 176 - return Err("Expected token, got end of input"); [INFO] [stdout] 176 + Err("Expected token, got end of input") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1089:9 [INFO] [stdout] | [INFO] [stdout] 1089 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1089 - return false; [INFO] [stdout] 1089 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/jsonh_reader.rs:1063:9 [INFO] [stdout] | [INFO] [stdout] 1063 | / loop { [INFO] [stdout] 1064 | | // Peek char [INFO] [stdout] 1065 | | let Some(next) = self.peek() else { [INFO] [stdout] 1066 | | break; [INFO] [stdout] ... | [INFO] [stdout] 1082 | | self.read(); [INFO] [stdout] 1083 | | } [INFO] [stdout] | |_________^ help: try: `while let Some(next) = self.peek() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1163:9 [INFO] [stdout] | [INFO] [stdout] 1163 | return Ok(JsonhToken::new(JsonTokenType::Number, number_builder.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1163 - return Ok(JsonhToken::new(JsonTokenType::Number, number_builder.clone())); [INFO] [stdout] 1163 + Ok(JsonhToken::new(JsonTokenType::Number, number_builder.clone())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/jsonh_reader.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | / if next_element.is_ok() { [INFO] [stdout] 184 | | if self.options.parse_single_element { [INFO] [stdout] 185 | | for token_result in self.read_end_of_elements() { [INFO] [stdout] 186 | | if let Err(token_error) = token_result { [INFO] [stdout] ... | [INFO] [stdout] 191 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 183 ~ if next_element.is_ok() [INFO] [stdout] 184 ~ && self.options.parse_single_element { [INFO] [stdout] 185 | for token_result in self.read_end_of_elements() { [INFO] [stdout] ... [INFO] [stdout] 189 | } [INFO] [stdout] 190 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:1126:9 [INFO] [stdout] | [INFO] [stdout] 1126 | / if let Err(main_error) = self.read_number_no_exponent(&mut number_builder, base_digits, has_base_specifier, has_leading_... [INFO] [stdout] 1127 | | return Err(main_error); [INFO] [stdout] 1128 | | } [INFO] [stdout] | |_________^ help: replace it with: `self.read_number_no_exponent(&mut number_builder, base_digits, has_base_specifier, has_leading_zero)?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:1126:63 [INFO] [stdout] | [INFO] [stdout] 1126 | ... if let Err(main_error) = self.read_number_no_exponent(&mut number_builder, base_digits, has_base_specifier, has_leading_zero) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `number_builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | / if let Err(token_error) = token_result { [INFO] [stdout] 187 | | return Err(token_error); [INFO] [stdout] 188 | | } [INFO] [stdout] | |_____________________^ help: replace it with: `token_result?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:1142:17 [INFO] [stdout] | [INFO] [stdout] 1142 | / if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] 1143 | | return Err(exponent_error); [INFO] [stdout] 1144 | | } [INFO] [stdout] | |_________________^ help: replace it with: `self.read_number_no_exponent(&mut number_builder, base_digits, false, false)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/jsonh_reader.rs:228:28 [INFO] [stdout] | [INFO] [stdout] 228 | if !(token.json_type == JsonTokenType::Comment && !include_comments) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `token.json_type != JsonTokenType::Comment || include_comments` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:1142:75 [INFO] [stdout] | [INFO] [stdout] 1142 | if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `number_builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `indent` after checking its variant with `is_some` [INFO] [stdout] --> src/jsonh_reader.rs:242:55 [INFO] [stdout] | [INFO] [stdout] 224 | if indent.is_some() { [INFO] [stdout] | ------------------- help: try: `if let Some() = indent` [INFO] [stdout] ... [INFO] [stdout] 242 | result_builder += indent.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:1157:13 [INFO] [stdout] | [INFO] [stdout] 1157 | / if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] 1158 | | return Err(exponent_error); [INFO] [stdout] 1159 | | } [INFO] [stdout] | |_____________^ help: replace it with: `self.read_number_no_exponent(&mut number_builder, base_digits, false, false)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:346:9 [INFO] [stdout] | [INFO] [stdout] 346 | return Err("Expected token, got end of input"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 346 - return Err("Expected token, got end of input"); [INFO] [stdout] 346 + Err("Expected token, got end of input") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:1157:71 [INFO] [stdout] | [INFO] [stdout] 1157 | if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `number_builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1241:9 [INFO] [stdout] | [INFO] [stdout] 1241 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1241 - return Ok(()); [INFO] [stdout] 1241 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/jsonh_reader.rs:1179:9 [INFO] [stdout] | [INFO] [stdout] 1179 | / loop { [INFO] [stdout] 1180 | | // Peek char [INFO] [stdout] 1181 | | let Some(next) = self.peek() else { [INFO] [stdout] 1182 | | break; [INFO] [stdout] ... | [INFO] [stdout] 1223 | | } [INFO] [stdout] | |_________^ help: try: `while let Some(next) = self.peek() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `number` after checking its variant with `is_ok` [INFO] [stdout] --> src/jsonh_reader.rs:1251:52 [INFO] [stdout] | [INFO] [stdout] 1247 | if number.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = number` [INFO] [stdout] ... [INFO] [stdout] 1251 | return self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1251:17 [INFO] [stdout] | [INFO] [stdout] 1251 | return self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1251 - return self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false); [INFO] [stdout] 1251 + self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1255:17 [INFO] [stdout] | [INFO] [stdout] 1255 | return number; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1255 - return number; [INFO] [stdout] 1255 + number [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1260:13 [INFO] [stdout] | [INFO] [stdout] 1260 | return self.read_quoteless_string(number_builder.as_str(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1260 - return self.read_quoteless_string(number_builder.as_str(), false); [INFO] [stdout] 1260 + self.read_quoteless_string(number_builder.as_str(), false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1271:13 [INFO] [stdout] | [INFO] [stdout] 1271 | return self.read_number_or_quoteless_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1271 - return self.read_number_or_quoteless_string(); [INFO] [stdout] 1271 + self.read_number_or_quoteless_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1275:13 [INFO] [stdout] | [INFO] [stdout] 1275 | return self.read_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1275 - return self.read_string(); [INFO] [stdout] 1275 + self.read_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:393:9 [INFO] [stdout] | [INFO] [stdout] 393 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 393 - return false; [INFO] [stdout] 393 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1279:13 [INFO] [stdout] | [INFO] [stdout] 1279 | return self.read_quoteless_string("", false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1279 - return self.read_quoteless_string("", false); [INFO] [stdout] 1279 + self.read_quoteless_string("", false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/jsonh_reader.rs:382:21 [INFO] [stdout] | [INFO] [stdout] 382 | / if current_depth == 1 && token.value == property_name { [INFO] [stdout] 383 | | // Path found [INFO] [stdout] 384 | | return true; [INFO] [stdout] 385 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 381 ~ JsonTokenType::PropertyName [INFO] [stdout] 382 ~ if current_depth == 1 && token.value == property_name => { [INFO] [stdout] 383 | // Path found [INFO] [stdout] 384 | return true; [INFO] [stdout] 385 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1283:9 [INFO] [stdout] | [INFO] [stdout] 1283 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 1284 | | loop { [INFO] [stdout] 1285 | | // Whitespace [INFO] [stdout] 1286 | | self.read_whitespace(); [INFO] [stdout] ... | [INFO] [stdout] 1302 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1283 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 1284 + loop { [INFO] [stdout] 1285 + // Whitespace [INFO] [stdout] 1286 + self.read_whitespace(); [INFO] [stdout] 1287 + [INFO] [stdout] 1288 + // Comment [INFO] [stdout] 1289 + if matches!(self.peek(), Some('#') | Some('/')) { [INFO] [stdout] 1290 + let comment_result: Result = self.read_comment(); [INFO] [stdout] 1291 + if comment_result.is_err() { [INFO] [stdout] 1292 + y.ret(comment_result).await; [INFO] [stdout] 1293 + return; [INFO] [stdout] 1294 + } [INFO] [stdout] 1295 + y.ret(comment_result).await; [INFO] [stdout] 1296 + } [INFO] [stdout] 1297 + // End of comments [INFO] [stdout] 1298 + else { [INFO] [stdout] 1299 + return; [INFO] [stdout] 1300 + } [INFO] [stdout] 1301 + } [INFO] [stdout] 1302 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:401:9 [INFO] [stdout] | [INFO] [stdout] 401 | return self.peek().is_some(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 401 - return self.peek().is_some(); [INFO] [stdout] 401 + self.peek().is_some() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 406 | | // Comments & whitespace [INFO] [stdout] 407 | | for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 408 | | if token_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 419 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 405 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 406 + // Comments & whitespace [INFO] [stdout] 407 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 408 + if token_result.is_err() { [INFO] [stdout] 409 + y.ret(token_result).await; [INFO] [stdout] 410 + return; [INFO] [stdout] 411 + } [INFO] [stdout] 412 + y.ret(token_result).await; [INFO] [stdout] 413 + } [INFO] [stdout] 414 + [INFO] [stdout] 415 + // Peek char [INFO] [stdout] 416 + if self.peek().is_some() { [INFO] [stdout] 417 + y.ret(Err("Expected end of elements")).await; [INFO] [stdout] 418 + } [INFO] [stdout] 419 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 424 | | // Comments & whitespace [INFO] [stdout] 425 | | for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 426 | | if token_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 476 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 423 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 424 + // Comments & whitespace [INFO] [stdout] 425 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 426 + if token_result.is_err() { [INFO] [stdout] 427 + y.ret(token_result).await; [INFO] [stdout] 428 + return; [INFO] [stdout] 429 + } [INFO] [stdout] 430 + y.ret(token_result).await; [INFO] [stdout] 431 + } [INFO] [stdout] 432 + [INFO] [stdout] 433 + // Peek char [INFO] [stdout] 434 + let Some(next) = self.peek() else { [INFO] [stdout] 435 + y.ret(Err("Expected token, got end of input")).await; [INFO] [stdout] 436 + return; [INFO] [stdout] 437 + }; [INFO] [stdout] 438 + [INFO] [stdout] 439 + // Object [INFO] [stdout] 440 + if next == '{' { [INFO] [stdout] 441 + for token_result in self.read_object() { [INFO] [stdout] 442 + if token_result.is_err() { [INFO] [stdout] 443 + y.ret(token_result).await; [INFO] [stdout] 444 + return; [INFO] [stdout] 445 + } [INFO] [stdout] 446 + y.ret(token_result).await; [INFO] [stdout] 447 + } [INFO] [stdout] 448 + } [INFO] [stdout] 449 + // Array [INFO] [stdout] 450 + else if next == '[' { [INFO] [stdout] 451 + for token_result in self.read_array() { [INFO] [stdout] 452 + if token_result.is_err() { [INFO] [stdout] 453 + y.ret(token_result).await; [INFO] [stdout] 454 + return; [INFO] [stdout] 455 + } [INFO] [stdout] 456 + y.ret(token_result).await; [INFO] [stdout] 457 + } [INFO] [stdout] 458 + } [INFO] [stdout] 459 + // Primitive value (null, true, false, string, number) [INFO] [stdout] 460 + else { [INFO] [stdout] 461 + let token_result: Result = self.read_primitive_element(); [INFO] [stdout] 462 + if token_result.is_err() { [INFO] [stdout] 463 + y.ret(token_result).await; [INFO] [stdout] 464 + return; [INFO] [stdout] 465 + } [INFO] [stdout] 466 + [INFO] [stdout] 467 + // Detect braceless object from property name [INFO] [stdout] 468 + for token_result2 in self.read_braceless_object_or_end_of_primitive(token_result.unwrap()) { [INFO] [stdout] 469 + if token_result2.is_err() { [INFO] [stdout] 470 + y.ret(token_result2).await; [INFO] [stdout] 471 + return; [INFO] [stdout] 472 + } [INFO] [stdout] 473 + y.ret(token_result2).await; [INFO] [stdout] 474 + } [INFO] [stdout] 475 + } [INFO] [stdout] 476 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1432:9 [INFO] [stdout] | [INFO] [stdout] 1432 | return Ok(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1432 - return Ok(value); [INFO] [stdout] 1432 + Ok(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1446:13 [INFO] [stdout] | [INFO] [stdout] 1446 | return Ok(Some('\\')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1446 - return Ok(Some('\\')); [INFO] [stdout] 1446 + Ok(Some('\\')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1450:13 [INFO] [stdout] | [INFO] [stdout] 1450 | return Ok(Some('\x08')); // "\b" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1450 - return Ok(Some('\x08')); // "\b" [INFO] [stdout] 1450 + Ok(Some('\x08'))// "\b" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1454:13 [INFO] [stdout] | [INFO] [stdout] 1454 | return Ok(Some('\x0c')); // "\f" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1454 - return Ok(Some('\x0c')); // "\f" [INFO] [stdout] 1454 + Ok(Some('\x0c'))// "\f" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1458:13 [INFO] [stdout] | [INFO] [stdout] 1458 | return Ok(Some('\n')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1458 - return Ok(Some('\n')); [INFO] [stdout] 1458 + Ok(Some('\n')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1462:13 [INFO] [stdout] | [INFO] [stdout] 1462 | return Ok(Some('\r')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1462 - return Ok(Some('\r')); [INFO] [stdout] 1462 + Ok(Some('\r')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1466:13 [INFO] [stdout] | [INFO] [stdout] 1466 | return Ok(Some('\t')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1466 - return Ok(Some('\t')); [INFO] [stdout] 1466 + Ok(Some('\t')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1470:13 [INFO] [stdout] | [INFO] [stdout] 1470 | return Ok(Some('\x0b')); // "\v" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1470 - return Ok(Some('\x0b')); // "\v" [INFO] [stdout] 1470 + Ok(Some('\x0b'))// "\v" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1474:13 [INFO] [stdout] | [INFO] [stdout] 1474 | return Ok(Some('\0')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1474 - return Ok(Some('\0')); [INFO] [stdout] 1474 + Ok(Some('\0')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1478:13 [INFO] [stdout] | [INFO] [stdout] 1478 | return Ok(Some('\x07')); // "\a" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1478 - return Ok(Some('\x07')); // "\a" [INFO] [stdout] 1478 + Ok(Some('\x07'))// "\a" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1482:13 [INFO] [stdout] | [INFO] [stdout] 1482 | return Ok(Some('\x1b')); // "\e" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1482 - return Ok(Some('\x1b')); // "\e" [INFO] [stdout] 1482 + Ok(Some('\x1b'))// "\e" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1486:13 [INFO] [stdout] | [INFO] [stdout] 1486 | return self.read_hex_escape_sequence::<4>(high_surrogate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1486 - return self.read_hex_escape_sequence::<4>(high_surrogate); [INFO] [stdout] 1486 + self.read_hex_escape_sequence::<4>(high_surrogate) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1490:13 [INFO] [stdout] | [INFO] [stdout] 1490 | return self.read_hex_escape_sequence::<2>(high_surrogate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1490 - return self.read_hex_escape_sequence::<2>(high_surrogate); [INFO] [stdout] 1490 + self.read_hex_escape_sequence::<2>(high_surrogate) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1494:13 [INFO] [stdout] | [INFO] [stdout] 1494 | return self.read_hex_escape_sequence::<8>(high_surrogate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1494 - return self.read_hex_escape_sequence::<8>(high_surrogate); [INFO] [stdout] 1494 + self.read_hex_escape_sequence::<8>(high_surrogate) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1502:13 [INFO] [stdout] | [INFO] [stdout] 1502 | return Ok(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1502 - return Ok(None); [INFO] [stdout] 1502 + Ok(None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1506:13 [INFO] [stdout] | [INFO] [stdout] 1506 | return Ok(Some(escape_char)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1506 - return Ok(Some(escape_char)); [INFO] [stdout] 1506 + Ok(Some(escape_char)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 481 | | // Opening brace [INFO] [stdout] 482 | | if !self.read_one('{') { [INFO] [stdout] ... | [INFO] [stdout] 544 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 480 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 481 + // Opening brace [INFO] [stdout] 482 + if !self.read_one('{') { [INFO] [stdout] 483 + // Braceless object [INFO] [stdout] 484 + for token_result in self.read_braceless_object(None) { [INFO] [stdout] 485 + if token_result.is_err() { [INFO] [stdout] 486 + y.ret(token_result).await; [INFO] [stdout] 487 + return; [INFO] [stdout] 488 + } [INFO] [stdout] 489 + y.ret(token_result).await; [INFO] [stdout] 490 + } [INFO] [stdout] 491 + return; [INFO] [stdout] 492 + } [INFO] [stdout] 493 + // Start of object [INFO] [stdout] 494 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartObject))).await; [INFO] [stdout] 495 + self.depth += 1; [INFO] [stdout] 496 + [INFO] [stdout] 497 + // Check exceeded max depth [INFO] [stdout] 498 + if self.depth > self.options.max_depth { [INFO] [stdout] 499 + y.ret(Err("Exceeded max depth")).await; [INFO] [stdout] 500 + return; [INFO] [stdout] 501 + } [INFO] [stdout] 502 + [INFO] [stdout] 503 + loop { [INFO] [stdout] 504 + // Comments & whitespace [INFO] [stdout] 505 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 506 + if token_result.is_err() { [INFO] [stdout] 507 + y.ret(token_result).await; [INFO] [stdout] 508 + return; [INFO] [stdout] 509 + } [INFO] [stdout] 510 + y.ret(token_result).await; [INFO] [stdout] 511 + } [INFO] [stdout] 512 + [INFO] [stdout] 513 + let Some(next) = self.peek() else { [INFO] [stdout] 514 + // End of incomplete object [INFO] [stdout] 515 + if self.options.incomplete_inputs { [INFO] [stdout] 516 + self.depth -= 1; [INFO] [stdout] 517 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndObject))).await; [INFO] [stdout] 518 + return; [INFO] [stdout] 519 + } [INFO] [stdout] 520 + // Missing closing brace [INFO] [stdout] 521 + y.ret(Err("Expected `}` to end object, got end of input")).await; [INFO] [stdout] 522 + return; [INFO] [stdout] 523 + }; [INFO] [stdout] 524 + [INFO] [stdout] 525 + // Closing brace [INFO] [stdout] 526 + if next == '}' { [INFO] [stdout] 527 + // End of object [INFO] [stdout] 528 + self.read(); [INFO] [stdout] 529 + self.depth -= 1; [INFO] [stdout] 530 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndObject))).await; [INFO] [stdout] 531 + return; [INFO] [stdout] 532 + } [INFO] [stdout] 533 + // Property [INFO] [stdout] 534 + else { [INFO] [stdout] 535 + for token_result in self.read_property(None) { [INFO] [stdout] 536 + if token_result.is_err() { [INFO] [stdout] 537 + y.ret(token_result).await; [INFO] [stdout] 538 + return; [INFO] [stdout] 539 + } [INFO] [stdout] 540 + y.ret(token_result).await; [INFO] [stdout] 541 + } [INFO] [stdout] 542 + } [INFO] [stdout] 543 + } [INFO] [stdout] 544 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `high_surrogate` after checking its variant with `is_some` [INFO] [stdout] --> src/jsonh_reader.rs:1517:76 [INFO] [stdout] | [INFO] [stdout] 1516 | if high_surrogate.is_some() { [INFO] [stdout] | --------------------------- help: try: `if let Some() = high_surrogate` [INFO] [stdout] 1517 | let combined: u32 = match Self::utf16_surrogates_to_code_point(high_surrogate.unwrap(), code_point) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1521:13 [INFO] [stdout] | [INFO] [stdout] 1521 | / return match char::from_u32(combined) { [INFO] [stdout] 1522 | | Some(combined_char) => Ok(Some(combined_char)), [INFO] [stdout] 1523 | | None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1524 | | }; [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1521 ~ match char::from_u32(combined) { [INFO] [stdout] 1522 + Some(combined_char) => Ok(Some(combined_char)), [INFO] [stdout] 1523 + None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1524 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1529:17 [INFO] [stdout] | [INFO] [stdout] 1529 | return self.read_escape_sequence(Some(code_point)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1529 - return self.read_escape_sequence(Some(code_point)); [INFO] [stdout] 1529 + self.read_escape_sequence(Some(code_point)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1533:17 [INFO] [stdout] | [INFO] [stdout] 1533 | / return match char::from_u32(code_point) { [INFO] [stdout] 1534 | | Some(code_point_char) => Ok(Some(code_point_char)), [INFO] [stdout] 1535 | | None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1536 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1533 ~ match char::from_u32(code_point) { [INFO] [stdout] 1534 + Some(code_point_char) => Ok(Some(code_point_char)), [INFO] [stdout] 1535 + None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1536 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_reader.rs:1510:31 [INFO] [stdout] | [INFO] [stdout] 1510 | let code_point: u32 = match self.read_hex_sequence::() { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 1511 | | Ok(code_point) => code_point, [INFO] [stdout] 1512 | | Err(err) => return Err(err), [INFO] [stdout] 1513 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.read_hex_sequence::()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_reader.rs:1517:33 [INFO] [stdout] | [INFO] [stdout] 1517 | let combined: u32 = match Self::utf16_surrogates_to_code_point(high_surrogate.unwrap(), code_point) { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 1518 | | Ok(combined) => combined, [INFO] [stdout] 1519 | | Err(err) => return Err(err), [INFO] [stdout] 1520 | | }; [INFO] [stdout] | |_____________^ help: try instead: `Self::utf16_surrogates_to_code_point(high_surrogate.unwrap(), code_point)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1541:9 [INFO] [stdout] | [INFO] [stdout] 1541 | return self.source.peek().copied(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1541 - return self.source.peek().copied(); [INFO] [stdout] 1541 + self.source.peek().copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1544:9 [INFO] [stdout] | [INFO] [stdout] 1544 | return self.source.next(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1544 - return self.source.next(); [INFO] [stdout] 1544 + self.source.next() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1551:9 [INFO] [stdout] | [INFO] [stdout] 1551 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1551 - return false; [INFO] [stdout] 1551 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1562:9 [INFO] [stdout] | [INFO] [stdout] 1562 | return Some(next); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1562 - return Some(next); [INFO] [stdout] 1562 + Some(next) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1571:9 [INFO] [stdout] | [INFO] [stdout] 1571 | return Ok(0x10000 + (((high_surrogate - 0xD800) << 10) | (low_surrogate - 0xDC00))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1571 - return Ok(0x10000 + (((high_surrogate - 0xD800) << 10) | (low_surrogate - 0xDC00))); [INFO] [stdout] 1571 + Ok(0x10000 + (((high_surrogate - 0xD800) << 10) | (low_surrogate - 0xDC00))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:547:9 [INFO] [stdout] | [INFO] [stdout] 547 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 548 | | // Start of object [INFO] [stdout] 549 | | y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartObject))).await; [INFO] [stdout] 550 | | self.depth += 1; [INFO] [stdout] ... | [INFO] [stdout] 595 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 547 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 548 + // Start of object [INFO] [stdout] 549 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartObject))).await; [INFO] [stdout] 550 + self.depth += 1; [INFO] [stdout] 551 + [INFO] [stdout] 552 + // Check exceeded max depth [INFO] [stdout] 553 + if self.depth > self.options.max_depth { [INFO] [stdout] 554 + y.ret(Err("Exceeded max depth")).await; [INFO] [stdout] 555 + return; [INFO] [stdout] 556 + } [INFO] [stdout] 557 + [INFO] [stdout] 558 + // Initial tokens [INFO] [stdout] 559 + if property_name_tokens.is_some() { [INFO] [stdout] 560 + for initial_token_result in self.read_property(property_name_tokens) { [INFO] [stdout] 561 + if initial_token_result.is_err() { [INFO] [stdout] 562 + y.ret(initial_token_result).await; [INFO] [stdout] 563 + return; [INFO] [stdout] 564 + } [INFO] [stdout] 565 + y.ret(initial_token_result).await; [INFO] [stdout] 566 + } [INFO] [stdout] 567 + } [INFO] [stdout] 568 + [INFO] [stdout] 569 + loop { [INFO] [stdout] 570 + // Comments & whitespace [INFO] [stdout] 571 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 572 + if token_result.is_err() { [INFO] [stdout] 573 + y.ret(token_result).await; [INFO] [stdout] 574 + return; [INFO] [stdout] 575 + } [INFO] [stdout] 576 + y.ret(token_result).await; [INFO] [stdout] 577 + } [INFO] [stdout] 578 + [INFO] [stdout] 579 + if self.peek().is_none() { [INFO] [stdout] 580 + // End of braceless object [INFO] [stdout] 581 + self.depth -= 1; [INFO] [stdout] 582 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndObject))).await; [INFO] [stdout] 583 + return; [INFO] [stdout] 584 + }; [INFO] [stdout] 585 + [INFO] [stdout] 586 + // Property [INFO] [stdout] 587 + for token_result in self.read_property(None) { [INFO] [stdout] 588 + if token_result.is_err() { [INFO] [stdout] 589 + y.ret(token_result).await; [INFO] [stdout] 590 + return; [INFO] [stdout] 591 + } [INFO] [stdout] 592 + y.ret(token_result).await; [INFO] [stdout] 593 + } [INFO] [stdout] 594 + } [INFO] [stdout] 595 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1574:9 [INFO] [stdout] | [INFO] [stdout] 1574 | return code_point >= 0xD800 && code_point <= 0xDBFF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1574 - return code_point >= 0xD800 && code_point <= 0xDBFF; [INFO] [stdout] 1574 + code_point >= 0xD800 && code_point <= 0xDBFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1577:9 [INFO] [stdout] | [INFO] [stdout] 1577 | return code_point >= 0xDC00 && code_point <= 0xDFFF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1577 - return code_point >= 0xDC00 && code_point <= 0xDFFF; [INFO] [stdout] 1577 + code_point >= 0xDC00 && code_point <= 0xDFFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | return Self { json_type: json_type, value: value }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 - return Self { json_type: json_type, value: value }; [INFO] [stdout] 15 + Self { json_type: json_type, value: value } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_token.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | return Self::new(json_type, String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 19 - return Self::new(json_type, String::new()); [INFO] [stdout] 19 + Self::new(json_type, String::new()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_token.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return false; [INFO] [stdout] 25 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:598:9 [INFO] [stdout] | [INFO] [stdout] 598 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 599 | | // Comments & whitespace [INFO] [stdout] 600 | | let mut property_name_tokens: Vec = Vec::new(); [INFO] [stdout] 601 | | for comment_or_whitespace_token_result in self.read_comments_and_whitespace() { [INFO] [stdout] ... | [INFO] [stdout] 632 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 598 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 599 + // Comments & whitespace [INFO] [stdout] 600 + let mut property_name_tokens: Vec = Vec::new(); [INFO] [stdout] 601 + for comment_or_whitespace_token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 602 + if comment_or_whitespace_token_result.is_err() { [INFO] [stdout] 603 + y.ret(comment_or_whitespace_token_result).await; [INFO] [stdout] 604 + return; [INFO] [stdout] 605 + } [INFO] [stdout] 606 + property_name_tokens.push(comment_or_whitespace_token_result.unwrap()); [INFO] [stdout] 607 + } [INFO] [stdout] 608 + [INFO] [stdout] 609 + // Primitive [INFO] [stdout] 610 + if !self.read_one(':') { [INFO] [stdout] 611 + // Primitive [INFO] [stdout] 612 + y.ret(Ok(primitive_token)).await; [INFO] [stdout] 613 + // Comments & whitespace [INFO] [stdout] 614 + for comment_or_whitespace_token in property_name_tokens { [INFO] [stdout] 615 + y.ret(Ok(comment_or_whitespace_token)).await; [INFO] [stdout] 616 + } [INFO] [stdout] 617 + // End of primitive [INFO] [stdout] 618 + return; [INFO] [stdout] 619 + } [INFO] [stdout] 620 + [INFO] [stdout] 621 + // Property name [INFO] [stdout] 622 + property_name_tokens.push(JsonhToken::new(JsonTokenType::PropertyName, primitive_token.value)); [INFO] [stdout] 623 + [INFO] [stdout] 624 + // Braceless object [INFO] [stdout] 625 + for object_token in self.read_braceless_object(Some(property_name_tokens)) { [INFO] [stdout] 626 + if object_token.is_err() { [INFO] [stdout] 627 + y.ret(object_token).await; [INFO] [stdout] 628 + return; [INFO] [stdout] 629 + } [INFO] [stdout] 630 + y.ret(object_token).await; [INFO] [stdout] 631 + } [INFO] [stdout] 632 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `JsonhReaderOptions` [INFO] [stdout] --> src/jsonh_reader_options.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | / pub fn new() -> Self { [INFO] [stdout] 48 | | return Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false }; [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 45 + impl Default for JsonhReaderOptions { [INFO] [stdout] 46 + fn default() -> Self { [INFO] [stdout] 47 + Self::new() [INFO] [stdout] 48 + } [INFO] [stdout] 49 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | return Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false }; [INFO] [stdout] 48 + Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return options_version >= given_version; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return options_version >= given_version; [INFO] [stdout] 57 + options_version >= given_version [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - return self; [INFO] [stdout] 62 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 - return self; [INFO] [stdout] 74 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 92 - return self; [INFO] [stdout] 92 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 105 - return self; [INFO] [stdout] 105 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:635:9 [INFO] [stdout] | [INFO] [stdout] 635 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 636 | | // Property name [INFO] [stdout] 637 | | if !property_name_tokens.is_none() { [INFO] [stdout] 638 | | for token in property_name_tokens.unwrap() { [INFO] [stdout] ... | [INFO] [stdout] 680 | | self.read_one(','); [INFO] [stdout] 681 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 635 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 636 + // Property name [INFO] [stdout] 637 + if !property_name_tokens.is_none() { [INFO] [stdout] 638 + for token in property_name_tokens.unwrap() { [INFO] [stdout] 639 + y.ret(Ok(token)).await; [INFO] [stdout] 640 + } [INFO] [stdout] 641 + } [INFO] [stdout] 642 + else { [INFO] [stdout] 643 + for token in self.read_property_name() { [INFO] [stdout] 644 + if token.is_err() { [INFO] [stdout] 645 + y.ret(token).await; [INFO] [stdout] 646 + return; [INFO] [stdout] 647 + } [INFO] [stdout] 648 + y.ret(token).await; [INFO] [stdout] 649 + } [INFO] [stdout] 650 + } [INFO] [stdout] 651 + [INFO] [stdout] 652 + // Comments & whitespace [INFO] [stdout] 653 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 654 + if token_result.is_err() { [INFO] [stdout] 655 + y.ret(token_result).await; [INFO] [stdout] 656 + return; [INFO] [stdout] 657 + } [INFO] [stdout] 658 + y.ret(token_result).await; [INFO] [stdout] 659 + } [INFO] [stdout] 660 + [INFO] [stdout] 661 + // Property value [INFO] [stdout] 662 + for token_result in self.read_element() { [INFO] [stdout] 663 + if token_result.is_err() { [INFO] [stdout] 664 + y.ret(token_result).await; [INFO] [stdout] 665 + return; [INFO] [stdout] 666 + } [INFO] [stdout] 667 + y.ret(token_result).await; [INFO] [stdout] 668 + } [INFO] [stdout] 669 + [INFO] [stdout] 670 + // Comments & whitespace [INFO] [stdout] 671 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 672 + if token_result.is_err() { [INFO] [stdout] 673 + y.ret(token_result).await; [INFO] [stdout] 674 + return; [INFO] [stdout] 675 + } [INFO] [stdout] 676 + y.ret(token_result).await; [INFO] [stdout] 677 + } [INFO] [stdout] 678 + [INFO] [stdout] 679 + // Optional comma [INFO] [stdout] 680 + self.read_one(','); [INFO] [stdout] 681 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/jsonh_reader.rs:637:16 [INFO] [stdout] | [INFO] [stdout] 637 | if !property_name_tokens.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `property_name_tokens.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `property_name_tokens` after checking its variant with `is_none` [INFO] [stdout] --> src/jsonh_reader.rs:638:30 [INFO] [stdout] | [INFO] [stdout] 637 | if !property_name_tokens.is_none() { [INFO] [stdout] | ------------------------------ the check is happening here [INFO] [stdout] 638 | for token in property_name_tokens.unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | return Ok(number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return Ok(number); [INFO] [stdout] 59 + Ok(number) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:50:31 [INFO] [stdout] | [INFO] [stdout] 50 | let mut number: f64 = match Self::parse_fractional_number_with_exponent(digits, base_digits) { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 51 | | Ok(number) => number, [INFO] [stdout] 52 | | Err(number_error) => return Err(number_error), [INFO] [stdout] 53 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_fractional_number_with_exponent(digits, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | return Ok(mantissa * (10 as f64).powf(exponent)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 105 - return Ok(mantissa * (10 as f64).powf(exponent)); [INFO] [stdout] 105 + Ok(mantissa * (10 as f64).powf(exponent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:684:9 [INFO] [stdout] | [INFO] [stdout] 684 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 685 | | // String [INFO] [stdout] 686 | | let string_result: Result = self.read_string(); [INFO] [stdout] 687 | | if string_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 708 | | y.ret(Ok(JsonhToken::new(JsonTokenType::PropertyName, string_result.unwrap().value))).await; [INFO] [stdout] 709 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 684 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 685 + // String [INFO] [stdout] 686 + let string_result: Result = self.read_string(); [INFO] [stdout] 687 + if string_result.is_err() { [INFO] [stdout] 688 + y.ret(string_result).await; [INFO] [stdout] 689 + return; [INFO] [stdout] 690 + } [INFO] [stdout] 691 + [INFO] [stdout] 692 + // Comments & whitespace [INFO] [stdout] 693 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 694 + if token_result.is_err() { [INFO] [stdout] 695 + y.ret(token_result).await; [INFO] [stdout] 696 + return; [INFO] [stdout] 697 + } [INFO] [stdout] 698 + y.ret(token_result).await; [INFO] [stdout] 699 + } [INFO] [stdout] 700 + [INFO] [stdout] 701 + // Colon [INFO] [stdout] 702 + if !self.read_one(':') { [INFO] [stdout] 703 + y.ret(Err("Expected `:` after property name in object")).await; [INFO] [stdout] 704 + return; [INFO] [stdout] 705 + } [INFO] [stdout] 706 + [INFO] [stdout] 707 + // End of property name [INFO] [stdout] 708 + y.ret(Ok(JsonhToken::new(JsonTokenType::PropertyName, string_result.unwrap().value))).await; [INFO] [stdout] 709 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:95:29 [INFO] [stdout] | [INFO] [stdout] 95 | let mantissa: f64 = match Self::parse_fractional_number(mantissa_part, base_digits) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 96 | | Ok(mantissa) => mantissa, [INFO] [stdout] 97 | | Err(mantissa_error) => return Err(mantissa_error), [INFO] [stdout] 98 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_fractional_number(mantissa_part, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:99:29 [INFO] [stdout] | [INFO] [stdout] 99 | let exponent: f64 = match Self::parse_fractional_number(exponent_part, base_digits) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 100 | | Ok(exponent) => exponent, [INFO] [stdout] 101 | | Err(exponent_error) => return Err(exponent_error), [INFO] [stdout] 102 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_fractional_number(exponent_part, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `f64` is unnecessary [INFO] [stdout] --> src/jsonh_number_parser.rs:105:30 [INFO] [stdout] | [INFO] [stdout] 105 | return Ok(mantissa * (10 as f64).powf(exponent)); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `10_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | return Ok(whole + fraction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 150 - return Ok(whole + fraction); [INFO] [stdout] 150 + Ok(whole + fraction) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:129:26 [INFO] [stdout] | [INFO] [stdout] 129 | let whole: f64 = match Self::parse_whole_number(whole_part, base_digits) { [INFO] [stdout] | __________________________^ [INFO] [stdout] 130 | | Ok(whole) => whole, [INFO] [stdout] 131 | | Err(whole_error) => return Err(whole_error), [INFO] [stdout] 132 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_whole_number(whole_part, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | return Ok(integer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 - return Ok(integer); [INFO] [stdout] 192 + Ok(integer) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:712:9 [INFO] [stdout] | [INFO] [stdout] 712 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 713 | | // Opening bracket [INFO] [stdout] 714 | | if !self.read_one('[') { [INFO] [stdout] 715 | | y.ret(Err("Expected `[` to start array")).await; [INFO] [stdout] ... | [INFO] [stdout] 769 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 712 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 713 + // Opening bracket [INFO] [stdout] 714 + if !self.read_one('[') { [INFO] [stdout] 715 + y.ret(Err("Expected `[` to start array")).await; [INFO] [stdout] 716 + return; [INFO] [stdout] 717 + } [INFO] [stdout] 718 + // Start of array [INFO] [stdout] 719 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::StartArray))).await; [INFO] [stdout] 720 + self.depth += 1; [INFO] [stdout] 721 + [INFO] [stdout] 722 + // Check exceeded max depth [INFO] [stdout] 723 + if self.depth > self.options.max_depth { [INFO] [stdout] 724 + y.ret(Err("Exceeded max depth")).await; [INFO] [stdout] 725 + return; [INFO] [stdout] 726 + } [INFO] [stdout] 727 + [INFO] [stdout] 728 + loop { [INFO] [stdout] 729 + // Comments & whitespace [INFO] [stdout] 730 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 731 + if token_result.is_err() { [INFO] [stdout] 732 + y.ret(token_result).await; [INFO] [stdout] 733 + return; [INFO] [stdout] 734 + } [INFO] [stdout] 735 + y.ret(token_result).await; [INFO] [stdout] 736 + } [INFO] [stdout] 737 + [INFO] [stdout] 738 + let Some(next) = self.peek() else { [INFO] [stdout] 739 + // End of incomplete array [INFO] [stdout] 740 + if self.options.incomplete_inputs { [INFO] [stdout] 741 + self.depth -= 1; [INFO] [stdout] 742 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndArray))).await; [INFO] [stdout] 743 + return; [INFO] [stdout] 744 + } [INFO] [stdout] 745 + // Missing closing bracket [INFO] [stdout] 746 + y.ret(Err("Expected `]` to end array, got end of input")).await; [INFO] [stdout] 747 + return; [INFO] [stdout] 748 + }; [INFO] [stdout] 749 + [INFO] [stdout] 750 + // Closing bracket [INFO] [stdout] 751 + if next == ']' { [INFO] [stdout] 752 + // End of array [INFO] [stdout] 753 + self.read(); [INFO] [stdout] 754 + self.depth -= 1; [INFO] [stdout] 755 + y.ret(Ok(JsonhToken::new_empty(JsonTokenType::EndArray))).await; [INFO] [stdout] 756 + return; [INFO] [stdout] 757 + } [INFO] [stdout] 758 + // Item [INFO] [stdout] 759 + else { [INFO] [stdout] 760 + for token_result in self.read_item() { [INFO] [stdout] 761 + if token_result.is_err() { [INFO] [stdout] 762 + y.ret(token_result).await; [INFO] [stdout] 763 + return; [INFO] [stdout] 764 + } [INFO] [stdout] 765 + y.ret(token_result).await; [INFO] [stdout] 766 + } [INFO] [stdout] 767 + } [INFO] [stdout] 768 + } [INFO] [stdout] 769 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:772:9 [INFO] [stdout] | [INFO] [stdout] 772 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 773 | | // Element [INFO] [stdout] 774 | | for token_result in self.read_element() { [INFO] [stdout] 775 | | if token_result.is_err() { [INFO] [stdout] ... | [INFO] [stdout] 792 | | self.read_one(','); [INFO] [stdout] 793 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 772 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 773 + // Element [INFO] [stdout] 774 + for token_result in self.read_element() { [INFO] [stdout] 775 + if token_result.is_err() { [INFO] [stdout] 776 + y.ret(token_result).await; [INFO] [stdout] 777 + return; [INFO] [stdout] 778 + } [INFO] [stdout] 779 + y.ret(token_result).await; [INFO] [stdout] 780 + } [INFO] [stdout] 781 + [INFO] [stdout] 782 + // Comments & whitespace [INFO] [stdout] 783 + for token_result in self.read_comments_and_whitespace() { [INFO] [stdout] 784 + if token_result.is_err() { [INFO] [stdout] 785 + y.ret(token_result).await; [INFO] [stdout] 786 + return; [INFO] [stdout] 787 + } [INFO] [stdout] 788 + y.ret(token_result).await; [INFO] [stdout] 789 + } [INFO] [stdout] 790 + [INFO] [stdout] 791 + // Optional comma [INFO] [stdout] 792 + self.read_one(','); [INFO] [stdout] 793 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:994:9 [INFO] [stdout] | [INFO] [stdout] 994 | return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 994 - return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] 994 + Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1060:9 [INFO] [stdout] | [INFO] [stdout] 1060 | return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1060 - return Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())); [INFO] [stdout] 1060 + Ok(JsonhToken::new(JsonTokenType::String, string_builder.to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/jsonh_reader.rs:1002:9 [INFO] [stdout] | [INFO] [stdout] 1002 | / loop { [INFO] [stdout] 1003 | | // Peek char [INFO] [stdout] 1004 | | let Some(next) = self.peek() else { [INFO] [stdout] 1005 | | break; [INFO] [stdout] ... | [INFO] [stdout] 1036 | | } [INFO] [stdout] | |_________^ help: try: `while let Some(next) = self.peek() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/jsonh_reader.rs:1024:59 [INFO] [stdout] | [INFO] [stdout] 1024 | else if self.reserved_chars().contains(&next) { [INFO] [stdout] | ___________________________________________________________^ [INFO] [stdout] 1025 | | break; [INFO] [stdout] 1026 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/jsonh_reader.rs:1028:57 [INFO] [stdout] | [INFO] [stdout] 1028 | else if Self::NEWLINE_CHARS.contains(&next) { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 1029 | | break; [INFO] [stdout] 1030 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1089:9 [INFO] [stdout] | [INFO] [stdout] 1089 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1089 - return false; [INFO] [stdout] 1089 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/jsonh_reader.rs:1063:9 [INFO] [stdout] | [INFO] [stdout] 1063 | / loop { [INFO] [stdout] 1064 | | // Peek char [INFO] [stdout] 1065 | | let Some(next) = self.peek() else { [INFO] [stdout] 1066 | | break; [INFO] [stdout] ... | [INFO] [stdout] 1082 | | self.read(); [INFO] [stdout] 1083 | | } [INFO] [stdout] | |_________^ help: try: `while let Some(next) = self.peek() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1163:9 [INFO] [stdout] | [INFO] [stdout] 1163 | return Ok(JsonhToken::new(JsonTokenType::Number, number_builder.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1163 - return Ok(JsonhToken::new(JsonTokenType::Number, number_builder.clone())); [INFO] [stdout] 1163 + Ok(JsonhToken::new(JsonTokenType::Number, number_builder.clone())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:1126:9 [INFO] [stdout] | [INFO] [stdout] 1126 | / if let Err(main_error) = self.read_number_no_exponent(&mut number_builder, base_digits, has_base_specifier, has_leading_... [INFO] [stdout] 1127 | | return Err(main_error); [INFO] [stdout] 1128 | | } [INFO] [stdout] | |_________^ help: replace it with: `self.read_number_no_exponent(&mut number_builder, base_digits, has_base_specifier, has_leading_zero)?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:1126:63 [INFO] [stdout] | [INFO] [stdout] 1126 | ... if let Err(main_error) = self.read_number_no_exponent(&mut number_builder, base_digits, has_base_specifier, has_leading_zero) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `number_builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:1142:17 [INFO] [stdout] | [INFO] [stdout] 1142 | / if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] 1143 | | return Err(exponent_error); [INFO] [stdout] 1144 | | } [INFO] [stdout] | |_________________^ help: replace it with: `self.read_number_no_exponent(&mut number_builder, base_digits, false, false)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:1142:75 [INFO] [stdout] | [INFO] [stdout] 1142 | if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `number_builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/jsonh_reader.rs:1157:13 [INFO] [stdout] | [INFO] [stdout] 1157 | / if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] 1158 | | return Err(exponent_error); [INFO] [stdout] 1159 | | } [INFO] [stdout] | |_____________^ help: replace it with: `self.read_number_no_exponent(&mut number_builder, base_digits, false, false)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/jsonh_reader.rs:1157:71 [INFO] [stdout] | [INFO] [stdout] 1157 | if let Err(exponent_error) = self.read_number_no_exponent(&mut number_builder, base_digits, false, false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `number_builder` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1241:9 [INFO] [stdout] | [INFO] [stdout] 1241 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1241 - return Ok(()); [INFO] [stdout] 1241 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/jsonh_reader.rs:1179:9 [INFO] [stdout] | [INFO] [stdout] 1179 | / loop { [INFO] [stdout] 1180 | | // Peek char [INFO] [stdout] 1181 | | let Some(next) = self.peek() else { [INFO] [stdout] 1182 | | break; [INFO] [stdout] ... | [INFO] [stdout] 1223 | | } [INFO] [stdout] | |_________^ help: try: `while let Some(next) = self.peek() { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `number` after checking its variant with `is_ok` [INFO] [stdout] --> src/jsonh_reader.rs:1251:52 [INFO] [stdout] | [INFO] [stdout] 1247 | if number.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = number` [INFO] [stdout] ... [INFO] [stdout] 1251 | return self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1251:17 [INFO] [stdout] | [INFO] [stdout] 1251 | return self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1251 - return self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false); [INFO] [stdout] 1251 + self.read_quoteless_string((number.unwrap().value + whitespace_chars.as_str()).as_str(), false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1255:17 [INFO] [stdout] | [INFO] [stdout] 1255 | return number; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1255 - return number; [INFO] [stdout] 1255 + number [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1260:13 [INFO] [stdout] | [INFO] [stdout] 1260 | return self.read_quoteless_string(number_builder.as_str(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1260 - return self.read_quoteless_string(number_builder.as_str(), false); [INFO] [stdout] 1260 + self.read_quoteless_string(number_builder.as_str(), false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1271:13 [INFO] [stdout] | [INFO] [stdout] 1271 | return self.read_number_or_quoteless_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1271 - return self.read_number_or_quoteless_string(); [INFO] [stdout] 1271 + self.read_number_or_quoteless_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1275:13 [INFO] [stdout] | [INFO] [stdout] 1275 | return self.read_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1275 - return self.read_string(); [INFO] [stdout] 1275 + self.read_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1279:13 [INFO] [stdout] | [INFO] [stdout] 1279 | return self.read_quoteless_string("", false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1279 - return self.read_quoteless_string("", false); [INFO] [stdout] 1279 + self.read_quoteless_string("", false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1283:9 [INFO] [stdout] | [INFO] [stdout] 1283 | / return LocalIter::new(|mut y| async move { [INFO] [stdout] 1284 | | loop { [INFO] [stdout] 1285 | | // Whitespace [INFO] [stdout] 1286 | | self.read_whitespace(); [INFO] [stdout] ... | [INFO] [stdout] 1302 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1283 ~ LocalIter::new(|mut y| async move { [INFO] [stdout] 1284 + loop { [INFO] [stdout] 1285 + // Whitespace [INFO] [stdout] 1286 + self.read_whitespace(); [INFO] [stdout] 1287 + [INFO] [stdout] 1288 + // Comment [INFO] [stdout] 1289 + if matches!(self.peek(), Some('#') | Some('/')) { [INFO] [stdout] 1290 + let comment_result: Result = self.read_comment(); [INFO] [stdout] 1291 + if comment_result.is_err() { [INFO] [stdout] 1292 + y.ret(comment_result).await; [INFO] [stdout] 1293 + return; [INFO] [stdout] 1294 + } [INFO] [stdout] 1295 + y.ret(comment_result).await; [INFO] [stdout] 1296 + } [INFO] [stdout] 1297 + // End of comments [INFO] [stdout] 1298 + else { [INFO] [stdout] 1299 + return; [INFO] [stdout] 1300 + } [INFO] [stdout] 1301 + } [INFO] [stdout] 1302 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1432:9 [INFO] [stdout] | [INFO] [stdout] 1432 | return Ok(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1432 - return Ok(value); [INFO] [stdout] 1432 + Ok(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1446:13 [INFO] [stdout] | [INFO] [stdout] 1446 | return Ok(Some('\\')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1446 - return Ok(Some('\\')); [INFO] [stdout] 1446 + Ok(Some('\\')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1450:13 [INFO] [stdout] | [INFO] [stdout] 1450 | return Ok(Some('\x08')); // "\b" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1450 - return Ok(Some('\x08')); // "\b" [INFO] [stdout] 1450 + Ok(Some('\x08'))// "\b" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1454:13 [INFO] [stdout] | [INFO] [stdout] 1454 | return Ok(Some('\x0c')); // "\f" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1454 - return Ok(Some('\x0c')); // "\f" [INFO] [stdout] 1454 + Ok(Some('\x0c'))// "\f" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1458:13 [INFO] [stdout] | [INFO] [stdout] 1458 | return Ok(Some('\n')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1458 - return Ok(Some('\n')); [INFO] [stdout] 1458 + Ok(Some('\n')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1462:13 [INFO] [stdout] | [INFO] [stdout] 1462 | return Ok(Some('\r')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1462 - return Ok(Some('\r')); [INFO] [stdout] 1462 + Ok(Some('\r')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1466:13 [INFO] [stdout] | [INFO] [stdout] 1466 | return Ok(Some('\t')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1466 - return Ok(Some('\t')); [INFO] [stdout] 1466 + Ok(Some('\t')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1470:13 [INFO] [stdout] | [INFO] [stdout] 1470 | return Ok(Some('\x0b')); // "\v" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1470 - return Ok(Some('\x0b')); // "\v" [INFO] [stdout] 1470 + Ok(Some('\x0b'))// "\v" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1474:13 [INFO] [stdout] | [INFO] [stdout] 1474 | return Ok(Some('\0')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1474 - return Ok(Some('\0')); [INFO] [stdout] 1474 + Ok(Some('\0')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1478:13 [INFO] [stdout] | [INFO] [stdout] 1478 | return Ok(Some('\x07')); // "\a" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1478 - return Ok(Some('\x07')); // "\a" [INFO] [stdout] 1478 + Ok(Some('\x07'))// "\a" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1482:13 [INFO] [stdout] | [INFO] [stdout] 1482 | return Ok(Some('\x1b')); // "\e" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1482 - return Ok(Some('\x1b')); // "\e" [INFO] [stdout] 1482 + Ok(Some('\x1b'))// "\e" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1486:13 [INFO] [stdout] | [INFO] [stdout] 1486 | return self.read_hex_escape_sequence::<4>(high_surrogate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1486 - return self.read_hex_escape_sequence::<4>(high_surrogate); [INFO] [stdout] 1486 + self.read_hex_escape_sequence::<4>(high_surrogate) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1490:13 [INFO] [stdout] | [INFO] [stdout] 1490 | return self.read_hex_escape_sequence::<2>(high_surrogate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1490 - return self.read_hex_escape_sequence::<2>(high_surrogate); [INFO] [stdout] 1490 + self.read_hex_escape_sequence::<2>(high_surrogate) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1494:13 [INFO] [stdout] | [INFO] [stdout] 1494 | return self.read_hex_escape_sequence::<8>(high_surrogate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1494 - return self.read_hex_escape_sequence::<8>(high_surrogate); [INFO] [stdout] 1494 + self.read_hex_escape_sequence::<8>(high_surrogate) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1502:13 [INFO] [stdout] | [INFO] [stdout] 1502 | return Ok(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1502 - return Ok(None); [INFO] [stdout] 1502 + Ok(None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1506:13 [INFO] [stdout] | [INFO] [stdout] 1506 | return Ok(Some(escape_char)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1506 - return Ok(Some(escape_char)); [INFO] [stdout] 1506 + Ok(Some(escape_char)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `high_surrogate` after checking its variant with `is_some` [INFO] [stdout] --> src/jsonh_reader.rs:1517:76 [INFO] [stdout] | [INFO] [stdout] 1516 | if high_surrogate.is_some() { [INFO] [stdout] | --------------------------- help: try: `if let Some() = high_surrogate` [INFO] [stdout] 1517 | let combined: u32 = match Self::utf16_surrogates_to_code_point(high_surrogate.unwrap(), code_point) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1521:13 [INFO] [stdout] | [INFO] [stdout] 1521 | / return match char::from_u32(combined) { [INFO] [stdout] 1522 | | Some(combined_char) => Ok(Some(combined_char)), [INFO] [stdout] 1523 | | None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1524 | | }; [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1521 ~ match char::from_u32(combined) { [INFO] [stdout] 1522 + Some(combined_char) => Ok(Some(combined_char)), [INFO] [stdout] 1523 + None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1524 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1529:17 [INFO] [stdout] | [INFO] [stdout] 1529 | return self.read_escape_sequence(Some(code_point)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1529 - return self.read_escape_sequence(Some(code_point)); [INFO] [stdout] 1529 + self.read_escape_sequence(Some(code_point)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1533:17 [INFO] [stdout] | [INFO] [stdout] 1533 | / return match char::from_u32(code_point) { [INFO] [stdout] 1534 | | Some(code_point_char) => Ok(Some(code_point_char)), [INFO] [stdout] 1535 | | None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1536 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1533 ~ match char::from_u32(code_point) { [INFO] [stdout] 1534 + Some(code_point_char) => Ok(Some(code_point_char)), [INFO] [stdout] 1535 + None => Err("Invalid hex escape sequence"), [INFO] [stdout] 1536 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_reader.rs:1510:31 [INFO] [stdout] | [INFO] [stdout] 1510 | let code_point: u32 = match self.read_hex_sequence::() { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 1511 | | Ok(code_point) => code_point, [INFO] [stdout] 1512 | | Err(err) => return Err(err), [INFO] [stdout] 1513 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.read_hex_sequence::()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_reader.rs:1517:33 [INFO] [stdout] | [INFO] [stdout] 1517 | let combined: u32 = match Self::utf16_surrogates_to_code_point(high_surrogate.unwrap(), code_point) { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 1518 | | Ok(combined) => combined, [INFO] [stdout] 1519 | | Err(err) => return Err(err), [INFO] [stdout] 1520 | | }; [INFO] [stdout] | |_____________^ help: try instead: `Self::utf16_surrogates_to_code_point(high_surrogate.unwrap(), code_point)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1541:9 [INFO] [stdout] | [INFO] [stdout] 1541 | return self.source.peek().copied(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1541 - return self.source.peek().copied(); [INFO] [stdout] 1541 + self.source.peek().copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1544:9 [INFO] [stdout] | [INFO] [stdout] 1544 | return self.source.next(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1544 - return self.source.next(); [INFO] [stdout] 1544 + self.source.next() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1551:9 [INFO] [stdout] | [INFO] [stdout] 1551 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1551 - return false; [INFO] [stdout] 1551 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1562:9 [INFO] [stdout] | [INFO] [stdout] 1562 | return Some(next); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1562 - return Some(next); [INFO] [stdout] 1562 + Some(next) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1571:9 [INFO] [stdout] | [INFO] [stdout] 1571 | return Ok(0x10000 + (((high_surrogate - 0xD800) << 10) | (low_surrogate - 0xDC00))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1571 - return Ok(0x10000 + (((high_surrogate - 0xD800) << 10) | (low_surrogate - 0xDC00))); [INFO] [stdout] 1571 + Ok(0x10000 + (((high_surrogate - 0xD800) << 10) | (low_surrogate - 0xDC00))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1574:9 [INFO] [stdout] | [INFO] [stdout] 1574 | return code_point >= 0xD800 && code_point <= 0xDBFF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1574 - return code_point >= 0xD800 && code_point <= 0xDBFF; [INFO] [stdout] 1574 + code_point >= 0xD800 && code_point <= 0xDBFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader.rs:1577:9 [INFO] [stdout] | [INFO] [stdout] 1577 | return code_point >= 0xDC00 && code_point <= 0xDFFF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1577 - return code_point >= 0xDC00 && code_point <= 0xDFFF; [INFO] [stdout] 1577 + code_point >= 0xDC00 && code_point <= 0xDFFF [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | return Self { json_type: json_type, value: value }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 - return Self { json_type: json_type, value: value }; [INFO] [stdout] 15 + Self { json_type: json_type, value: value } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_token.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | return Self::new(json_type, String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 19 - return Self::new(json_type, String::new()); [INFO] [stdout] 19 + Self::new(json_type, String::new()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_token.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return false; [INFO] [stdout] 25 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `JsonhReaderOptions` [INFO] [stdout] --> src/jsonh_reader_options.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | / pub fn new() -> Self { [INFO] [stdout] 48 | | return Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false }; [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 45 + impl Default for JsonhReaderOptions { [INFO] [stdout] 46 + fn default() -> Self { [INFO] [stdout] 47 + Self::new() [INFO] [stdout] 48 + } [INFO] [stdout] 49 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | return Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false }; [INFO] [stdout] 48 + Self { version: JsonhVersion::Latest, parse_single_element: false, max_depth: 64, incomplete_inputs: false } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return options_version >= given_version; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return options_version >= given_version; [INFO] [stdout] 57 + options_version >= given_version [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - return self; [INFO] [stdout] 62 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 - return self; [INFO] [stdout] 74 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 92 - return self; [INFO] [stdout] 92 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_reader_options.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 105 - return self; [INFO] [stdout] 105 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | return Ok(number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return Ok(number); [INFO] [stdout] 59 + Ok(number) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:50:31 [INFO] [stdout] | [INFO] [stdout] 50 | let mut number: f64 = match Self::parse_fractional_number_with_exponent(digits, base_digits) { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 51 | | Ok(number) => number, [INFO] [stdout] 52 | | Err(number_error) => return Err(number_error), [INFO] [stdout] 53 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_fractional_number_with_exponent(digits, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | return Ok(mantissa * (10 as f64).powf(exponent)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 105 - return Ok(mantissa * (10 as f64).powf(exponent)); [INFO] [stdout] 105 + Ok(mantissa * (10 as f64).powf(exponent)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:95:29 [INFO] [stdout] | [INFO] [stdout] 95 | let mantissa: f64 = match Self::parse_fractional_number(mantissa_part, base_digits) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 96 | | Ok(mantissa) => mantissa, [INFO] [stdout] 97 | | Err(mantissa_error) => return Err(mantissa_error), [INFO] [stdout] 98 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_fractional_number(mantissa_part, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:99:29 [INFO] [stdout] | [INFO] [stdout] 99 | let exponent: f64 = match Self::parse_fractional_number(exponent_part, base_digits) { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 100 | | Ok(exponent) => exponent, [INFO] [stdout] 101 | | Err(exponent_error) => return Err(exponent_error), [INFO] [stdout] 102 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_fractional_number(exponent_part, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `f64` is unnecessary [INFO] [stdout] --> src/jsonh_number_parser.rs:105:30 [INFO] [stdout] | [INFO] [stdout] 105 | return Ok(mantissa * (10 as f64).powf(exponent)); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `10_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | return Ok(whole + fraction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 150 - return Ok(whole + fraction); [INFO] [stdout] 150 + Ok(whole + fraction) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/jsonh_number_parser.rs:129:26 [INFO] [stdout] | [INFO] [stdout] 129 | let whole: f64 = match Self::parse_whole_number(whole_part, base_digits) { [INFO] [stdout] | __________________________^ [INFO] [stdout] 130 | | Ok(whole) => whole, [INFO] [stdout] 131 | | Err(whole_error) => return Err(whole_error), [INFO] [stdout] 132 | | }; [INFO] [stdout] | |_________^ help: try instead: `Self::parse_whole_number(whole_part, base_digits)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/jsonh_number_parser.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | return Ok(integer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 - return Ok(integer); [INFO] [stdout] 192 + Ok(integer) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.27s [INFO] running `Command { std: "docker" "inspect" "9e9da782cda02beeaf4d678f3d81c6d80153cea0921d1df08a46d2f43394ae4d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9e9da782cda02beeaf4d678f3d81c6d80153cea0921d1df08a46d2f43394ae4d", kill_on_drop: false }` [INFO] [stdout] 9e9da782cda02beeaf4d678f3d81c6d80153cea0921d1df08a46d2f43394ae4d