[INFO] cloning repository https://github.com/tylerlaberge/rascal [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tylerlaberge/rascal" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftylerlaberge%2Frascal", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftylerlaberge%2Frascal'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 52475957c947dff2e610a9cd3874766b7e3688cc [INFO] testing tylerlaberge/rascal against try#0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6 for pr-137122-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftylerlaberge%2Frascal" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tylerlaberge/rascal [INFO] finished tweaking git repo https://github.com/tylerlaberge/rascal [INFO] tweaked toml for git repo https://github.com/tylerlaberge/rascal written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tylerlaberge/rascal on toolchain 0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tylerlaberge/rascal 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" "+0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b9ead571fba7432bf39dfee8987a7f5338f6387de0b2bc51a35cc3ceaf7b73f6 [INFO] running `Command { std: "docker" "start" "-a" "b9ead571fba7432bf39dfee8987a7f5338f6387de0b2bc51a35cc3ceaf7b73f6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b9ead571fba7432bf39dfee8987a7f5338f6387de0b2bc51a35cc3ceaf7b73f6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b9ead571fba7432bf39dfee8987a7f5338f6387de0b2bc51a35cc3ceaf7b73f6", kill_on_drop: false }` [INFO] [stdout] b9ead571fba7432bf39dfee8987a7f5338f6387de0b2bc51a35cc3ceaf7b73f6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0357a7f6322cc16cfa8e7a864c415a39b90a507844177713a3ea2eeb6bf828a8 [INFO] running `Command { std: "docker" "start" "-a" "0357a7f6322cc16cfa8e7a864c415a39b90a507844177713a3ea2eeb6bf828a8", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Compiling either v1.2.0 [INFO] [stderr] Compiling itertools v0.7.1 [INFO] [stderr] Compiling rascal v1.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/interpreter/built_ins.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | Err(e) => Err(String::from(e.description())) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] 15 | pub enum BuiltInFunction { [INFO] [stdout] 16 | Write(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 17 | WriteLn(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 18 | ReadLn(fn() -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 19 | IntToString(fn(i32) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 20 | RealToString(fn(f32) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 21 | StringToInt(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 22 | StringToReal(fn(String) -> Result) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.00s [INFO] running `Command { std: "docker" "inspect" "0357a7f6322cc16cfa8e7a864c415a39b90a507844177713a3ea2eeb6bf828a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0357a7f6322cc16cfa8e7a864c415a39b90a507844177713a3ea2eeb6bf828a8", kill_on_drop: false }` [INFO] [stdout] 0357a7f6322cc16cfa8e7a864c415a39b90a507844177713a3ea2eeb6bf828a8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e0d707606f47b12a2c9f6d7955ab879141381a9425f99d9ed44ac4aeab46093b [INFO] running `Command { std: "docker" "start" "-a" "e0d707606f47b12a2c9f6d7955ab879141381a9425f99d9ed44ac4aeab46093b", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/interpreter/built_ins.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | Err(e) => Err(String::from(e.description())) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] 15 | pub enum BuiltInFunction { [INFO] [stdout] 16 | Write(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 17 | WriteLn(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 18 | ReadLn(fn() -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 19 | IntToString(fn(i32) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling rascal v1.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 20 | RealToString(fn(f32) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 21 | StringToInt(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 22 | StringToReal(fn(String) -> Result) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/interpreter/built_ins.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | Err(e) => Err(String::from(e.description())) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/parser/parser.rs:492:25 [INFO] [stdout] | [INFO] [stdout] 492 | fn get_parser(text: &str) -> Parser { [INFO] [stdout] | ^^^^ ------ the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 492 | fn get_parser(text: &str) -> Parser<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/parser/parser.rs:524:40 [INFO] [stdout] | [INFO] [stdout] 524 | Err(e) => panic!(e) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 524 | Err(e) => panic!("{}", e) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/parser/parser.rs:533:57 [INFO] [stdout] | [INFO] [stdout] 533 | Err(e) => panic!(e) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 533 | Err(e) => panic!("{}", e) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/parser/parser.rs:552:60 [INFO] [stdout] | [INFO] [stdout] 552 | Err(e) => panic!(e) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 552 | Err(e) => panic!("{}", e) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/parser/parser.rs:561:62 [INFO] [stdout] | [INFO] [stdout] 561 | Err(e) => panic!(e) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 561 | Err(e) => panic!("{}", e) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/parser/parser.rs:577:54 [INFO] [stdout] | [INFO] [stdout] 577 | Err(e) => panic!(e) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 577 | Err(e) => panic!("{}", e) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/parser/parser.rs:641:42 [INFO] [stdout] | [INFO] [stdout] 641 | Err(e) => panic!(e) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 641 | Err(e) => panic!("{}", e) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] 15 | pub enum BuiltInFunction { [INFO] [stdout] 16 | Write(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 17 | WriteLn(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 18 | ReadLn(fn() -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 19 | IntToString(fn(i32) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 20 | RealToString(fn(f32) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 21 | StringToInt(fn(String) -> Result), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/interpreter/object.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 14 | #[derive(Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 22 | StringToReal(fn(String) -> Result) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.82s [INFO] running `Command { std: "docker" "inspect" "e0d707606f47b12a2c9f6d7955ab879141381a9425f99d9ed44ac4aeab46093b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0d707606f47b12a2c9f6d7955ab879141381a9425f99d9ed44ac4aeab46093b", kill_on_drop: false }` [INFO] [stdout] e0d707606f47b12a2c9f6d7955ab879141381a9425f99d9ed44ac4aeab46093b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+0936b3db0ae648ba2d5b60eb08cf4faf2ddab0c6" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9fc2297e279d0dbd70adb99093e82abaa4ff57ef790c9c25e425457a5797f349 [INFO] running `Command { std: "docker" "start" "-a" "9fc2297e279d0dbd70adb99093e82abaa4ff57ef790c9c25e425457a5797f349", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/interpreter/built_ins.rs:23:38 [INFO] [stderr] | [INFO] [stderr] 23 | Err(e) => Err(String::from(e.description())) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/interpreter/object.rs:16:11 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Clone, PartialEq)] [INFO] [stderr] | --------- in this derive macro expansion [INFO] [stderr] 15 | pub enum BuiltInFunction { [INFO] [stderr] 16 | Write(fn(String) -> Result), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/interpreter/object.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Clone, PartialEq)] [INFO] [stderr] | --------- in this derive macro expansion [INFO] [stderr] ... [INFO] [stderr] 17 | WriteLn(fn(String) -> Result), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/interpreter/object.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Clone, PartialEq)] [INFO] [stderr] | --------- in this derive macro expansion [INFO] [stderr] ... [INFO] [stderr] 18 | ReadLn(fn() -> Result), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/interpreter/object.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Clone, PartialEq)] [INFO] [stderr] | --------- in this derive macro expansion [INFO] [stderr] ... [INFO] [stderr] 19 | IntToString(fn(i32) -> Result), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/interpreter/object.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Clone, PartialEq)] [INFO] [stderr] | --------- in this derive macro expansion [INFO] [stderr] ... [INFO] [stderr] 20 | RealToString(fn(f32) -> Result), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/interpreter/object.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Clone, PartialEq)] [INFO] [stderr] | --------- in this derive macro expansion [INFO] [stderr] ... [INFO] [stderr] 21 | StringToInt(fn(String) -> Result), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/interpreter/object.rs:22:18 [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Clone, PartialEq)] [INFO] [stderr] | --------- in this derive macro expansion [INFO] [stderr] ... [INFO] [stderr] 22 | StringToReal(fn(String) -> Result) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] [INFO] [stderr] warning: `rascal` (lib) generated 8 warnings [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/parser/parser.rs:492:25 [INFO] [stderr] | [INFO] [stderr] 492 | fn get_parser(text: &str) -> Parser { [INFO] [stderr] | ^^^^ ------ the lifetime gets resolved as `'_` [INFO] [stderr] | | [INFO] [stderr] | this lifetime flows to the output [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stderr] | [INFO] [stderr] 492 | fn get_parser(text: &str) -> Parser<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/parser/parser.rs:524:40 [INFO] [stderr] | [INFO] [stderr] 524 | Err(e) => panic!(e) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] help: add a "{}" format string to `Display` the message [INFO] [stderr] | [INFO] [stderr] 524 | Err(e) => panic!("{}", e) [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/parser/parser.rs:533:57 [INFO] [stderr] | [INFO] [stderr] 533 | Err(e) => panic!(e) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to `Display` the message [INFO] [stderr] | [INFO] [stderr] 533 | Err(e) => panic!("{}", e) [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/parser/parser.rs:552:60 [INFO] [stderr] | [INFO] [stderr] 552 | Err(e) => panic!(e) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to `Display` the message [INFO] [stderr] | [INFO] [stderr] 552 | Err(e) => panic!("{}", e) [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/parser/parser.rs:561:62 [INFO] [stderr] | [INFO] [stderr] 561 | Err(e) => panic!(e) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to `Display` the message [INFO] [stderr] | [INFO] [stderr] 561 | Err(e) => panic!("{}", e) [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/parser/parser.rs:577:54 [INFO] [stderr] | [INFO] [stderr] 577 | Err(e) => panic!(e) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to `Display` the message [INFO] [stderr] | [INFO] [stderr] 577 | Err(e) => panic!("{}", e) [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/parser/parser.rs:641:42 [INFO] [stderr] | [INFO] [stderr] 641 | Err(e) => panic!(e) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to `Display` the message [INFO] [stderr] | [INFO] [stderr] 641 | Err(e) => panic!("{}", e) [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: `rascal` (lib test) generated 15 warnings (8 duplicates) (run `cargo fix --lib -p rascal --tests` to apply 6 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rascal-ebfac11f1e40b708) [INFO] [stdout] [INFO] [stdout] running 154 tests [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_assignment ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_block ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_call_parameters ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_compound ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_declarations ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_formal_parameter_list ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_formal_parameters ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_function_call ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_function_declaration ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_group_expr ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_if_statement ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_literal ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_procedure_declaration ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_program ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_binop_expr ... ok [INFO] [stdout] test analyzer::symbol_table::tests::lookup ... ok [INFO] [stdout] test interpreter::built_ins::tests::int_to_string ... ok [INFO] [stdout] test analyzer::symbol_table::tests::local_lookup ... ok [INFO] [stdout] test interpreter::built_ins::tests::string_to_int ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_binop ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_block ... ok [INFO] [stdout] test interpreter::built_ins::tests::string_to_real ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_compound ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_variable_declaration ... ok [INFO] [stdout] test interpreter::built_ins::tests::real_to_string ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_variable ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_assignment ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_formal_parameters ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_if_statement ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_literal ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_procedure_declaration ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_formal_parameter_list ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_program ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_unaryop ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_variable ... ok [INFO] [stdout] test interpreter::object::tests::add_float ... ok [INFO] [stdout] test analyzer::symbol_table::tests::enclosing_lookup ... ok [INFO] [stdout] test interpreter::object::tests::add_integer ... ok [INFO] [stdout] test interpreter::object::tests::add_string ... ok [INFO] [stdout] test interpreter::object::tests::and_false ... ok [INFO] [stdout] test interpreter::object::tests::and_mismatch ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_declarations ... ok [INFO] [stdout] test interpreter::object::tests::and_true ... ok [INFO] [stdout] test interpreter::object::tests::divide_float ... ok [INFO] [stdout] test interpreter::object::tests::divide_integer ... ok [INFO] [stdout] test interpreter::object::tests::equal_float ... ok [INFO] [stdout] test interpreter::object::tests::equal_integer ... ok [INFO] [stdout] test interpreter::object::tests::greater_than_float ... ok [INFO] [stdout] test interpreter::object::tests::greater_than_integer ... ok [INFO] [stdout] test interpreter::object::tests::greater_than_or_equal_float ... ok [INFO] [stdout] test interpreter::object::tests::greater_than_or_equal_integer ... ok [INFO] [stdout] test interpreter::object::tests::less_than_integer ... ok [INFO] [stdout] test interpreter::object::tests::less_than_or_equal_float ... ok [INFO] [stdout] test interpreter::object::tests::multiply_integer ... ok [INFO] [stdout] test interpreter::object::tests::negate_false ... ok [INFO] [stdout] test interpreter::object::tests::negate_true ... ok [INFO] [stdout] test interpreter::object::tests::not_equal_float ... ok [INFO] [stdout] test interpreter::object::tests::not_equal_integer ... ok [INFO] [stdout] test interpreter::object::tests::less_than_or_equal_integer ... ok [INFO] [stdout] test interpreter::object::tests::multiply_float ... ok [INFO] [stdout] test interpreter::object::tests::or_false ... ok [INFO] [stdout] test interpreter::object::tests::or_true ... ok [INFO] [stdout] test interpreter::object::tests::or_mismatch ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_function_call ... ok [INFO] [stdout] test interpreter::object::tests::subtract_float ... ok [INFO] [stdout] test interpreter::object::tests::unary_minus_float ... ok [INFO] [stdout] test interpreter::object::tests::subtract_integer ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_function_declaration ... ok [INFO] [stdout] test interpreter::interpreter::tests::visit_group ... ok [INFO] [stdout] test interpreter::object::tests::unary_minus_integer ... ok [INFO] [stdout] test interpreter::object::tests::unary_plus_float ... ok [INFO] [stdout] test interpreter::object::tests::unary_plus_integer ... ok [INFO] [stdout] test interpreter::scope::tests::get ... ok [INFO] [stdout] test interpreter::scope::tests::get_enclosing_scope ... ok [INFO] [stdout] test interpreter::scope::tests::get_local_scope ... ok [INFO] [stdout] test analyzer::semantic_analyzer::tests::visit_unaryop_expr ... ok [INFO] [stdout] test lexer::lexer::tests::and_token ... ok [INFO] [stdout] test interpreter::object::tests::less_than_float ... ok [INFO] [stdout] test lexer::lexer::tests::begin_token ... ok [INFO] [stdout] test lexer::lexer::tests::boolean_token ... ok [INFO] [stdout] test lexer::lexer::tests::comma_token ... ok [INFO] [stdout] test lexer::lexer::tests::boolean_const_token ... ok [INFO] [stdout] test lexer::lexer::tests::colon_token ... ok [INFO] [stdout] test lexer::lexer::tests::assign_token ... ok [INFO] [stdout] test lexer::lexer::tests::dot_token ... ok [INFO] [stdout] test lexer::lexer::tests::else_token ... ok [INFO] [stdout] test lexer::lexer::tests::equal_token ... ok [INFO] [stdout] test lexer::lexer::tests::end_token ... ok [INFO] [stdout] test lexer::lexer::tests::function_token ... ok [INFO] [stdout] test lexer::lexer::tests::float_div_token ... ok [INFO] [stdout] test lexer::lexer::tests::eof_token ... ok [INFO] [stdout] test lexer::lexer::tests::greater_than_token ... ok [INFO] [stdout] test lexer::lexer::tests::greater_than_or_equal_token ... ok [INFO] [stdout] test lexer::lexer::tests::id_token ... ok [INFO] [stdout] test lexer::lexer::tests::if_token ... ok [INFO] [stdout] test lexer::lexer::tests::integer_const_token ... ok [INFO] [stdout] test lexer::lexer::tests::integer_div_token ... ok [INFO] [stdout] test lexer::lexer::tests::integer_token ... ok [INFO] [stdout] test lexer::lexer::tests::left_paren_token ... ok [INFO] [stdout] test lexer::lexer::tests::less_than_or_equal_token ... ok [INFO] [stdout] test lexer::lexer::tests::less_than_token ... ok [INFO] [stdout] test lexer::lexer::tests::minus_token ... ok [INFO] [stdout] test lexer::lexer::tests::not_equal_token ... ok [INFO] [stdout] test lexer::lexer::tests::not_token ... ok [INFO] [stdout] test lexer::lexer::tests::plus_token ... ok [INFO] [stdout] test lexer::lexer::tests::real_const_token ... ok [INFO] [stdout] test lexer::lexer::tests::procedure_token ... ok [INFO] [stdout] test lexer::lexer::tests::program_token ... ok [INFO] [stdout] test lexer::lexer::tests::or_token ... ok [INFO] [stdout] test lexer::lexer::tests::string_literal_token ... ok [INFO] [stdout] test lexer::lexer::tests::multiply_token ... ok [INFO] [stdout] test lexer::lexer::tests::semi_token ... ok [INFO] [stdout] test lexer::lexer::tests::string_token ... ok [INFO] [stdout] test lexer::lexer::tests::then_token ... ok [INFO] [stdout] test lexer::source::tests::current_char ... ok [INFO] [stdout] test lexer::source::tests::next ... ok [INFO] [stdout] test lexer::source::tests::peek ... ok [INFO] [stdout] test lexer::source::tests::peeking_next ... ok [INFO] [stdout] test lexer::token::tests::peek_ahead ... ok [INFO] [stdout] test parser::parser::tests::assignment_statement ... ok [INFO] [stdout] test parser::parser::tests::block ... ok [INFO] [stdout] test parser::parser::tests::call_parameters ... ok [INFO] [stdout] test lexer::lexer::tests::real_token ... ok [INFO] [stdout] test lexer::lexer::tests::right_paren_token ... ok [INFO] [stdout] test lexer::token::tests::peek ... ok [INFO] [stdout] test parser::parser::tests::compound_statement ... ok [INFO] [stdout] test parser::parser::tests::declarations ... ok [INFO] [stdout] test parser::parser::tests::expr_binary_float_divide ... ok [INFO] [stdout] test parser::parser::tests::expr_binary_int_divide ... ok [INFO] [stdout] test parser::parser::tests::expr_binary_multiply ... ok [INFO] [stdout] test parser::parser::tests::expr_literal ... ok [INFO] [stdout] test parser::parser::tests::expr_grouped ... ok [INFO] [stdout] test parser::parser::tests::expr_binary_subtract ... ok [INFO] [stdout] test parser::parser::tests::expr_binary_add ... ok [INFO] [stdout] test parser::parser::tests::expr_function_call ... ok [INFO] [stdout] test parser::parser::tests::expr_unary_minus ... ok [INFO] [stdout] test parser::parser::tests::expr_unary_plus ... ok [INFO] [stdout] test parser::parser::tests::expr_variable ... ok [INFO] [stdout] test parser::parser::tests::formal_parameters_list ... ok [INFO] [stdout] test parser::parser::tests::if_else_if_else_statement ... ok [INFO] [stdout] test parser::parser::tests::function_declaration ... ok [INFO] [stdout] test parser::parser::tests::if_else_if_statement ... ok [INFO] [stdout] test parser::parser::tests::function_call ... ok [INFO] [stdout] test parser::parser::tests::if_else_statement ... ok [INFO] [stdout] test parser::parser::tests::parse ... ok [INFO] [stdout] test parser::parser::tests::type_spec ... ok [INFO] [stdout] test parser::parser::tests::variable ... ok [INFO] [stdout] test parser::parser::tests::procedure_declaration ... ok [INFO] [stdout] test parser::parser::tests::variable_declaration ... ok [INFO] [stdout] test lexer::lexer::tests::var_token ... ok [INFO] [stdout] test lexer::token::tests::next ... ok [INFO] [stdout] test parser::parser::tests::formal_parameters ... ok [INFO] [stdout] test parser::parser::tests::if_statement ... ok [INFO] [stdout] test parser::parser::tests::program ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 154 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rascal-7550cedefa85e8e5) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stderr] Doc-tests rascal [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "9fc2297e279d0dbd70adb99093e82abaa4ff57ef790c9c25e425457a5797f349", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9fc2297e279d0dbd70adb99093e82abaa4ff57ef790c9c25e425457a5797f349", kill_on_drop: false }` [INFO] [stdout] 9fc2297e279d0dbd70adb99093e82abaa4ff57ef790c9c25e425457a5797f349