[INFO] fetching crate robotech-macros 1.16.0...
[INFO] checking robotech-macros-1.16.0 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] extracting crate robotech-macros 1.16.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate robotech-macros 1.16.0
[INFO] finished tweaking crates.io crate robotech-macros 1.16.0
[INFO] tweaked toml for crates.io crate robotech-macros 1.16.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate robotech-macros 1.16.0 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate robotech-macros 1.16.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | homepage = "https://github.com/rusthing/robotech-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 | repository = "https://github.com/rusthing/robotech-rs"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `robotech-macros` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8
[INFO] running `Command { std: "docker" "start" "0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | homepage = "https://github.com/rusthing/robotech-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 | repository = "https://github.com/rusthing/robotech-rs"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `robotech-macros` (manifest) generated 1 warning
[INFO] [stderr]    Compiling portable-atomic v1.14.0
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]     Checking critical-section v1.2.0
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]     Checking rand_core v0.10.1
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking chacha20 v0.10.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking foldhash v0.2.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking data-encoding v2.11.0
[INFO] [stderr]     Checking winnow v1.0.3
[INFO] [stderr]     Checking bytes v1.12.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking ucd-trie v0.1.7
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking hashlink v0.11.1
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking regex-syntax v0.8.11
[INFO] [stderr]    Compiling libc v1.0.0-alpha.4
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking tagptr v0.2.0
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]     Checking time-core v0.1.9
[INFO] [stderr]     Checking num-conv v0.2.2
[INFO] [stderr]     Checking unicode-segmentation v1.13.3
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking const-oid v0.10.2
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking socket2 v0.6.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]     Checking hybrid-array v0.4.13
[INFO] [stderr]     Checking uuid v1.26.1
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking yaml-rust2 v0.11.0
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking proc-macro2 v1.0.107
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking symlink v0.1.0
[INFO] [stderr]     Checking resolv-conf v0.7.6
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking moka v0.12.15
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking inotify v0.11.2
[INFO] [stderr]     Checking quote v1.0.47
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking rust-ini v0.21.3
[INFO] [stderr]     Checking toml v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking dns-lookup v4.0.1
[INFO] [stderr]     Checking humantime v2.4.0
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking regex-automata v0.4.16
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]     Checking serde-untagged v0.1.9
[INFO] [stderr]     Checking sha2 v0.11.0
[INFO] [stderr]     Checking time v0.3.51
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking tracing-appender v0.2.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking ipnet v2.12.2
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking ron v0.12.2
[INFO] [stderr]     Checking prefix-trie v0.8.4
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking config v0.15.25
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking hickory-proto v0.26.3
[INFO] [stderr]     Checking hickory-net v0.26.3
[INFO] [stderr]     Checking hickory-resolver v0.26.3
[INFO] [stderr]     Checking wheel-rs v1.12.0
[INFO] [stderr]     Checking robotech-macros v1.16.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/dao/mod.rs:198:16
[INFO] [stdout]     |
[INFO] [stdout] 198 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Dao'")
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 199 | |             .to_compile_error()
[INFO] [stdout] 200 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 199 -             .to_compile_error()
[INFO] [stdout] 200 -             .into();
[INFO] [stdout] 199 +             .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 198 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Dao'")
[INFO] [stdout] 199 ~             .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/dao/mod.rs:204:16
[INFO] [stdout]     |
[INFO] [stdout] 204 |           return syn::Error::new_spanned(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 205 | |             struct_name,
[INFO] [stdout] 206 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 208 -         .to_compile_error()
[INFO] [stdout] 209 -         .into();
[INFO] [stdout] 208 +         .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 204 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 205 |             struct_name,
[INFO] [stdout] 206 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 207 |         )
[INFO] [stdout] 208 ~         .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/dto/mod.rs:44:16
[INFO] [stdout]    |
[INFO] [stdout] 44 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Dto'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 45 | |             .to_compile_error()
[INFO] [stdout] 46 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 45 -             .to_compile_error()
[INFO] [stdout] 46 -             .into();
[INFO] [stdout] 45 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 44 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Dto'")
[INFO] [stdout] 45 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/dto/mod.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 51 | |             struct_name,
[INFO] [stdout] 52 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 55 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 54 -         .to_compile_error()
[INFO] [stdout] 55 -         .into();
[INFO] [stdout] 54 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 50 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 51 |             struct_name,
[INFO] [stdout] 52 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 53 |         )
[INFO] [stdout] 54 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/dto/mod.rs:709:5
[INFO] [stdout]     |
[INFO] [stdout] 709 | /     syn::Error::new_spanned(
[INFO] [stdout] 710 | |         ty,
[INFO] [stdout] 711 | |         format!(
[INFO] [stdout] 712 | |             "字段 '{}' 的类型无法识别，请使用基本类型或 Option<T> 包裹的基本类型",
[INFO] [stdout] ...   |
[INFO] [stdout] 716 | |     .to_compile_error()
[INFO] [stdout] 717 | |     .into()
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 716 -     .to_compile_error()
[INFO] [stdout] 717 -     .into()
[INFO] [stdout] 716 +     .to_compile_error()
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 709 ~     <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 710 |         ty,
[INFO] [stdout] ...
[INFO] [stdout] 715 |     )
[INFO] [stdout] 716 ~     .to_compile_error())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/feign/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiClient'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 17 | |             .to_compile_error()
[INFO] [stdout] 18 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 17 -             .to_compile_error()
[INFO] [stdout] 18 -             .into();
[INFO] [stdout] 17 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 16 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiClient'")
[INFO] [stdout] 17 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/feign/mod.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 23 | |             struct_name,
[INFO] [stdout] 24 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 26 -         .to_compile_error()
[INFO] [stdout] 27 -         .into();
[INFO] [stdout] 26 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 22 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 23 |             struct_name,
[INFO] [stdout] 24 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 25 |         )
[INFO] [stdout] 26 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/svc/db_unwrap/mod.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 59 | |             &fn_sig,
[INFO] [stdout] 60 | |             "Service query method must have a 'db: Option<&C>' parameter",
[INFO] [stdout] ...  |
[INFO] [stdout] 63 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 62 -         .to_compile_error()
[INFO] [stdout] 63 -         .into();
[INFO] [stdout] 62 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 58 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 59 |             &fn_sig,
[INFO] [stdout] 60 |             "Service query method must have a 'db: Option<&C>' parameter",
[INFO] [stdout] 61 |         )
[INFO] [stdout] 62 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/svc/svc/mod.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Svc'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 61 | |             .to_compile_error()
[INFO] [stdout] 62 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 61 -             .to_compile_error()
[INFO] [stdout] 62 -             .into();
[INFO] [stdout] 61 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 60 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Svc'")
[INFO] [stdout] 61 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/svc/svc/mod.rs:66:16
[INFO] [stdout]    |
[INFO] [stdout] 66 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 67 | |             struct_name,
[INFO] [stdout] 68 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 71 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 70 -         .to_compile_error()
[INFO] [stdout] 71 -         .into();
[INFO] [stdout] 70 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 66 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 67 |             struct_name,
[INFO] [stdout] 68 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 69 |         )
[INFO] [stdout] 70 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/vo/mod.rs:345:16
[INFO] [stdout]     |
[INFO] [stdout] 345 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Vo'")
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 346 | |             .to_compile_error()
[INFO] [stdout] 347 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 346 -             .to_compile_error()
[INFO] [stdout] 347 -             .into();
[INFO] [stdout] 346 +             .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 345 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Vo'")
[INFO] [stdout] 346 ~             .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/vo/mod.rs:351:16
[INFO] [stdout]     |
[INFO] [stdout] 351 |           return syn::Error::new_spanned(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 352 | |             struct_name,
[INFO] [stdout] 353 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...   |
[INFO] [stdout] 356 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 355 -         .to_compile_error()
[INFO] [stdout] 356 -         .into();
[INFO] [stdout] 355 +         .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 351 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 352 |             struct_name,
[INFO] [stdout] 353 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 354 |         )
[INFO] [stdout] 355 ~         .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/api_doc/mod.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiDoc'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 46 | |             .to_compile_error()
[INFO] [stdout] 47 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 46 -             .to_compile_error()
[INFO] [stdout] 47 -             .into();
[INFO] [stdout] 46 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 45 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiDoc'")
[INFO] [stdout] 46 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/api_doc/mod.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 52 | |             struct_name,
[INFO] [stdout] 53 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 56 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 55 -         .to_compile_error()
[INFO] [stdout] 56 -         .into();
[INFO] [stdout] 55 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 51 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 52 |             struct_name,
[INFO] [stdout] 53 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 54 |         )
[INFO] [stdout] 55 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/ctrl/mod.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Ctrl'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 58 | |             .to_compile_error()
[INFO] [stdout] 59 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 58 -             .to_compile_error()
[INFO] [stdout] 59 -             .into();
[INFO] [stdout] 58 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 57 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Ctrl'")
[INFO] [stdout] 58 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/ctrl/mod.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 64 | |             struct_name,
[INFO] [stdout] 65 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 67 -         .to_compile_error()
[INFO] [stdout] 68 -         .into();
[INFO] [stdout] 67 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 63 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 64 |             struct_name,
[INFO] [stdout] 65 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 66 |         )
[INFO] [stdout] 67 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/router/mod.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Router'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 82 | |             .to_compile_error()
[INFO] [stdout] 83 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 82 -             .to_compile_error()
[INFO] [stdout] 83 -             .into();
[INFO] [stdout] 82 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 81 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Router'")
[INFO] [stdout] 82 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/router/mod.rs:87:16
[INFO] [stdout]    |
[INFO] [stdout] 87 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 88 | |             struct_name,
[INFO] [stdout] 89 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 92 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 91 -         .to_compile_error()
[INFO] [stdout] 92 -         .into();
[INFO] [stdout] 91 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 87 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 88 |             struct_name,
[INFO] [stdout] 89 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 90 |         )
[INFO] [stdout] 91 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `robotech-macros` (lib) due to 18 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/dao/mod.rs:198:16
[INFO] [stdout]     |
[INFO] [stdout] 198 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Dao'")
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 199 | |             .to_compile_error()
[INFO] [stdout] 200 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 199 -             .to_compile_error()
[INFO] [stdout] 200 -             .into();
[INFO] [stdout] 199 +             .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 198 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Dao'")
[INFO] [stdout] 199 ~             .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/dao/mod.rs:204:16
[INFO] [stdout]     |
[INFO] [stdout] 204 |           return syn::Error::new_spanned(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 205 | |             struct_name,
[INFO] [stdout] 206 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 208 -         .to_compile_error()
[INFO] [stdout] 209 -         .into();
[INFO] [stdout] 208 +         .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 204 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 205 |             struct_name,
[INFO] [stdout] 206 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 207 |         )
[INFO] [stdout] 208 ~         .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/dto/mod.rs:44:16
[INFO] [stdout]    |
[INFO] [stdout] 44 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Dto'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 45 | |             .to_compile_error()
[INFO] [stdout] 46 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 45 -             .to_compile_error()
[INFO] [stdout] 46 -             .into();
[INFO] [stdout] 45 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 44 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Dto'")
[INFO] [stdout] 45 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/dto/mod.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 51 | |             struct_name,
[INFO] [stdout] 52 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 55 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 54 -         .to_compile_error()
[INFO] [stdout] 55 -         .into();
[INFO] [stdout] 54 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 50 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 51 |             struct_name,
[INFO] [stdout] 52 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 53 |         )
[INFO] [stdout] 54 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/dto/mod.rs:709:5
[INFO] [stdout]     |
[INFO] [stdout] 709 | /     syn::Error::new_spanned(
[INFO] [stdout] 710 | |         ty,
[INFO] [stdout] 711 | |         format!(
[INFO] [stdout] 712 | |             "字段 '{}' 的类型无法识别，请使用基本类型或 Option<T> 包裹的基本类型",
[INFO] [stdout] ...   |
[INFO] [stdout] 716 | |     .to_compile_error()
[INFO] [stdout] 717 | |     .into()
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 716 -     .to_compile_error()
[INFO] [stdout] 717 -     .into()
[INFO] [stdout] 716 +     .to_compile_error()
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 709 ~     <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 710 |         ty,
[INFO] [stdout] ...
[INFO] [stdout] 715 |     )
[INFO] [stdout] 716 ~     .to_compile_error())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/feign/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiClient'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 17 | |             .to_compile_error()
[INFO] [stdout] 18 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 17 -             .to_compile_error()
[INFO] [stdout] 18 -             .into();
[INFO] [stdout] 17 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 16 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiClient'")
[INFO] [stdout] 17 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/feign/mod.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 23 | |             struct_name,
[INFO] [stdout] 24 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 26 -         .to_compile_error()
[INFO] [stdout] 27 -         .into();
[INFO] [stdout] 26 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 22 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 23 |             struct_name,
[INFO] [stdout] 24 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 25 |         )
[INFO] [stdout] 26 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/svc/db_unwrap/mod.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 59 | |             &fn_sig,
[INFO] [stdout] 60 | |             "Service query method must have a 'db: Option<&C>' parameter",
[INFO] [stdout] ...  |
[INFO] [stdout] 63 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 62 -         .to_compile_error()
[INFO] [stdout] 63 -         .into();
[INFO] [stdout] 62 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 58 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 59 |             &fn_sig,
[INFO] [stdout] 60 |             "Service query method must have a 'db: Option<&C>' parameter",
[INFO] [stdout] 61 |         )
[INFO] [stdout] 62 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/svc/svc/mod.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Svc'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 61 | |             .to_compile_error()
[INFO] [stdout] 62 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 61 -             .to_compile_error()
[INFO] [stdout] 62 -             .into();
[INFO] [stdout] 61 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 60 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Svc'")
[INFO] [stdout] 61 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/svc/svc/mod.rs:66:16
[INFO] [stdout]    |
[INFO] [stdout] 66 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 67 | |             struct_name,
[INFO] [stdout] 68 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 71 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 70 -         .to_compile_error()
[INFO] [stdout] 71 -         .into();
[INFO] [stdout] 70 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 66 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 67 |             struct_name,
[INFO] [stdout] 68 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 69 |         )
[INFO] [stdout] 70 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/vo/mod.rs:345:16
[INFO] [stdout]     |
[INFO] [stdout] 345 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Vo'")
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 346 | |             .to_compile_error()
[INFO] [stdout] 347 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 346 -             .to_compile_error()
[INFO] [stdout] 347 -             .into();
[INFO] [stdout] 346 +             .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 345 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Vo'")
[INFO] [stdout] 346 ~             .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]    --> src/vo/mod.rs:351:16
[INFO] [stdout]     |
[INFO] [stdout] 351 |           return syn::Error::new_spanned(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 352 | |             struct_name,
[INFO] [stdout] 353 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...   |
[INFO] [stdout] 356 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 355 -         .to_compile_error()
[INFO] [stdout] 356 -         .into();
[INFO] [stdout] 355 +         .to_compile_error();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 351 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 352 |             struct_name,
[INFO] [stdout] 353 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 354 |         )
[INFO] [stdout] 355 ~         .to_compile_error());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/api_doc/mod.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiDoc'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 46 | |             .to_compile_error()
[INFO] [stdout] 47 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 46 -             .to_compile_error()
[INFO] [stdout] 47 -             .into();
[INFO] [stdout] 46 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 45 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'ApiDoc'")
[INFO] [stdout] 46 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/api_doc/mod.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 52 | |             struct_name,
[INFO] [stdout] 53 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 56 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 55 -         .to_compile_error()
[INFO] [stdout] 56 -         .into();
[INFO] [stdout] 55 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 51 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 52 |             struct_name,
[INFO] [stdout] 53 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 54 |         )
[INFO] [stdout] 55 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/ctrl/mod.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Ctrl'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 58 | |             .to_compile_error()
[INFO] [stdout] 59 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 58 -             .to_compile_error()
[INFO] [stdout] 59 -             .into();
[INFO] [stdout] 58 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 57 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Ctrl'")
[INFO] [stdout] 58 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/ctrl/mod.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 64 | |             struct_name,
[INFO] [stdout] 65 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 67 -         .to_compile_error()
[INFO] [stdout] 68 -         .into();
[INFO] [stdout] 67 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 63 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 64 |             struct_name,
[INFO] [stdout] 65 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 66 |         )
[INFO] [stdout] 67 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/router/mod.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |           return syn::Error::new_spanned(struct_name, "Struct name must end with 'Router'")
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 82 | |             .to_compile_error()
[INFO] [stdout] 83 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 82 -             .to_compile_error()
[INFO] [stdout] 83 -             .into();
[INFO] [stdout] 82 +             .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 81 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(struct_name, "Struct name must end with 'Router'")
[INFO] [stdout] 82 ~             .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/web/router/mod.rs:87:16
[INFO] [stdout]    |
[INFO] [stdout] 87 |           return syn::Error::new_spanned(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 88 | |             struct_name,
[INFO] [stdout] 89 | |             "Struct name must be a valid upper camel case",
[INFO] [stdout] ...  |
[INFO] [stdout] 92 | |         .into();
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 91 -         .to_compile_error()
[INFO] [stdout] 92 -         .into();
[INFO] [stdout] 91 +         .to_compile_error();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 87 ~         return <proc_macro2::TokenStream as Into<_>>::into(syn::Error::new_spanned(
[INFO] [stdout] 88 |             struct_name,
[INFO] [stdout] 89 |             "Struct name must be a valid upper camel case",
[INFO] [stdout] 90 |         )
[INFO] [stdout] 91 ~         .to_compile_error());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `robotech-macros` (lib test) due to 18 previous errors
[INFO] running `Command { std: "docker" "inspect" "0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8", kill_on_drop: false }`
[INFO] [stdout] 0da24297bb5f0ce727aeac91f6290d98650dcece29c565cd4d4c369ff65b79d8
