[INFO] crate flatbuffers-rust 0.1.2 is already in cache [INFO] extracting crate flatbuffers-rust 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/flatbuffers-rust/0.1.2 [INFO] extracting crate flatbuffers-rust 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/flatbuffers-rust/0.1.2 [INFO] validating manifest of flatbuffers-rust-0.1.2 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of flatbuffers-rust-0.1.2 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing flatbuffers-rust-0.1.2 [INFO] finished frobbing flatbuffers-rust-0.1.2 [INFO] frobbed toml for flatbuffers-rust-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/flatbuffers-rust/0.1.2/Cargo.toml [INFO] started frobbing flatbuffers-rust-0.1.2 [INFO] finished frobbing flatbuffers-rust-0.1.2 [INFO] frobbed toml for flatbuffers-rust-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/flatbuffers-rust/0.1.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting flatbuffers-rust-0.1.2 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/flatbuffers-rust/0.1.2:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 4aaa5a44866797ed6ec895951c40fc6f4b8f1fc672904fc6fed328c89ce74e9a [INFO] running `"docker" "start" "-a" "4aaa5a44866797ed6ec895951c40fc6f4b8f1fc672904fc6fed328c89ce74e9a"` [INFO] [stderr] Checking flatbuffers-rust v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:290:29 [INFO] [stderr] | [INFO] [stderr] 290 | Err(e) => continue, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:34 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^ help: replace it with: `t` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^ help: replace it with: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:46 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^ help: replace it with: `l` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:52 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `child` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:66 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^ help: replace it with: `p` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:290:29 [INFO] [stderr] | [INFO] [stderr] 290 | Err(e) => continue, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:34 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^ help: replace it with: `t` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^ help: replace it with: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:46 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^ help: replace it with: `l` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:52 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `child` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:30:66 [INFO] [stderr] | [INFO] [stderr] 30 | Some(FlatBufferVar { t: t, v: v, l: l, child: child, p:p }) [INFO] [stderr] | ^^^ help: replace it with: `p` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:322:9 [INFO] [stderr] | [INFO] [stderr] 322 | return Err(format!("No this instance named {:?}", name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("No this instance named {:?}", name))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | return data.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `data.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | return Err(format!("NO field named {:?}", name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("NO field named {:?}", name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | return Err(format!("NO struct named {:?}", name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("NO struct named {:?}", name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | return Ok(position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | return Ok(position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:120:16 [INFO] [stderr] | [INFO] [stderr] 120 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 121 | | [INFO] [stderr] 122 | | if field_type.starts_with("List<") { [INFO] [stderr] 123 | | // 是 List [INFO] [stderr] ... | [INFO] [stderr] 142 | | // return Ok(position_vec); [INFO] [stderr] 143 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 120 | } else if field_type.starts_with("List<") { [INFO] [stderr] 121 | // 是 List [INFO] [stderr] 122 | // 将 内部的 T 解析出来 [INFO] [stderr] 123 | let (list_str, inner_type) = field_type.split_at(5); [INFO] [stderr] 124 | let mut inner_type_string = String::from(inner_type);// T> [INFO] [stderr] 125 | let last = inner_type_string.len() - 1; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:201:17 [INFO] [stderr] | [INFO] [stderr] 201 | return self.field_position_vec_inner(inner_type_string.as_str(), fields, position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.field_position_vec_inner(inner_type_string.as_str(), fields, position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | return self.field_position_vec_inner(field_type, fields, position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.field_position_vec_inner(field_type, fields, position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:322:9 [INFO] [stderr] | [INFO] [stderr] 322 | return Err(format!("No this instance named {:?}", name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("No this instance named {:?}", name))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | return data.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `data.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | return Err(format!("NO field named {:?}", name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("NO field named {:?}", name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | return Err(format!("NO struct named {:?}", name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("NO struct named {:?}", name))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | return Ok(position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | return Ok(position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:120:16 [INFO] [stderr] | [INFO] [stderr] 120 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 121 | | [INFO] [stderr] 122 | | if field_type.starts_with("List<") { [INFO] [stderr] 123 | | // 是 List [INFO] [stderr] ... | [INFO] [stderr] 142 | | // return Ok(position_vec); [INFO] [stderr] 143 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 120 | } else if field_type.starts_with("List<") { [INFO] [stderr] 121 | // 是 List [INFO] [stderr] 122 | // 将 内部的 T 解析出来 [INFO] [stderr] 123 | let (list_str, inner_type) = field_type.split_at(5); [INFO] [stderr] 124 | let mut inner_type_string = String::from(inner_type);// T> [INFO] [stderr] 125 | let last = inner_type_string.len() - 1; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:201:17 [INFO] [stderr] | [INFO] [stderr] 201 | return self.field_position_vec_inner(inner_type_string.as_str(), fields, position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.field_position_vec_inner(inner_type_string.as_str(), fields, position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | return self.field_position_vec_inner(field_type, fields, position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.field_position_vec_inner(field_type, fields, position_vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:66:18 [INFO] [stderr] | [INFO] [stderr] 66 | Some(pivot) => { bytes.push(SEPARATOR); root = 1;}, [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:290:29 [INFO] [stderr] | [INFO] [stderr] 290 | Err(e) => continue, [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | for i in 0..len { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | for i in 0..member_num { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:225:25 [INFO] [stderr] | [INFO] [stderr] 225 | let (bytes, pivot) = match handler.get_part_data(1 + p as usize, root, data) { [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:260:25 [INFO] [stderr] | [INFO] [stderr] 260 | let (bytes, pivot) = match handler.get_part_data(1 + p as usize, root, data) { [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `want_vec` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | let mut want_vec = Vec::new(); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `want_root` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | let mut want_root = 0; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:100:27 [INFO] [stderr] | [INFO] [stderr] 100 | let (end, pivot) = self.get_start(part, slot_num, root, data); [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `start` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | let mut start = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `position` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | let mut position = 0; [INFO] [stderr] | ^^^^^^^^ help: consider using `_position` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `list_str` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:125:22 [INFO] [stderr] | [INFO] [stderr] 125 | let (list_str, inner_type) = field_type.split_at(5); [INFO] [stderr] | ^^^^^^^^ help: consider using `_list_str` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `field_name` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:147:17 [INFO] [stderr] | [INFO] [stderr] 147 | let mut field_name = ""; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:163:21 [INFO] [stderr] | [INFO] [stderr] 163 | Err(e) => break, [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `list_str` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:192:22 [INFO] [stderr] | [INFO] [stderr] 192 | let (list_str, inner_type) = field_type.split_at(5); [INFO] [stderr] | ^^^^^^^^ help: consider using `_list_str` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:364:13 [INFO] [stderr] | [INFO] [stderr] 364 | let mut instance = InstanceInfo { [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | let mut data_vec = data.into_bytes(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | let mut position = 0; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | let mut struct_list = self.struct_list.clone(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | let mut vec:Vec<&str> = string.as_str().split(".").collect(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `flatbuffers::flatbuffer::FlatBuffer` [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> FlatBuffer { [INFO] [stderr] 27 | | FlatBuffer { [INFO] [stderr] 28 | | vtable: None, [INFO] [stderr] 29 | | pivot: None, [INFO] [stderr] 30 | | data: None [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:49:18 [INFO] [stderr] | [INFO] [stderr] 49 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:66:18 [INFO] [stderr] | [INFO] [stderr] 66 | Some(pivot) => { bytes.push(SEPARATOR); root = 1;}, [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:290:29 [INFO] [stderr] | [INFO] [stderr] 290 | Err(e) => continue, [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | for i in 0..len { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | for i in 0..member_num { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:225:25 [INFO] [stderr] | [INFO] [stderr] 225 | let (bytes, pivot) = match handler.get_part_data(1 + p as usize, root, data) { [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:260:25 [INFO] [stderr] | [INFO] [stderr] 260 | let (bytes, pivot) = match handler.get_part_data(1 + p as usize, root, data) { [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `want_vec` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | let mut want_vec = Vec::new(); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `want_root` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | let mut want_root = 0; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pivot` [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:100:27 [INFO] [stderr] | [INFO] [stderr] 100 | let (end, pivot) = self.get_start(part, slot_num, root, data); [INFO] [stderr] | ^^^^^ help: consider using `_pivot` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `start` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | let mut start = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 49 | for in data.iter().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `position` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | let mut position = 0; [INFO] [stderr] | ^^^^^^^^ help: consider using `_position` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `list_str` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:125:22 [INFO] [stderr] | [INFO] [stderr] 125 | let (list_str, inner_type) = field_type.split_at(5); [INFO] [stderr] | ^^^^^^^^ help: consider using `_list_str` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `field_name` is never read [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:147:17 [INFO] [stderr] | [INFO] [stderr] 147 | let mut field_name = ""; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:84:12 [INFO] [stderr] | [INFO] [stderr] 84 | if bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:163:21 [INFO] [stderr] | [INFO] [stderr] 163 | Err(e) => break, [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `list_str` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:192:22 [INFO] [stderr] | [INFO] [stderr] 192 | let (list_str, inner_type) = field_type.split_at(5); [INFO] [stderr] | ^^^^^^^^ help: consider using `_list_str` instead [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `flatbuffers::flatbuffer_builder::FlatBufferBuilder` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / pub fn new() -> FlatBufferBuilder { [INFO] [stderr] 87 | | FlatBufferBuilder { [INFO] [stderr] 88 | | instance_list: Vec::new() [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:103:12 [INFO] [stderr] | [INFO] [stderr] 103 | if data == false { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `!data` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:172:18 [INFO] [stderr] | [INFO] [stderr] 172 | for i in 0..list_num { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 172 | for (i, ) in data.iter().enumerate().take(list_num) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | / match value_any.downcast_ref::() { [INFO] [stderr] 202 | | Some(as_string) => self.add_string(flatbuffer, position, as_string.as_str().to_string()), [INFO] [stderr] 203 | | None => (), [INFO] [stderr] 204 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(as_string) = value_any.downcast_ref::() { self.add_string(flatbuffer, position, as_string.as_str().to_string()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | / match value_any.downcast_ref::() { [INFO] [stderr] 206 | | Some(as_bool) => self.add_bool(flatbuffer, position, *as_bool), [INFO] [stderr] 207 | | None => (), [INFO] [stderr] 208 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(as_bool) = value_any.downcast_ref::() { self.add_bool(flatbuffer, position, *as_bool) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:324:27 [INFO] [stderr] | [INFO] [stderr] 324 | pub fn from_list_bool(&mut self, mem_value: &mut Vec) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `mem_value`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:327:18 [INFO] [stderr] | [INFO] [stderr] 327 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 327 | for in mem_value.iter().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:329:16 [INFO] [stderr] | [INFO] [stderr] 329 | if value == true { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:337:29 [INFO] [stderr] | [INFO] [stderr] 337 | pub fn from_list_string(&mut self, mem_value: &mut Vec) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:347:51 [INFO] [stderr] | [INFO] [stderr] 347 | mem_info_list:&mut Vec>)>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:24:29 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn from_option_bool(&self, data: Option) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | fn from_bool(&self, data: bool) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / let mut data_vec = vec![0u8;1]; [INFO] [stderr] 33 | | if data { [INFO] [stderr] 34 | | data_vec = vec![1u8;1]; [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let data_vec = if data { $ crate :: vec :: from_elem ( $ elem , $ n ) } else { $ crate :: vec :: from_elem ( $ elem , $ n ) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:39:31 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn from_option_string(&self, data: Option) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:46:20 [INFO] [stderr] | [INFO] [stderr] 46 | fn from_string(&self, data: String) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn from_option_vec(&self, data: Option>, e_type: u8) -> Option where T: Any { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:60:37 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn from_vec( &self, data:&Vec, e_type: u8) -> Option where T: Any { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:60:25 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn from_vec( &self, data:&Vec, e_type: u8) -> Option where T: Any { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:364:13 [INFO] [stderr] | [INFO] [stderr] 364 | let mut instance = InstanceInfo { [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: the loop variable `len` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:65:24 [INFO] [stderr] | [INFO] [stderr] 65 | for len in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 65 | for in &data { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `len` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | for len in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 78 | for in &data { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `len` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:97:24 [INFO] [stderr] | [INFO] [stderr] 97 | for len in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 97 | for in &data { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | let mut data_vec = data.into_bytes(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:174:35 [INFO] [stderr] | [INFO] [stderr] 174 | pub fn from_option_flatbuffer(&self, data: Option) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:181:24 [INFO] [stderr] | [INFO] [stderr] 181 | fn from_flatbuffer(&self, data:&mut FlatBuffer) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:196:35 [INFO] [stderr] | [INFO] [stderr] 196 | pub fn to_string(&self, data: &Vec, root: usize) -> String { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:208:33 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn to_bool(&self, data: &Vec, root: usize) -> bool { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | / if data[root] == 0u8 { [INFO] [stderr] 211 | | return false; [INFO] [stderr] 212 | | } else { [INFO] [stderr] 213 | | return true; [INFO] [stderr] 214 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `return !(data[root] == 0u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:217:32 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn to_vec(&self, data: &Vec, root: usize) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:222:23 [INFO] [stderr] | [INFO] [stderr] 222 | let vec_len = data[root] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[root])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:233:39 [INFO] [stderr] | [INFO] [stderr] 233 | pub fn to_vec_string(&self, data: &Vec, root: usize) -> Result, String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:246:35 [INFO] [stderr] | [INFO] [stderr] 246 | pub fn to_struct(&self, data: &Vec, root: usize) -> Result>>, String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:257:23 [INFO] [stderr] | [INFO] [stderr] 257 | let vec_len = data[root] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[root])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:33:16 [INFO] [stderr] | [INFO] [stderr] 33 | -> (FlatBufferType, Option>, Option, Option>, Option) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:18:81 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn get_part_data_level(&self, level:&mut Vec, root: usize, data: &Vec) -> Result<(Option>, usize), String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:34:32 [INFO] [stderr] | [INFO] [stderr] 34 | return Err(format!("访问层次有误")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"访问层次有误".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:51:36 [INFO] [stderr] | [INFO] [stderr] 51 | return Err(format!("访问层次有误")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"访问层次有误".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:58:65 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn get_part_data(&self, part: usize, root: usize, data: &Vec) -> Result<(Option>, usize), String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:88:72 [INFO] [stderr] | [INFO] [stderr] 88 | fn get_end(&self, part: usize, slot_num: usize, root: usize, data: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | let mut position = 0; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:109:74 [INFO] [stderr] | [INFO] [stderr] 109 | fn get_start(&self, part: usize, slot_num: usize, root: usize, data: &Vec) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | / let mut start = 0; [INFO] [stderr] 132 | | // 判断是否有 vtable [INFO] [stderr] 133 | | if data[child_root - 1] == SEPARATOR { [INFO] [stderr] 134 | | // 表示child_root是start [INFO] [stderr] ... | [INFO] [stderr] 139 | | start = child_root - size*child_slot_num as usize -1; // SEPARATOR 也要包括进去 [INFO] [stderr] 140 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let start = if data[child_root - 1] == SEPARATOR { child_root - 1 } else { ..; child_root - size*child_slot_num as usize -1 };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `offset_vec`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:117:18 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..size { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 117 | for in offset_vec.iter().take(size) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | let mut struct_list = self.struct_list.clone(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `fields` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:54:18 [INFO] [stderr] | [INFO] [stderr] 54 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 54 | for (i, ) in fields.iter().enumerate().take(len) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `flatbuffers::flatbuffer_manager::FlatBufferManager<'a>` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | / pub fn new() -> FlatBufferManager<'a> { [INFO] [stderr] 75 | | FlatBufferManager { [INFO] [stderr] 76 | | struct_list: Vec::new() [INFO] [stderr] 77 | | } [INFO] [stderr] 78 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `struct_list` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:84:18 [INFO] [stderr] | [INFO] [stderr] 84 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 84 | for (i, ) in struct_list.iter().enumerate().take(len) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | let mut vec:Vec<&str> = string.as_str().split(".").collect(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `flatbuffers::flatbuffer::FlatBuffer` [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> FlatBuffer { [INFO] [stderr] 27 | | FlatBuffer { [INFO] [stderr] 28 | | vtable: None, [INFO] [stderr] 29 | | pivot: None, [INFO] [stderr] 30 | | data: None [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:118:41 [INFO] [stderr] | [INFO] [stderr] 118 | } else if field_type.eq("bool") { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 119 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 120 | | } else { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:116:36 [INFO] [stderr] | [INFO] [stderr] 116 | if field_type.eq("String") { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 117 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 118 | | } else if field_type.eq("bool") { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:49:18 [INFO] [stderr] | [INFO] [stderr] 49 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 49 | for in data.iter().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | self.field_position_vec_inner(inner_type_string.as_str(), fields, &mut position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/flatbuffers/flatbuffer.rs:84:12 [INFO] [stderr] | [INFO] [stderr] 84 | if bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `bytes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:136:17 [INFO] [stderr] | [INFO] [stderr] 136 | self.field_position_vec_inner(field_type, fields, &mut position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:155:24 [INFO] [stderr] | [INFO] [stderr] 155 | if fields.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `fields.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:184:41 [INFO] [stderr] | [INFO] [stderr] 184 | } else if field_type.eq("bool") { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 185 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 186 | | } else { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:182:36 [INFO] [stderr] | [INFO] [stderr] 182 | if field_type.eq("String") { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 183 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 184 | | } else if field_type.eq("bool") { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `flatbuffers::flatbuffer_builder::FlatBufferBuilder` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / pub fn new() -> FlatBufferBuilder { [INFO] [stderr] 87 | | FlatBufferBuilder { [INFO] [stderr] 88 | | instance_list: Vec::new() [INFO] [stderr] 89 | | } [INFO] [stderr] 90 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:103:12 [INFO] [stderr] | [INFO] [stderr] 103 | if data == false { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `!data` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:212:55 [INFO] [stderr] | [INFO] [stderr] 212 | let mut vec:Vec<&str> = string.as_str().split(".").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:172:18 [INFO] [stderr] | [INFO] [stderr] 172 | for i in 0..list_num { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 172 | for (i, ) in data.iter().enumerate().take(list_num) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | / match value_any.downcast_ref::() { [INFO] [stderr] 202 | | Some(as_string) => self.add_string(flatbuffer, position, as_string.as_str().to_string()), [INFO] [stderr] 203 | | None => (), [INFO] [stderr] 204 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(as_string) = value_any.downcast_ref::() { self.add_string(flatbuffer, position, as_string.as_str().to_string()) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | / match value_any.downcast_ref::() { [INFO] [stderr] 206 | | Some(as_bool) => self.add_bool(flatbuffer, position, *as_bool), [INFO] [stderr] 207 | | None => (), [INFO] [stderr] 208 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(as_bool) = value_any.downcast_ref::() { self.add_bool(flatbuffer, position, *as_bool) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:216:16 [INFO] [stderr] | [INFO] [stderr] 216 | if e_s.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `e_s.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `fields`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:228:18 [INFO] [stderr] | [INFO] [stderr] 228 | for i in 0..fields.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 228 | for in &fields { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:324:27 [INFO] [stderr] | [INFO] [stderr] 324 | pub fn from_list_bool(&mut self, mem_value: &mut Vec) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `mem_value`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:327:18 [INFO] [stderr] | [INFO] [stderr] 327 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 327 | for in mem_value.iter().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:329:16 [INFO] [stderr] | [INFO] [stderr] 329 | if value == true { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:337:29 [INFO] [stderr] | [INFO] [stderr] 337 | pub fn from_list_string(&mut self, mem_value: &mut Vec) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/flatbuffers/flatbuffer_builder.rs:347:51 [INFO] [stderr] | [INFO] [stderr] 347 | mem_info_list:&mut Vec>)>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:24:29 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn from_option_bool(&self, data: Option) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | fn from_bool(&self, data: bool) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / let mut data_vec = vec![0u8;1]; [INFO] [stderr] 33 | | if data { [INFO] [stderr] 34 | | data_vec = vec![1u8;1]; [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let data_vec = if data { $ crate :: vec :: from_elem ( $ elem , $ n ) } else { $ crate :: vec :: from_elem ( $ elem , $ n ) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:39:31 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn from_option_string(&self, data: Option) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:46:20 [INFO] [stderr] | [INFO] [stderr] 46 | fn from_string(&self, data: String) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn from_option_vec(&self, data: Option>, e_type: u8) -> Option where T: Any { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:60:37 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn from_vec( &self, data:&Vec, e_type: u8) -> Option where T: Any { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:60:25 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn from_vec( &self, data:&Vec, e_type: u8) -> Option where T: Any { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: the loop variable `len` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:65:24 [INFO] [stderr] | [INFO] [stderr] 65 | for len in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 65 | for in &data { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `len` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | for len in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 78 | for in &data { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `len` is only used to index `data`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:97:24 [INFO] [stderr] | [INFO] [stderr] 97 | for len in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 97 | for in &data { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:174:35 [INFO] [stderr] | [INFO] [stderr] 174 | pub fn from_option_flatbuffer(&self, data: Option) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:181:24 [INFO] [stderr] | [INFO] [stderr] 181 | fn from_flatbuffer(&self, data:&mut FlatBuffer) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: Could not compile `flatbuffers-rust`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:196:35 [INFO] [stderr] | [INFO] [stderr] 196 | pub fn to_string(&self, data: &Vec, root: usize) -> String { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:208:33 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn to_bool(&self, data: &Vec, root: usize) -> bool { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | / if data[root] == 0u8 { [INFO] [stderr] 211 | | return false; [INFO] [stderr] 212 | | } else { [INFO] [stderr] 213 | | return true; [INFO] [stderr] 214 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `return !(data[root] == 0u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:217:32 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn to_vec(&self, data: &Vec, root: usize) -> Result>, String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:222:23 [INFO] [stderr] | [INFO] [stderr] 222 | let vec_len = data[root] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[root])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:233:39 [INFO] [stderr] | [INFO] [stderr] 233 | pub fn to_vec_string(&self, data: &Vec, root: usize) -> Result, String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:246:35 [INFO] [stderr] | [INFO] [stderr] 246 | pub fn to_struct(&self, data: &Vec, root: usize) -> Result>>, String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/flatbuffers/flatbuffer_helper.rs:257:23 [INFO] [stderr] | [INFO] [stderr] 257 | let vec_len = data[root] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[root])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/flatbuffers/flatbuffer_var.rs:33:16 [INFO] [stderr] | [INFO] [stderr] 33 | -> (FlatBufferType, Option>, Option, Option>, Option) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:18:81 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn get_part_data_level(&self, level:&mut Vec, root: usize, data: &Vec) -> Result<(Option>, usize), String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:34:32 [INFO] [stderr] | [INFO] [stderr] 34 | return Err(format!("访问层次有误")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"访问层次有误".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:51:36 [INFO] [stderr] | [INFO] [stderr] 51 | return Err(format!("访问层次有误")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"访问层次有误".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:58:65 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn get_part_data(&self, part: usize, root: usize, data: &Vec) -> Result<(Option>, usize), String> { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:88:72 [INFO] [stderr] | [INFO] [stderr] 88 | fn get_end(&self, part: usize, slot_num: usize, root: usize, data: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:109:74 [INFO] [stderr] | [INFO] [stderr] 109 | fn get_start(&self, part: usize, slot_num: usize, root: usize, data: &Vec) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | / let mut start = 0; [INFO] [stderr] 132 | | // 判断是否有 vtable [INFO] [stderr] 133 | | if data[child_root - 1] == SEPARATOR { [INFO] [stderr] 134 | | // 表示child_root是start [INFO] [stderr] ... | [INFO] [stderr] 139 | | start = child_root - size*child_slot_num as usize -1; // SEPARATOR 也要包括进去 [INFO] [stderr] 140 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let start = if data[child_root - 1] == SEPARATOR { child_root - 1 } else { ..; child_root - size*child_slot_num as usize -1 };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `offset_vec`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_handler.rs:117:18 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..size { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 117 | for in offset_vec.iter().take(size) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `fields` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:54:18 [INFO] [stderr] | [INFO] [stderr] 54 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 54 | for (i, ) in fields.iter().enumerate().take(len) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `flatbuffers::flatbuffer_manager::FlatBufferManager<'a>` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | / pub fn new() -> FlatBufferManager<'a> { [INFO] [stderr] 75 | | FlatBufferManager { [INFO] [stderr] 76 | | struct_list: Vec::new() [INFO] [stderr] 77 | | } [INFO] [stderr] 78 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `struct_list` [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:84:18 [INFO] [stderr] | [INFO] [stderr] 84 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 84 | for (i, ) in struct_list.iter().enumerate().take(len) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:118:41 [INFO] [stderr] | [INFO] [stderr] 118 | } else if field_type.eq("bool") { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 119 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 120 | | } else { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:116:36 [INFO] [stderr] | [INFO] [stderr] 116 | if field_type.eq("String") { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 117 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 118 | | } else if field_type.eq("bool") { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | self.field_position_vec_inner(inner_type_string.as_str(), fields, &mut position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:136:17 [INFO] [stderr] | [INFO] [stderr] 136 | self.field_position_vec_inner(field_type, fields, &mut position_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:155:24 [INFO] [stderr] | [INFO] [stderr] 155 | if fields.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `fields.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:184:41 [INFO] [stderr] | [INFO] [stderr] 184 | } else if field_type.eq("bool") { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 185 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 186 | | } else { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:182:36 [INFO] [stderr] | [INFO] [stderr] 182 | if field_type.eq("String") { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 183 | | return Err(format!("{:?} has not {:?}",struct_name, fields.pop().unwrap())); [INFO] [stderr] 184 | | } else if field_type.eq("bool") { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:212:55 [INFO] [stderr] | [INFO] [stderr] 212 | let mut vec:Vec<&str> = string.as_str().split(".").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:216:16 [INFO] [stderr] | [INFO] [stderr] 216 | if e_s.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `e_s.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `fields`. [INFO] [stderr] --> src/flatbuffers/flatbuffer_manager.rs:228:18 [INFO] [stderr] | [INFO] [stderr] 228 | for i in 0..fields.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 228 | for in &fields { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `flatbuffers-rust`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4aaa5a44866797ed6ec895951c40fc6f4b8f1fc672904fc6fed328c89ce74e9a"` [INFO] running `"docker" "rm" "-f" "4aaa5a44866797ed6ec895951c40fc6f4b8f1fc672904fc6fed328c89ce74e9a"` [INFO] [stdout] 4aaa5a44866797ed6ec895951c40fc6f4b8f1fc672904fc6fed328c89ce74e9a