[INFO] cloning repository https://github.com/raimon49/rust-macro-study
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/raimon49/rust-macro-study" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraimon49%2Frust-macro-study", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraimon49%2Frust-macro-study'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7d539ea30d18dfc5476cf47c7d370626641f4919
[INFO] checking raimon49/rust-macro-study against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraimon49%2Frust-macro-study" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/raimon49/rust-macro-study
[INFO] finished tweaking git repo https://github.com/raimon49/rust-macro-study
[INFO] tweaked toml for git repo https://github.com/raimon49/rust-macro-study written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/raimon49/rust-macro-study on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/raimon49/rust-macro-study 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" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56
[INFO] running `Command { std: "docker" "start" "0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56", 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" "0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56", 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" "0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking rust-macro-study v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![recursion_limit]`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | #[recursion_limit = "256"] // 再帰呼び出しの上限回数をデフォルトの64から変更
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: this attribute does not have an `!`, which means it is applied to this macro def
[INFO] [stdout]   --> src/main.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / macro_rules! my_assert_eq {
[INFO] [stdout]  6 | |     // パターンを定義し、パターンマッチした対象に適用するテンプレートを書く
[INFO] [stdout]  7 | |     // フラグメント型が「:expr」なので、$leftも$rightも引数に式が来ることを期待している
[INFO] [stdout]  8 | |     ($left:expr , $right:expr) => ({
[INFO] [stdout] ...  |
[INFO] [stdout] 18 | |     });
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![feature]`
[INFO] [stdout]   --> src/main.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | #[feature(trace_macros)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: this attribute does not have an `!`, which means it is applied to this macro def
[INFO] [stdout]   --> src/main.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / macro_rules! my_assert_eq {
[INFO] [stdout]  6 | |     // パターンを定義し、パターンマッチした対象に適用するテンプレートを書く
[INFO] [stdout]  7 | |     // フラグメント型が「:expr」なので、$leftも$rightも引数に式が来ることを期待している
[INFO] [stdout]  8 | |     ($left:expr , $right:expr) => ({
[INFO] [stdout] ...  |
[INFO] [stdout] 18 | |     });
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![recursion_limit]`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | #[recursion_limit = "256"] // 再帰呼び出しの上限回数をデフォルトの64から変更
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: this attribute does not have an `!`, which means it is applied to this macro def
[INFO] [stdout]   --> src/main.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / macro_rules! my_assert_eq {
[INFO] [stdout]  6 | |     // パターンを定義し、パターンマッチした対象に適用するテンプレートを書く
[INFO] [stdout]  7 | |     // フラグメント型が「:expr」なので、$leftも$rightも引数に式が来ることを期待している
[INFO] [stdout]  8 | |     ($left:expr , $right:expr) => ({
[INFO] [stdout] ...  |
[INFO] [stdout] 18 | |     });
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![feature]`
[INFO] [stdout]   --> src/main.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | #[feature(trace_macros)]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: this attribute does not have an `!`, which means it is applied to this macro def
[INFO] [stdout]   --> src/main.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / macro_rules! my_assert_eq {
[INFO] [stdout]  6 | |     // パターンを定義し、パターンマッチした対象に適用するテンプレートを書く
[INFO] [stdout]  7 | |     // フラグメント型が「:expr」なので、$leftも$rightも引数に式が来ることを期待している
[INFO] [stdout]  8 | |     ($left:expr , $right:expr) => ({
[INFO] [stdout] ...  |
[INFO] [stdout] 18 | |     });
[INFO] [stdout] 19 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Null` is never constructed
[INFO] [stdout]   --> src/main.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | enum Json {
[INFO] [stdout]    |      ---- variant in this enum
[INFO] [stdout] 56 |     Null,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Json` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/main.rs:94:13
[INFO] [stdout]     |
[INFO] [stdout]  91 | macro_rules! impl_from_num_for_json {
[INFO] [stdout] ...
[INFO] [stdout]  94 |             impl From<$t> for Json {
[INFO] [stdout]     |             ^^^^^----^^^^^^^^^----
[INFO] [stdout]     |                  |            |
[INFO] [stdout]     |                  |            `Json` is not local
[INFO] [stdout]     |                  `From` is not local
[INFO] [stdout] ...
[INFO] [stdout] 154 | fn main() {
[INFO] [stdout]     | --------- move the `impl` block outside of this function `main`
[INFO] [stdout] ...
[INFO] [stdout] 217 |     impl_from_num_for_json!(u8 i8 u16 i16 u32 i32 u64 i64 usize isize f32 f64);
[INFO] [stdout]     |     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `impl_from_num_for_json` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/main.rs:94:13
[INFO] [stdout]     |
[INFO] [stdout]  91 | macro_rules! impl_from_num_for_json {
[INFO] [stdout] ...
[INFO] [stdout]  94 |             impl From<$t> for Json {
[INFO] [stdout]     |             ^^^^^----^^^^^^^^^----
[INFO] [stdout]     |                  |            |
[INFO] [stdout]     |                  |            `Json` is not local
[INFO] [stdout]     |                  `From` is not local
[INFO] [stdout] ...
[INFO] [stdout] 154 | fn main() {
[INFO] [stdout]     | --------- move the `impl` block outside of this function `main`
[INFO] [stdout] ...
[INFO] [stdout] 217 |     impl_from_num_for_json!(u8 i8 u16 i16 u32 i32 u64 i64 usize isize f32 f64);
[INFO] [stdout]     |     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `impl_from_num_for_json` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] running `Command { std: "docker" "inspect" "0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56", kill_on_drop: false }`
[INFO] [stdout] 0bedafecadabfbcd1a00a23290e839fe79f4c5dc8a97e47576dd784764839e56
