[INFO] fetching crate spacetimedb-bindgen 0.2.0... [INFO] linting spacetimedb-bindgen-0.2.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate spacetimedb-bindgen 0.2.0 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate spacetimedb-bindgen 0.2.0 [INFO] finished tweaking crates.io crate spacetimedb-bindgen 0.2.0 [INFO] tweaked toml for crates.io crate spacetimedb-bindgen 0.2.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate spacetimedb-bindgen 0.2.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 28 packages to latest compatible versions [INFO] [stderr] Adding convert_case v0.5.0 (available: v0.11.0) [INFO] [stderr] Adding syn v1.0.109 (available: v2.0.117) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded parse_duration v2.1.1 [INFO] [stderr] Downloaded convert_case v0.5.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dc35778f8e244219662fb52ed02e38788834989f378376a155308a5ad4d95d38 [INFO] running `Command { std: "docker" "start" "-a" "dc35778f8e244219662fb52ed02e38788834989f378376a155308a5ad4d95d38", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dc35778f8e244219662fb52ed02e38788834989f378376a155308a5ad4d95d38", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc35778f8e244219662fb52ed02e38788834989f378376a155308a5ad4d95d38", kill_on_drop: false }` [INFO] [stdout] dc35778f8e244219662fb52ed02e38788834989f378376a155308a5ad4d95d38 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d5251c98e746acc34973d4473eec0030bb4a13ba2fcc72e5f64c6d2dcb6a3c36 [INFO] running `Command { std: "docker" "start" "-a" "d5251c98e746acc34973d4473eec0030bb4a13ba2fcc72e5f64c6d2dcb6a3c36", kill_on_drop: false }` [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Compiling substring v1.4.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking itoa v1.0.17 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking serde_core v1.0.228 [INFO] [stderr] Checking zmij v1.0.21 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking convert_case v0.5.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num v0.2.1 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking parse_duration v2.1.1 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking spacetimedb-bindgen v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/module.rs:41:71 [INFO] [stdout] | [INFO] [stdout] 41 | elements.push(type_to_tuple_schema(argument, col_num, &*arg.ty)); [INFO] [stdout] | ^^^^^^^^ help: try: `&arg.ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/lib.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | if *(&args.len()) > 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `args.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] = note: `#[warn(clippy::deref_addrof)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/lib.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | / if ident.to_string() != "repeat" { [INFO] [stdout] 56 | | false [INFO] [stdout] 57 | | } else { [INFO] [stdout] 58 | | true [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `ident.to_string() == "repeat"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/lib.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | if ident.to_string() != "repeat" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:65:77 [INFO] [stdout] | [INFO] [stdout] 65 | let str = format!("Unexpected macro argument name: {}", arg_name.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/lib.rs:72:16 [INFO] [stdout] | [INFO] [stdout] 72 | if let Err(_) = res { [INFO] [stdout] | -------^^^^^^------ help: try: `if res.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:73:71 [INFO] [stdout] | [INFO] [stdout] 73 | let str = format!("Can't parse repeat time: {}", arg_value.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:114:38 [INFO] [stdout] | [INFO] [stdout] 114 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:129:38 [INFO] [stdout] | [INFO] [stdout] 129 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | arg_num = arg_num + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arg_num += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:244:38 [INFO] [stdout] | [INFO] [stdout] 244 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:259:38 [INFO] [stdout] | [INFO] [stdout] 259 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | arg_num = arg_num + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arg_num += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/lib.rs:304:8 [INFO] [stdout] | [INFO] [stdout] 304 | if *(&args.len()) > 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `args.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:305:85 [INFO] [stdout] | [INFO] [stdout] 305 | let str = format!("Unexpected macro argument: {}", args[1].to_token_stream().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:327:23 [INFO] [stdout] | [INFO] [stdout] 327 | let str = format!("spacetimedb tables must have named fields."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"spacetimedb tables must have named fields.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:333:23 [INFO] [stdout] | [INFO] [stdout] 333 | let str = format!("spacetimedb tables must have named fields (unit struct forbidden)."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"spacetimedb tables must have named fields (unit struct forbidden).".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:495:61 [INFO] [stdout] | [INFO] [stdout] 495 | let comparison_block = tuple_field_comparison_block(&original_struct_ident, &column.ident, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `original_struct_ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:517:5 [INFO] [stdout] | [INFO] [stdout] 517 | let db_insert: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `db_insert` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 517 ~ [INFO] [stdout] 518 ~ let db_insert: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 519 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 523 | }) { [INFO] [stdout] 524 ~ Ok(func) => func, [INFO] [stdout] 525 | Err(err) => { [INFO] [stdout] 526 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 527 | } [INFO] [stdout] 528 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | let db_delete: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_delete` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 530 ~ [INFO] [stdout] 531 ~ let db_delete: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 532 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 535 | }}) { [INFO] [stdout] 536 ~ Ok(func) => func, [INFO] [stdout] 537 | Err(err) => { [INFO] [stdout] 538 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 539 | } [INFO] [stdout] 540 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:542:5 [INFO] [stdout] | [INFO] [stdout] 542 | let db_update: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_update` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 542 ~ [INFO] [stdout] 543 ~ let db_update: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 544 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 547 | }}) { [INFO] [stdout] 548 ~ Ok(func) => func, [INFO] [stdout] 549 | Err(err) => { [INFO] [stdout] 550 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 551 | } [INFO] [stdout] 552 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:554:5 [INFO] [stdout] | [INFO] [stdout] 554 | let db_iter_tuples: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_iter_tuples` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 554 ~ [INFO] [stdout] 555 ~ let db_iter_tuples: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 556 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 560 | }) { [INFO] [stdout] 561 ~ Ok(func) => func, [INFO] [stdout] 562 | Err(err) => { [INFO] [stdout] 563 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 564 | } [INFO] [stdout] 565 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:586:5 [INFO] [stdout] | [INFO] [stdout] 586 | let db_iter: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_iter` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 586 ~ [INFO] [stdout] 587 ~ let db_iter: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 588 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 594 | }) { [INFO] [stdout] 595 ~ Ok(func) => func, [INFO] [stdout] 596 | Err(err) => { [INFO] [stdout] 597 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 598 | } [INFO] [stdout] 599 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:691:32 [INFO] [stdout] | [INFO] [stdout] 691 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:701:5 [INFO] [stdout] | [INFO] [stdout] 701 | let index_type: u8; // default index is a btree [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `index_type` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 701 ~ // default index is a btree [INFO] [stdout] 702 | [INFO] [stdout] 703 ~ let index_type: u8 = match args[0].to_token_stream().to_string().as_str() { [INFO] [stdout] 704 | "index(btree)" => { [INFO] [stdout] 705 ~ 0 [INFO] [stdout] 706 | } [INFO] [stdout] 707 | "index(hash)" => { [INFO] [stdout] 708 ~ 1 [INFO] [stdout] 709 | } [INFO] [stdout] ... [INFO] [stdout] 718 | } [INFO] [stdout] 719 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:713:42 [INFO] [stdout] | [INFO] [stdout] 713 | args[0].to_token_stream().to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:769:30 [INFO] [stdout] | [INFO] [stdout] 769 | println!("{}", output.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:847:5 [INFO] [stdout] | [INFO] [stdout] 847 | return TokenStream::from(emission); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 847 - return TokenStream::from(emission); [INFO] [stdout] 847 + TokenStream::from(emission) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:782:23 [INFO] [stdout] | [INFO] [stdout] 782 | let str = format!("spacetimedb tables and types must have named fields."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"spacetimedb tables and types must have named fields.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:788:23 [INFO] [stdout] | [INFO] [stdout] 788 | let str = format!("Unit structure not supported."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unit structure not supported.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:844:32 [INFO] [stdout] | [INFO] [stdout] 844 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:869:32 [INFO] [stdout] | [INFO] [stdout] 869 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/lib.rs:876:8 [INFO] [stdout] | [INFO] [stdout] 876 | if *(&args.len()) > 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `args.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:877:85 [INFO] [stdout] | [INFO] [stdout] 877 | let str = format!("Unexpected macro argument: {}", args[1].to_token_stream().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:916:38 [INFO] [stdout] | [INFO] [stdout] 916 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:931:38 [INFO] [stdout] | [INFO] [stdout] 931 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:943:9 [INFO] [stdout] | [INFO] [stdout] 943 | arg_num = arg_num + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arg_num += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:965:32 [INFO] [stdout] | [INFO] [stdout] 965 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:983:5 [INFO] [stdout] | [INFO] [stdout] 983 | / return match input_type { [INFO] [stdout] 984 | | // These are typically prefixed with spacetimedb::spacetimedb_lib::TypeDef:: [INFO] [stdout] 985 | | "bool" => Some(format_ident!("Bool")), [INFO] [stdout] 986 | | "i8" => Some(format_ident!("I8")), [INFO] [stdout] ... | [INFO] [stdout] 1000 | | _ => None, [INFO] [stdout] 1001 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 983 ~ match input_type { [INFO] [stdout] 984 + // These are typically prefixed with spacetimedb::spacetimedb_lib::TypeDef:: [INFO] [stdout] 985 + "bool" => Some(format_ident!("Bool")), [INFO] [stdout] 986 + "i8" => Some(format_ident!("I8")), [INFO] [stdout] 987 + "u8" => Some(format_ident!("U8")), [INFO] [stdout] 988 + "i16" => Some(format_ident!("I16")), [INFO] [stdout] 989 + "u16" => Some(format_ident!("U16")), [INFO] [stdout] 990 + "i32" => Some(format_ident!("I32")), [INFO] [stdout] 991 + "u32" => Some(format_ident!("U32")), [INFO] [stdout] 992 + "i64" => Some(format_ident!("I64")), [INFO] [stdout] 993 + "u64" => Some(format_ident!("U64")), [INFO] [stdout] 994 + "i128" => Some(format_ident!("I128")), [INFO] [stdout] 995 + "u128" => Some(format_ident!("U128")), [INFO] [stdout] 996 + "String" => Some(format_ident!("String")), [INFO] [stdout] 997 + "&str" => Some(format_ident!("String")), [INFO] [stdout] 998 + "f32" => Some(format_ident!("F32")), [INFO] [stdout] 999 + "f64" => Some(format_ident!("F64")), [INFO] [stdout] 1000 + _ => None, [INFO] [stdout] 1001 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1045:8 [INFO] [stdout] | [INFO] [stdout] 1045 | if !syn::parse2::(func_stream.clone()).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `syn::parse2::(func_stream.clone()).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:1048:32 [INFO] [stdout] | [INFO] [stdout] 1048 | func_stream.clone().to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/module.rs:41:71 [INFO] [stdout] | [INFO] [stdout] 41 | elements.push(type_to_tuple_schema(argument, col_num, &*arg.ty)); [INFO] [stdout] | ^^^^^^^^ help: try: `&arg.ty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/lib.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | if *(&args.len()) > 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `args.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] = note: `#[warn(clippy::deref_addrof)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/lib.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | / if ident.to_string() != "repeat" { [INFO] [stdout] 56 | | false [INFO] [stdout] 57 | | } else { [INFO] [stdout] 58 | | true [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `ident.to_string() == "repeat"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/lib.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | if ident.to_string() != "repeat" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:65:77 [INFO] [stdout] | [INFO] [stdout] 65 | let str = format!("Unexpected macro argument name: {}", arg_name.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/lib.rs:72:16 [INFO] [stdout] | [INFO] [stdout] 72 | if let Err(_) = res { [INFO] [stdout] | -------^^^^^^------ help: try: `if res.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:73:71 [INFO] [stdout] | [INFO] [stdout] 73 | let str = format!("Can't parse repeat time: {}", arg_value.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:114:38 [INFO] [stdout] | [INFO] [stdout] 114 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:129:38 [INFO] [stdout] | [INFO] [stdout] 129 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | arg_num = arg_num + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arg_num += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:244:38 [INFO] [stdout] | [INFO] [stdout] 244 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:259:38 [INFO] [stdout] | [INFO] [stdout] 259 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | arg_num = arg_num + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arg_num += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/lib.rs:304:8 [INFO] [stdout] | [INFO] [stdout] 304 | if *(&args.len()) > 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `args.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:305:85 [INFO] [stdout] | [INFO] [stdout] 305 | let str = format!("Unexpected macro argument: {}", args[1].to_token_stream().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:327:23 [INFO] [stdout] | [INFO] [stdout] 327 | let str = format!("spacetimedb tables must have named fields."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"spacetimedb tables must have named fields.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:333:23 [INFO] [stdout] | [INFO] [stdout] 333 | let str = format!("spacetimedb tables must have named fields (unit struct forbidden)."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"spacetimedb tables must have named fields (unit struct forbidden).".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:495:61 [INFO] [stdout] | [INFO] [stdout] 495 | let comparison_block = tuple_field_comparison_block(&original_struct_ident, &column.ident, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `original_struct_ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:517:5 [INFO] [stdout] | [INFO] [stdout] 517 | let db_insert: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `db_insert` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 517 ~ [INFO] [stdout] 518 ~ let db_insert: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 519 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 523 | }) { [INFO] [stdout] 524 ~ Ok(func) => func, [INFO] [stdout] 525 | Err(err) => { [INFO] [stdout] 526 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 527 | } [INFO] [stdout] 528 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:530:5 [INFO] [stdout] | [INFO] [stdout] 530 | let db_delete: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_delete` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 530 ~ [INFO] [stdout] 531 ~ let db_delete: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 532 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 535 | }}) { [INFO] [stdout] 536 ~ Ok(func) => func, [INFO] [stdout] 537 | Err(err) => { [INFO] [stdout] 538 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 539 | } [INFO] [stdout] 540 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:542:5 [INFO] [stdout] | [INFO] [stdout] 542 | let db_update: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_update` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 542 ~ [INFO] [stdout] 543 ~ let db_update: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 544 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 547 | }}) { [INFO] [stdout] 548 ~ Ok(func) => func, [INFO] [stdout] 549 | Err(err) => { [INFO] [stdout] 550 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 551 | } [INFO] [stdout] 552 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:554:5 [INFO] [stdout] | [INFO] [stdout] 554 | let db_iter_tuples: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_iter_tuples` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 554 ~ [INFO] [stdout] 555 ~ let db_iter_tuples: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 556 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 560 | }) { [INFO] [stdout] 561 ~ Ok(func) => func, [INFO] [stdout] 562 | Err(err) => { [INFO] [stdout] 563 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 564 | } [INFO] [stdout] 565 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:586:5 [INFO] [stdout] | [INFO] [stdout] 586 | let db_iter: proc_macro2::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `db_iter` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 586 ~ [INFO] [stdout] 587 ~ let db_iter: proc_macro2::TokenStream = match parse_generated_func(quote! { [INFO] [stdout] 588 | #[allow(unused_variables)] [INFO] [stdout] ... [INFO] [stdout] 594 | }) { [INFO] [stdout] 595 ~ Ok(func) => func, [INFO] [stdout] 596 | Err(err) => { [INFO] [stdout] 597 | return proc_macro::TokenStream::from(err); [INFO] [stdout] 598 | } [INFO] [stdout] 599 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:691:32 [INFO] [stdout] | [INFO] [stdout] 691 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/lib.rs:701:5 [INFO] [stdout] | [INFO] [stdout] 701 | let index_type: u8; // default index is a btree [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `index_type` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 701 ~ // default index is a btree [INFO] [stdout] 702 | [INFO] [stdout] 703 ~ let index_type: u8 = match args[0].to_token_stream().to_string().as_str() { [INFO] [stdout] 704 | "index(btree)" => { [INFO] [stdout] 705 ~ 0 [INFO] [stdout] 706 | } [INFO] [stdout] 707 | "index(hash)" => { [INFO] [stdout] 708 ~ 1 [INFO] [stdout] 709 | } [INFO] [stdout] ... [INFO] [stdout] 718 | } [INFO] [stdout] 719 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:713:42 [INFO] [stdout] | [INFO] [stdout] 713 | args[0].to_token_stream().to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:769:30 [INFO] [stdout] | [INFO] [stdout] 769 | println!("{}", output.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:847:5 [INFO] [stdout] | [INFO] [stdout] 847 | return TokenStream::from(emission); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 847 - return TokenStream::from(emission); [INFO] [stdout] 847 + TokenStream::from(emission) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:782:23 [INFO] [stdout] | [INFO] [stdout] 782 | let str = format!("spacetimedb tables and types must have named fields."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"spacetimedb tables and types must have named fields.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:788:23 [INFO] [stdout] | [INFO] [stdout] 788 | let str = format!("Unit structure not supported."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unit structure not supported.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:844:32 [INFO] [stdout] | [INFO] [stdout] 844 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:869:32 [INFO] [stdout] | [INFO] [stdout] 869 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: immediately dereferencing a reference [INFO] [stdout] --> src/lib.rs:876:8 [INFO] [stdout] | [INFO] [stdout] 876 | if *(&args.len()) > 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `args.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:877:85 [INFO] [stdout] | [INFO] [stdout] 877 | let str = format!("Unexpected macro argument: {}", args[1].to_token_stream().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:916:38 [INFO] [stdout] | [INFO] [stdout] 916 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:931:38 [INFO] [stdout] | [INFO] [stdout] 931 | ... func_name.to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:943:9 [INFO] [stdout] | [INFO] [stdout] 943 | arg_num = arg_num + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `arg_num += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:965:32 [INFO] [stdout] | [INFO] [stdout] 965 | println!("{}", emission.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:983:5 [INFO] [stdout] | [INFO] [stdout] 983 | / return match input_type { [INFO] [stdout] 984 | | // These are typically prefixed with spacetimedb::spacetimedb_lib::TypeDef:: [INFO] [stdout] 985 | | "bool" => Some(format_ident!("Bool")), [INFO] [stdout] 986 | | "i8" => Some(format_ident!("I8")), [INFO] [stdout] ... | [INFO] [stdout] 1000 | | _ => None, [INFO] [stdout] 1001 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 983 ~ match input_type { [INFO] [stdout] 984 + // These are typically prefixed with spacetimedb::spacetimedb_lib::TypeDef:: [INFO] [stdout] 985 + "bool" => Some(format_ident!("Bool")), [INFO] [stdout] 986 + "i8" => Some(format_ident!("I8")), [INFO] [stdout] 987 + "u8" => Some(format_ident!("U8")), [INFO] [stdout] 988 + "i16" => Some(format_ident!("I16")), [INFO] [stdout] 989 + "u16" => Some(format_ident!("U16")), [INFO] [stdout] 990 + "i32" => Some(format_ident!("I32")), [INFO] [stdout] 991 + "u32" => Some(format_ident!("U32")), [INFO] [stdout] 992 + "i64" => Some(format_ident!("I64")), [INFO] [stdout] 993 + "u64" => Some(format_ident!("U64")), [INFO] [stdout] 994 + "i128" => Some(format_ident!("I128")), [INFO] [stdout] 995 + "u128" => Some(format_ident!("U128")), [INFO] [stdout] 996 + "String" => Some(format_ident!("String")), [INFO] [stdout] 997 + "&str" => Some(format_ident!("String")), [INFO] [stdout] 998 + "f32" => Some(format_ident!("F32")), [INFO] [stdout] 999 + "f64" => Some(format_ident!("F64")), [INFO] [stdout] 1000 + _ => None, [INFO] [stdout] 1001 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1045:8 [INFO] [stdout] | [INFO] [stdout] 1045 | if !syn::parse2::(func_stream.clone()).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `syn::parse2::(func_stream.clone()).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/lib.rs:1048:32 [INFO] [stdout] | [INFO] [stdout] 1048 | func_stream.clone().to_string() [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.39s [INFO] running `Command { std: "docker" "inspect" "d5251c98e746acc34973d4473eec0030bb4a13ba2fcc72e5f64c6d2dcb6a3c36", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d5251c98e746acc34973d4473eec0030bb4a13ba2fcc72e5f64c6d2dcb6a3c36", kill_on_drop: false }` [INFO] [stdout] d5251c98e746acc34973d4473eec0030bb4a13ba2fcc72e5f64c6d2dcb6a3c36