[INFO] cloning repository https://github.com/rustfoundation/overloading-macros
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rustfoundation/overloading-macros" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frustfoundation%2Foverloading-macros", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frustfoundation%2Foverloading-macros'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a4cf6f68ab0b95e63c280e61484f0eacc4316315
[INFO] checking rustfoundation/overloading-macros against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frustfoundation%2Foverloading-macros" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/rustfoundation/overloading-macros
[INFO] finished tweaking git repo https://github.com/rustfoundation/overloading-macros
[INFO] tweaked toml for git repo https://github.com/rustfoundation/overloading-macros written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rustfoundation/overloading-macros on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rustfoundation/overloading-macros 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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] efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1
[INFO] running `Command { std: "docker" "start" "efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1", 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" "efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1", 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 -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]    Compiling cc v1.4.7
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking proc-macro2 v1.0.107
[INFO] [stderr]     Checking quote v1.0.47
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]     Checking splat-overload v0.0.0 (/opt/rustwide/workdir/splat-overload)
[INFO] [stderr]    Compiling cpp_common v0.5.11
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling cpp_macros v0.5.11
[INFO] [stderr]    Compiling cpp_build v0.5.11
[INFO] [stderr]     Checking splat-overload-test v0.0.0 (/opt/rustwide/workdir/splat-overload-test)
[INFO] [stderr]     Checking splat-overload-diagnostics v0.0.0 (/opt/rustwide/workdir/splat-overload-diagnostics)
[INFO] [stdout] error[E0277]: missing overload for arguments `()`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 |     calc.compute();
[INFO] [stdout]    |          ^^^^^^^ the argument types `()` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `ComputeArgs<Calculator>` is not implemented for `()`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `ComputeArgs<R>`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Calculator {
[INFO] [stdout] 12 | |         fn compute(&self, x: i32) -> i32 { x }
[INFO] [stdout] 13 | |         fn compute(&self, x: i32, y: i32) -> i32 { x + y }
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(i32, i32)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `Calculator::compute`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Calculator {
[INFO] [stdout] 12 | |         fn compute(&self, x: i32) -> i32 { x }
[INFO] [stdout] 13 | |         fn compute(&self, x: i32, y: i32) -> i32 { x + y }
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | |_^ required by this bound in `Calculator::compute`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 |     calc.compute("wrong type");
[INFO] [stdout]    |          ------- ^^^^^^^^^^^^ expected `i32`, found `&str`
[INFO] [stdout]    |          |
[INFO] [stdout]    |          arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static str` due to the type of the argument passed
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     calc.compute("wrong type");
[INFO] [stdout]    |     ^^^^^^^^^^^^^------------^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  this argument influences the return type of `compute`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Calculator {
[INFO] [stdout] 12 | |         fn compute(&self, x: i32) -> i32 { x }
[INFO] [stdout]    | |            ^^^^^^^
[INFO] [stdout] 13 | |         fn compute(&self, x: i32, y: i32) -> i32 { x + y }
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | |_-
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(_, _, _)`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 |     calc.compute(1_i32, 2_i32, 3);
[INFO] [stdout]    |          ------- ^^^^^ the argument types `(_, _, _)` do not match any overload
[INFO] [stdout]    |          |
[INFO] [stdout]    |          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `ComputeArgs<Calculator>` is not implemented for `(_, _, _)`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `ComputeArgs<R>`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Calculator {
[INFO] [stdout] 12 | |         fn compute(&self, x: i32) -> i32 { x }
[INFO] [stdout] 13 | |         fn compute(&self, x: i32, y: i32) -> i32 { x + y }
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(i32, i32)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `Calculator::compute`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Calculator {
[INFO] [stdout] 12 | |         fn compute(&self, x: i32) -> i32 { x }
[INFO] [stdout] 13 | |         fn compute(&self, x: i32, y: i32) -> i32 { x + y }
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | |_^ required by this bound in `Calculator::compute`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-method-return-values.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let a: f64 = calc.compute(1_i32);
[INFO] [stdout]    |            ---   ^^^^^^^^^^^^^^^^^^^ expected `f64`, found `i32`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            expected due to this
[INFO] [stdout]    |
[INFO] [stdout] help: you can convert an `i32` to an `f64`, producing the floating point representation of the integer
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let a: f64 = calc.compute(1_i32).into();
[INFO] [stdout]    |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `()`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     foo();
[INFO] [stdout]    |     ^^^ the argument types `()` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `()`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `foo`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^ required by this bound in `foo`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(&str,)`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     foo("wrong type");
[INFO] [stdout]    |     --- ^^^^^^^^^^^^ the argument types `(&str,)` do not match any overload
[INFO] [stdout]    |     |
[INFO] [stdout]    |     required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `(&str,)`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `foo`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^ required by this bound in `foo`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(_, _, _)`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     foo(1_i32, 2, 3);
[INFO] [stdout]    |     --- ^^^^^ the argument types `(_, _, _)` do not match any overload
[INFO] [stdout]    |     |
[INFO] [stdout]    |     required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `(_, _, _)`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `foo`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^ required by this bound in `foo`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `splat-overload-diagnostics` (bin "diag-method-return-values") due to 4 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let a: i32 = foo(1.0_f64);
[INFO] [stdout]    |            ---   ^^^^^^^^^^^^ expected `i32`, found `f64`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            expected due to this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `()`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     foo();
[INFO] [stdout]    |     ^^^^^ the argument types `()` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `()`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(&str,)`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     foo("wrong type");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ the argument types `(&str,)` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `(&str,)`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(i32, {integer}, {integer})`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     foo(1_i32, 2, 3);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ the argument types `(i32, {integer}, {integer})` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `(i32, {integer}, {integer})`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-function-return-values.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | / overload! {
[INFO] [stdout]  9 | |     fn foo(x: i32) -> i32 { x }
[INFO] [stdout] 10 | |     fn foo(x: f64) -> f64 { x }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `splat-overload-diagnostics` (bin "diag-function-return-values") due to 7 previous errors
[INFO] [stdout] error[E0277]: missing overload for arguments `()`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     foo();
[INFO] [stdout]    |     ^^^ the argument types `()` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `()`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / overload! {
[INFO] [stdout]  8 | |     fn foo(_x: i32, _y: f64) {}
[INFO] [stdout]  9 | |     fn foo(_x: bool, _y: i32, _z: f64) {}
[INFO] [stdout] 10 | |     fn foo(_a: i32, _b: f64, _c: bool, _d: u8) {}
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | | `(bool, i32, f64)`
[INFO] [stdout]    | |_`(i32, f64)`
[INFO] [stdout]    |   `(i32, f64, bool, u8)`
[INFO] [stdout] note: required by a bound in `foo`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / overload! {
[INFO] [stdout]  8 | |     fn foo(_x: i32, _y: f64) {}
[INFO] [stdout]  9 | |     fn foo(_x: bool, _y: i32, _z: f64) {}
[INFO] [stdout] 10 | |     fn foo(_a: i32, _b: f64, _c: bool, _d: u8) {}
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^ required by this bound in `foo`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `()`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     foo.method();
[INFO] [stdout]    |         ^^^^^^ the argument types `()` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `MethodArgs<Foo>` is not implemented for `()`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `MethodArgs<R>`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Foo {
[INFO] [stdout] 12 | |         fn method(&self, _x: i32) {}
[INFO] [stdout] 13 | |         fn method(&self, _x: f64) {}
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `Foo::method`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Foo {
[INFO] [stdout] 12 | |         fn method(&self, _x: i32) {}
[INFO] [stdout] 13 | |         fn method(&self, _x: f64) {}
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | |_^ required by this bound in `Foo::method`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(&str,)`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     foo.method("wrong type");
[INFO] [stdout]    |         ------ ^^^^^^^^^^^^ the argument types `(&str,)` do not match any overload
[INFO] [stdout]    |         |
[INFO] [stdout]    |         required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `MethodArgs<Foo>` is not implemented for `(&str,)`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `MethodArgs<R>`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Foo {
[INFO] [stdout] 12 | |         fn method(&self, _x: i32) {}
[INFO] [stdout] 13 | |         fn method(&self, _x: f64) {}
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `Foo::method`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Foo {
[INFO] [stdout] 12 | |         fn method(&self, _x: i32) {}
[INFO] [stdout] 13 | |         fn method(&self, _x: f64) {}
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | |_^ required by this bound in `Foo::method`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     foo("one wrong type", 2.0_f64);
[INFO] [stdout]    |     --- ^^^^^^^^^^^^^^^^ expected `i32`, found `&str`
[INFO] [stdout]    |     |
[INFO] [stdout]    |     arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static str` due to the type of the argument passed
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     foo("one wrong type", 2.0_f64);
[INFO] [stdout]    |     ^^^^----------------^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         this argument influences the return type of `foo`
[INFO] [stdout] note: function defined here
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:8:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | / overload! {
[INFO] [stdout]  8 | |     fn foo(_x: i32, _y: f64) {}
[INFO] [stdout]    | |        ^^^
[INFO] [stdout]  9 | |     fn foo(_x: bool, _y: i32, _z: f64) {}
[INFO] [stdout] 10 | |     fn foo(_a: i32, _b: f64, _c: bool, _d: u8) {}
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_-
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(_, _, _, _, _)`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     foo(1_i32, 2_f64, true, 4_u8, 5);
[INFO] [stdout]    |     --- ^^^^^ the argument types `(_, _, _, _, _)` do not match any overload
[INFO] [stdout]    |     |
[INFO] [stdout]    |     required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `(_, _, _, _, _)`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / overload! {
[INFO] [stdout]  8 | |     fn foo(_x: i32, _y: f64) {}
[INFO] [stdout]  9 | |     fn foo(_x: bool, _y: i32, _z: f64) {}
[INFO] [stdout] 10 | |     fn foo(_a: i32, _b: f64, _c: bool, _d: u8) {}
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | | `(bool, i32, f64)`
[INFO] [stdout]    | |_`(i32, f64)`
[INFO] [stdout]    |   `(i32, f64, bool, u8)`
[INFO] [stdout] note: required by a bound in `foo`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / overload! {
[INFO] [stdout]  8 | |     fn foo(_x: i32, _y: f64) {}
[INFO] [stdout]  9 | |     fn foo(_x: bool, _y: i32, _z: f64) {}
[INFO] [stdout] 10 | |     fn foo(_a: i32, _b: f64, _c: bool, _d: u8) {}
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^ required by this bound in `foo`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(_, _)`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     foo.method(1_i32, 2);
[INFO] [stdout]    |         ------ ^^^^^ the argument types `(_, _)` do not match any overload
[INFO] [stdout]    |         |
[INFO] [stdout]    |         required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `MethodArgs<Foo>` is not implemented for `(_, _)`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `MethodArgs<R>`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Foo {
[INFO] [stdout] 12 | |         fn method(&self, _x: i32) {}
[INFO] [stdout] 13 | |         fn method(&self, _x: f64) {}
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | |_`(f64,)`
[INFO] [stdout]    |   `(i32,)`
[INFO] [stdout] note: required by a bound in `Foo::method`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-methods.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / overload! {
[INFO] [stdout] 11 | |     impl Foo {
[INFO] [stdout] 12 | |         fn method(&self, _x: i32) {}
[INFO] [stdout] 13 | |         fn method(&self, _x: f64) {}
[INFO] [stdout] 14 | |     }
[INFO] [stdout] 15 | | }
[INFO] [stdout]    | |_^ required by this bound in `Foo::method`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `()`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     foo();
[INFO] [stdout]    |     ^^^^^ the argument types `()` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `()`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / overload! {
[INFO] [stdout]  8 | |     fn foo(_x: i32, _y: f64) {}
[INFO] [stdout]  9 | |     fn foo(_x: bool, _y: i32, _z: f64) {}
[INFO] [stdout] 10 | |     fn foo(_a: i32, _b: f64, _c: bool, _d: u8) {}
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | | `(bool, i32, f64)`
[INFO] [stdout]    | |_`(i32, f64)`
[INFO] [stdout]    |   `(i32, f64, bool, u8)`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: missing overload for arguments `(i32, f64, bool, u8, {integer})`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     foo(1_i32, 2_f64, true, 4_u8, 5);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the argument types `(i32, f64, bool, u8, {integer})` do not match any overload
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FooArgs` is not implemented for `(i32, f64, bool, u8, {integer})`
[INFO] [stdout]    = note: check for missing or extra arguments, and check argument types
[INFO] [stdout]    = note: consider adding a new overload in the overload! { ... } block
[INFO] [stdout] help: the following other types implement trait `FooArgs`
[INFO] [stdout]   --> splat-overload-diagnostics/src/bin/diag-functions.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / overload! {
[INFO] [stdout]  8 | |     fn foo(_x: i32, _y: f64) {}
[INFO] [stdout]  9 | |     fn foo(_x: bool, _y: i32, _z: f64) {}
[INFO] [stdout] 10 | |     fn foo(_a: i32, _b: f64, _c: bool, _d: u8) {}
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | | ^
[INFO] [stdout]    | | |
[INFO] [stdout]    | | `(bool, i32, f64)`
[INFO] [stdout]    | |_`(i32, f64)`
[INFO] [stdout]    |   `(i32, f64, bool, u8)`
[INFO] [stdout]    = note: this error originates in the macro `overload` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `splat-overload-diagnostics` (bin "diag-functions") due to 5 previous errors
[INFO] [stderr] error: could not compile `splat-overload-diagnostics` (bin "diag-methods") due to 3 previous errors
[INFO] running `Command { std: "docker" "inspect" "efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1", kill_on_drop: false }`
[INFO] [stdout] efd79e1549b829e8d51acc64d39171c095b267492c5dd3522742c5b9b47d66e1
