[INFO] fetching crate stutter-rs 0.1.1...
[INFO] testing stutter-rs-0.1.1 against 1.75.0 for beta-1.76-1
[INFO] extracting crate stutter-rs 0.1.1 into /workspace/builds/worker-1-tc1/source
[INFO] validating manifest of crates.io crate stutter-rs 0.1.1 on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate stutter-rs 0.1.1
[INFO] finished tweaking crates.io crate stutter-rs 0.1.1
[INFO] tweaked toml for crates.io crate stutter-rs 0.1.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: only one of `license` or `license-file` is necessary
[INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression.
[INFO] [stderr] `license-file` should be used if the package uses a non-standard license.
[INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cactus v1.0.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 17f86aa20bde05b5a5d36773f85cf36fa1790f6a2618132d5bf76d94bda74fd5
[INFO] running `Command { std: "docker" "start" "-a" "17f86aa20bde05b5a5d36773f85cf36fa1790f6a2618132d5bf76d94bda74fd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "17f86aa20bde05b5a5d36773f85cf36fa1790f6a2618132d5bf76d94bda74fd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "17f86aa20bde05b5a5d36773f85cf36fa1790f6a2618132d5bf76d94bda74fd5", kill_on_drop: false }`
[INFO] [stdout] 17f86aa20bde05b5a5d36773f85cf36fa1790f6a2618132d5bf76d94bda74fd5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 932de529fd488e1bca14b12c701443e7e5db40fd83b717d7e55c540dc3ca2b45
[INFO] running `Command { std: "docker" "start" "-a" "932de529fd488e1bca14b12c701443e7e5db40fd83b717d7e55c540dc3ca2b45", kill_on_drop: false }`
[INFO] [stderr] warning: only one of `license` or `license-file` is necessary
[INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression.
[INFO] [stderr] `license-file` should be used if the package uses a non-standard license.
[INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]    Compiling linux-raw-sys v0.4.12
[INFO] [stderr]    Compiling bitflags v2.4.1
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling cactus v1.0.6
[INFO] [stderr]    Compiling nom v4.2.3
[INFO] [stderr]    Compiling is-terminal v0.4.10
[INFO] [stderr]    Compiling colored v1.9.4
[INFO] [stderr]    Compiling stutter-rs v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |            ^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: replaced with `#[rustc_box]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/static_functions.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | /         box | values | -> Value {
[INFO] [stdout] 12 | |
[INFO] [stdout] 13 | |             use types::Value::*;
[INFO] [stdout] 14 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 22 | |             Number(acc)
[INFO] [stdout] 23 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 11 ~         Box::new(| values | -> Value {
[INFO] [stdout] 12 + 
[INFO] [stdout] 13 +             use types::Value::*;
[INFO] [stdout] 14 + 
[INFO] [stdout] 15 +             let mut acc: f32 = 0.0;
[INFO] [stdout] 16 +             for value in values {
[INFO] [stdout] 17 +                 if let Number(ref a) = value {
[INFO] [stdout] 18 +                     acc += a;
[INFO] [stdout] 19 +                 } else { return Null }
[INFO] [stdout] 20 +             }
[INFO] [stdout] 21 + 
[INFO] [stdout] 22 +             Number(acc)
[INFO] [stdout] 23 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/static_functions.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | /         box | values | -> Value {
[INFO] [stdout] 29 | |
[INFO] [stdout] 30 | |             for value in values {
[INFO] [stdout] 31 | |                 print!("{} ", value);
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | |             Value::Null
[INFO] [stdout] 36 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 28 ~         Box::new(| values | -> Value {
[INFO] [stdout] 29 + 
[INFO] [stdout] 30 +             for value in values {
[INFO] [stdout] 31 +                 print!("{} ", value);
[INFO] [stdout] 32 +             }
[INFO] [stdout] 33 +             println!("");
[INFO] [stdout] 34 + 
[INFO] [stdout] 35 +             Value::Null
[INFO] [stdout] 36 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/language_functions.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | /         box | args, stack | -> Value {
[INFO] [stdout] 13 | |             stack.pop_return();
[INFO] [stdout] 14 | |
[INFO] [stdout] 15 | |             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] ...  |
[INFO] [stdout] 31 | |             Value::Null
[INFO] [stdout] 32 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 12 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 13 +             stack.pop_return();
[INFO] [stdout] 14 + 
[INFO] [stdout] 15 +             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] 16 +                 match args[i] {
[INFO] [stdout] 17 +                     Expression::Symbol(ref symbol) => {
[INFO] [stdout] 18 + 
[INFO] [stdout] 19 +                         eval::eval::eval(args[i+1].clone(), stack);
[INFO] [stdout] 20 + 
[INFO] [stdout] 21 +                         let value = stack.pop_return();
[INFO] [stdout] 22 +                         stack.push_value(symbol.clone(), value);
[INFO] [stdout] 23 +                         // stack.top().borrow_mut().scope.insert(symbol.clone(), value);
[INFO] [stdout] 24 +                     }
[INFO] [stdout] 25 +                     _ => return Value::Null,
[INFO] [stdout] 26 +                 }
[INFO] [stdout] 27 +             }
[INFO] [stdout] 28 + 
[INFO] [stdout] 29 +             stack.push_frame();
[INFO] [stdout] 30 + 
[INFO] [stdout] 31 +             Value::Null
[INFO] [stdout] 32 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/language_functions.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | /         box | args, stack | -> Value {
[INFO] [stdout] 38 | |             stack.pop_return();
[INFO] [stdout] 39 | |
[INFO] [stdout] 40 | |             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] ...  |
[INFO] [stdout] 60 | |             Value::Null
[INFO] [stdout] 61 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 37 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 38 +             stack.pop_return();
[INFO] [stdout] 39 + 
[INFO] [stdout] 40 +             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] 41 +                 match args[i] {
[INFO] [stdout] 42 +                     Expression::Symbol(ref symbol) => {
[INFO] [stdout] 43 + 
[INFO] [stdout] 44 +                         eval::eval::eval(args[i+1].clone(), stack);
[INFO] [stdout] 45 +                         let value = stack.pop_return();
[INFO] [stdout] 46 + 
[INFO] [stdout] 47 +                         for i in 0..stack.stack.len() {
[INFO] [stdout] 48 +                             if stack.stack[i].borrow().scope.contains_key(symbol) {
[INFO] [stdout] 49 +                                 stack.stack[i].borrow_mut().scope.insert(symbol.clone(), value);
[INFO] [stdout] 50 +                                 break;
[INFO] [stdout] 51 +                             }
[INFO] [stdout] 52 +                         }
[INFO] [stdout] 53 +                     }
[INFO] [stdout] 54 +                     _ => return Value::Null,
[INFO] [stdout] 55 +                 }
[INFO] [stdout] 56 +             }
[INFO] [stdout] 57 + 
[INFO] [stdout] 58 +             stack.push_frame();
[INFO] [stdout] 59 + 
[INFO] [stdout] 60 +             Value::Null
[INFO] [stdout] 61 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/language_functions.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | /         box | args, stack | -> Value {
[INFO] [stdout] 67 | |
[INFO] [stdout] 68 | |             let mut eval_else = true;
[INFO] [stdout] 69 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 85 | |             stack.pop_return()
[INFO] [stdout] 86 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 66 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 67 + 
[INFO] [stdout] 68 +             let mut eval_else = true;
[INFO] [stdout] 69 + 
[INFO] [stdout] 70 +             for i in (0..args.len() - 2).step_by(2) {
[INFO] [stdout] 71 +                 eval::eval::eval(args[i].clone(), stack);
[INFO] [stdout] 72 +                 if let Value::Boolean(val) = stack.pop_return().clone() {
[INFO] [stdout] 73 +                     if val {
[INFO] [stdout] 74 +                         eval::eval::eval(args[i + 1].clone(), stack);
[INFO] [stdout] 75 +                         eval_else = false;
[INFO] [stdout] 76 +                         break;
[INFO] [stdout] 77 +                     }
[INFO] [stdout] 78 +                 }
[INFO] [stdout] 79 +             }
[INFO] [stdout] 80 + 
[INFO] [stdout] 81 +             if eval_else {
[INFO] [stdout] 82 +                 eval::eval::eval(args[args.len() - 1].clone(), stack);
[INFO] [stdout] 83 +             }
[INFO] [stdout] 84 + 
[INFO] [stdout] 85 +             stack.pop_return()
[INFO] [stdout] 86 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]    --> src/eval/builtins/language_functions.rs:91:9
[INFO] [stdout]     |
[INFO] [stdout] 91  | /         box | args, stack | -> Value {
[INFO] [stdout] 92  | |             use eval::eval::eval;
[INFO] [stdout] 93  | |
[INFO] [stdout] 94  | |             let mut value = Value::Null;
[INFO] [stdout] ...   |
[INFO] [stdout] 101 | |             value
[INFO] [stdout] 102 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]     |
[INFO] [stdout] 91  ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 92  +             use eval::eval::eval;
[INFO] [stdout] 93  + 
[INFO] [stdout] 94  +             let mut value = Value::Null;
[INFO] [stdout] 95  +             for i in 0..args.len() {
[INFO] [stdout] 96  +                 eval(args[i].clone(), stack);
[INFO] [stdout] 97  +                 value = stack.pop_return();
[INFO] [stdout] 98  +                 // stack.top().borrow_mut().returns = value;
[INFO] [stdout] 99  +             }
[INFO] [stdout] 100 + 
[INFO] [stdout] 101 +             value
[INFO] [stdout] 102 +         })
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]    --> src/eval/builtins/language_functions.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         box | args, stack | -> Value {
[INFO] [stdout] 108 | |
[INFO] [stdout] 109 | |             let mut func_body = args.clone();
[INFO] [stdout] 110 | |             stack.pop_return();
[INFO] [stdout] ...   |
[INFO] [stdout] 138 | |             Value::Null
[INFO] [stdout] 139 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]     |
[INFO] [stdout] 107 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 108 + 
[INFO] [stdout] 109 +             let mut func_body = args.clone();
[INFO] [stdout] 110 +             stack.pop_return();
[INFO] [stdout] 111 + 
[INFO] [stdout] 112 +             if let Expression::Symbol(symbol) = func_body.remove(0) {
[INFO] [stdout] 113 + 
[INFO] [stdout] 114 +                 if let Expression::Call(arg0, other_args) = func_body.remove(0) {
[INFO] [stdout] 115 +                     let mut other_args = other_args.clone();
[INFO] [stdout] 116 +                     other_args.insert(0, Expression::Symbol(arg0));
[INFO] [stdout] 117 + 
[INFO] [stdout] 118 +                     let arguments: Vec<Symbol> = other_args
[INFO] [stdout] 119 +                         .into_iter()
[INFO] [stdout] 120 +                         .map(|expr| match expr {
[INFO] [stdout] 121 +                             Expression::Symbol(symbol) => symbol,
[INFO] [stdout] 122 +                             _ => String::from("nope"),
[INFO] [stdout] 123 +                         })
[INFO] [stdout] 124 +                         .collect();
[INFO] [stdout] 125 + 
[INFO] [stdout] 126 +                     stack.push_value(symbol, Value::Function(
[INFO] [stdout] 127 +                         Function::new(
[INFO] [stdout] 128 +                             stack.clone(),
[INFO] [stdout] 129 +                             arguments,
[INFO] [stdout] 130 +                             func_body
[INFO] [stdout] 131 +                         )
[INFO] [stdout] 132 +                     ));
[INFO] [stdout] 133 +                 }
[INFO] [stdout] 134 +             }
[INFO] [stdout] 135 + 
[INFO] [stdout] 136 +             stack.push_frame(); // TODO: push value to frames below top
[INFO] [stdout] 137 + 
[INFO] [stdout] 138 +             Value::Null
[INFO] [stdout] 139 +         })
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the feature `nll` has been stable since `1.63.0` and no longer requires an attribute to enable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `nll` has been stable since 1.63.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                                 ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `iterator_step_by` has been stable since 1.28.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/eval/builtins/static_functions.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type StaticFn = Fn(Vec<Value>) -> Value;
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type StaticFn = dyn Fn(Vec<Value>) -> Value;
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/eval/builtins/language_functions.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type LanguageFn = Fn(Vec<Expression>, &mut CallStack) -> Value;
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type LanguageFn = dyn Fn(Vec<Expression>, &mut CallStack) -> Value;
[INFO] [stdout]   |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors; 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0554, E0557.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0554`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stutter-rs` (lib) due to 12 previous errors; 4 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "932de529fd488e1bca14b12c701443e7e5db40fd83b717d7e55c540dc3ca2b45", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "932de529fd488e1bca14b12c701443e7e5db40fd83b717d7e55c540dc3ca2b45", kill_on_drop: false }`
[INFO] [stdout] 932de529fd488e1bca14b12c701443e7e5db40fd83b717d7e55c540dc3ca2b45
[INFO] testing stutter-rs-0.1.1 against beta-2023-12-22 for beta-1.76-1
[INFO] extracting crate stutter-rs 0.1.1 into /workspace/builds/worker-1-tc2/source
[INFO] validating manifest of crates.io crate stutter-rs 0.1.1 on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate stutter-rs 0.1.1
[INFO] finished tweaking crates.io crate stutter-rs 0.1.1
[INFO] tweaked toml for crates.io crate stutter-rs 0.1.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: only one of `license` or `license-file` is necessary
[INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression.
[INFO] [stderr] `license-file` should be used if the package uses a non-standard license.
[INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e9d6ce871e890478613634a4e526bf3ea1e2e2faef9bab8ef4d8727d8c0bb1fa
[INFO] running `Command { std: "docker" "start" "-a" "e9d6ce871e890478613634a4e526bf3ea1e2e2faef9bab8ef4d8727d8c0bb1fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e9d6ce871e890478613634a4e526bf3ea1e2e2faef9bab8ef4d8727d8c0bb1fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9d6ce871e890478613634a4e526bf3ea1e2e2faef9bab8ef4d8727d8c0bb1fa", kill_on_drop: false }`
[INFO] [stdout] e9d6ce871e890478613634a4e526bf3ea1e2e2faef9bab8ef4d8727d8c0bb1fa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0fad0b210cfaf33b9625e812bba42277230ef3ec41b1c2465d0ee94fc64f90a3
[INFO] running `Command { std: "docker" "start" "-a" "0fad0b210cfaf33b9625e812bba42277230ef3ec41b1c2465d0ee94fc64f90a3", kill_on_drop: false }`
[INFO] [stderr] warning: only one of `license` or `license-file` is necessary
[INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression.
[INFO] [stderr] `license-file` should be used if the package uses a non-standard license.
[INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]    Compiling bitflags v2.4.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.12
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling cactus v1.0.6
[INFO] [stderr]    Compiling nom v4.2.3
[INFO] [stderr]    Compiling is-terminal v0.4.10
[INFO] [stderr]    Compiling colored v1.9.4
[INFO] [stderr]    Compiling stutter-rs v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |            ^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: replaced with `#[rustc_box]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/static_functions.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | /         box | values | -> Value {
[INFO] [stdout] 12 | |
[INFO] [stdout] 13 | |             use types::Value::*;
[INFO] [stdout] 14 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 22 | |             Number(acc)
[INFO] [stdout] 23 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 11 ~         Box::new(| values | -> Value {
[INFO] [stdout] 12 + 
[INFO] [stdout] 13 +             use types::Value::*;
[INFO] [stdout] 14 + 
[INFO] [stdout] 15 +             let mut acc: f32 = 0.0;
[INFO] [stdout] 16 +             for value in values {
[INFO] [stdout] 17 +                 if let Number(ref a) = value {
[INFO] [stdout] 18 +                     acc += a;
[INFO] [stdout] 19 +                 } else { return Null }
[INFO] [stdout] 20 +             }
[INFO] [stdout] 21 + 
[INFO] [stdout] 22 +             Number(acc)
[INFO] [stdout] 23 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/static_functions.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | /         box | values | -> Value {
[INFO] [stdout] 29 | |
[INFO] [stdout] 30 | |             for value in values {
[INFO] [stdout] 31 | |                 print!("{} ", value);
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | |             Value::Null
[INFO] [stdout] 36 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 28 ~         Box::new(| values | -> Value {
[INFO] [stdout] 29 + 
[INFO] [stdout] 30 +             for value in values {
[INFO] [stdout] 31 +                 print!("{} ", value);
[INFO] [stdout] 32 +             }
[INFO] [stdout] 33 +             println!("");
[INFO] [stdout] 34 + 
[INFO] [stdout] 35 +             Value::Null
[INFO] [stdout] 36 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/language_functions.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | /         box | args, stack | -> Value {
[INFO] [stdout] 13 | |             stack.pop_return();
[INFO] [stdout] 14 | |
[INFO] [stdout] 15 | |             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] ...  |
[INFO] [stdout] 31 | |             Value::Null
[INFO] [stdout] 32 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 12 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 13 +             stack.pop_return();
[INFO] [stdout] 14 + 
[INFO] [stdout] 15 +             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] 16 +                 match args[i] {
[INFO] [stdout] 17 +                     Expression::Symbol(ref symbol) => {
[INFO] [stdout] 18 + 
[INFO] [stdout] 19 +                         eval::eval::eval(args[i+1].clone(), stack);
[INFO] [stdout] 20 + 
[INFO] [stdout] 21 +                         let value = stack.pop_return();
[INFO] [stdout] 22 +                         stack.push_value(symbol.clone(), value);
[INFO] [stdout] 23 +                         // stack.top().borrow_mut().scope.insert(symbol.clone(), value);
[INFO] [stdout] 24 +                     }
[INFO] [stdout] 25 +                     _ => return Value::Null,
[INFO] [stdout] 26 +                 }
[INFO] [stdout] 27 +             }
[INFO] [stdout] 28 + 
[INFO] [stdout] 29 +             stack.push_frame();
[INFO] [stdout] 30 + 
[INFO] [stdout] 31 +             Value::Null
[INFO] [stdout] 32 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/language_functions.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | /         box | args, stack | -> Value {
[INFO] [stdout] 38 | |             stack.pop_return();
[INFO] [stdout] 39 | |
[INFO] [stdout] 40 | |             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] ...  |
[INFO] [stdout] 60 | |             Value::Null
[INFO] [stdout] 61 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 37 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 38 +             stack.pop_return();
[INFO] [stdout] 39 + 
[INFO] [stdout] 40 +             for i in (0..args.len()).step_by(2) {
[INFO] [stdout] 41 +                 match args[i] {
[INFO] [stdout] 42 +                     Expression::Symbol(ref symbol) => {
[INFO] [stdout] 43 + 
[INFO] [stdout] 44 +                         eval::eval::eval(args[i+1].clone(), stack);
[INFO] [stdout] 45 +                         let value = stack.pop_return();
[INFO] [stdout] 46 + 
[INFO] [stdout] 47 +                         for i in 0..stack.stack.len() {
[INFO] [stdout] 48 +                             if stack.stack[i].borrow().scope.contains_key(symbol) {
[INFO] [stdout] 49 +                                 stack.stack[i].borrow_mut().scope.insert(symbol.clone(), value);
[INFO] [stdout] 50 +                                 break;
[INFO] [stdout] 51 +                             }
[INFO] [stdout] 52 +                         }
[INFO] [stdout] 53 +                     }
[INFO] [stdout] 54 +                     _ => return Value::Null,
[INFO] [stdout] 55 +                 }
[INFO] [stdout] 56 +             }
[INFO] [stdout] 57 + 
[INFO] [stdout] 58 +             stack.push_frame();
[INFO] [stdout] 59 + 
[INFO] [stdout] 60 +             Value::Null
[INFO] [stdout] 61 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]   --> src/eval/builtins/language_functions.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | /         box | args, stack | -> Value {
[INFO] [stdout] 67 | |
[INFO] [stdout] 68 | |             let mut eval_else = true;
[INFO] [stdout] 69 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 85 | |             stack.pop_return()
[INFO] [stdout] 86 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]    |
[INFO] [stdout] 66 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 67 + 
[INFO] [stdout] 68 +             let mut eval_else = true;
[INFO] [stdout] 69 + 
[INFO] [stdout] 70 +             for i in (0..args.len() - 2).step_by(2) {
[INFO] [stdout] 71 +                 eval::eval::eval(args[i].clone(), stack);
[INFO] [stdout] 72 +                 if let Value::Boolean(val) = stack.pop_return().clone() {
[INFO] [stdout] 73 +                     if val {
[INFO] [stdout] 74 +                         eval::eval::eval(args[i + 1].clone(), stack);
[INFO] [stdout] 75 +                         eval_else = false;
[INFO] [stdout] 76 +                         break;
[INFO] [stdout] 77 +                     }
[INFO] [stdout] 78 +                 }
[INFO] [stdout] 79 +             }
[INFO] [stdout] 80 + 
[INFO] [stdout] 81 +             if eval_else {
[INFO] [stdout] 82 +                 eval::eval::eval(args[args.len() - 1].clone(), stack);
[INFO] [stdout] 83 +             }
[INFO] [stdout] 84 + 
[INFO] [stdout] 85 +             stack.pop_return()
[INFO] [stdout] 86 +         })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]    --> src/eval/builtins/language_functions.rs:91:9
[INFO] [stdout]     |
[INFO] [stdout] 91  | /         box | args, stack | -> Value {
[INFO] [stdout] 92  | |             use eval::eval::eval;
[INFO] [stdout] 93  | |
[INFO] [stdout] 94  | |             let mut value = Value::Null;
[INFO] [stdout] ...   |
[INFO] [stdout] 101 | |             value
[INFO] [stdout] 102 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]     |
[INFO] [stdout] 91  ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 92  +             use eval::eval::eval;
[INFO] [stdout] 93  + 
[INFO] [stdout] 94  +             let mut value = Value::Null;
[INFO] [stdout] 95  +             for i in 0..args.len() {
[INFO] [stdout] 96  +                 eval(args[i].clone(), stack);
[INFO] [stdout] 97  +                 value = stack.pop_return();
[INFO] [stdout] 98  +                 // stack.top().borrow_mut().returns = value;
[INFO] [stdout] 99  +             }
[INFO] [stdout] 100 + 
[INFO] [stdout] 101 +             value
[INFO] [stdout] 102 +         })
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box_syntax` has been removed
[INFO] [stdout]    --> src/eval/builtins/language_functions.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         box | args, stack | -> Value {
[INFO] [stdout] 108 | |
[INFO] [stdout] 109 | |             let mut func_body = args.clone();
[INFO] [stdout] 110 | |             stack.pop_return();
[INFO] [stdout] ...   |
[INFO] [stdout] 138 | |             Value::Null
[INFO] [stdout] 139 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout] help: use `Box::new()` instead
[INFO] [stdout]     |
[INFO] [stdout] 107 ~         Box::new(| args, stack | -> Value {
[INFO] [stdout] 108 + 
[INFO] [stdout] 109 +             let mut func_body = args.clone();
[INFO] [stdout] 110 +             stack.pop_return();
[INFO] [stdout] 111 + 
[INFO] [stdout] 112 +             if let Expression::Symbol(symbol) = func_body.remove(0) {
[INFO] [stdout] 113 + 
[INFO] [stdout] 114 +                 if let Expression::Call(arg0, other_args) = func_body.remove(0) {
[INFO] [stdout] 115 +                     let mut other_args = other_args.clone();
[INFO] [stdout] 116 +                     other_args.insert(0, Expression::Symbol(arg0));
[INFO] [stdout] 117 + 
[INFO] [stdout] 118 +                     let arguments: Vec<Symbol> = other_args
[INFO] [stdout] 119 +                         .into_iter()
[INFO] [stdout] 120 +                         .map(|expr| match expr {
[INFO] [stdout] 121 +                             Expression::Symbol(symbol) => symbol,
[INFO] [stdout] 122 +                             _ => String::from("nope"),
[INFO] [stdout] 123 +                         })
[INFO] [stdout] 124 +                         .collect();
[INFO] [stdout] 125 + 
[INFO] [stdout] 126 +                     stack.push_value(symbol, Value::Function(
[INFO] [stdout] 127 +                         Function::new(
[INFO] [stdout] 128 +                             stack.clone(),
[INFO] [stdout] 129 +                             arguments,
[INFO] [stdout] 130 +                             func_body
[INFO] [stdout] 131 +                         )
[INFO] [stdout] 132 +                     ));
[INFO] [stdout] 133 +                 }
[INFO] [stdout] 134 +             }
[INFO] [stdout] 135 + 
[INFO] [stdout] 136 +             stack.push_frame(); // TODO: push value to frames below top
[INFO] [stdout] 137 + 
[INFO] [stdout] 138 +             Value::Null
[INFO] [stdout] 139 +         })
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the feature `nll` has been stable since `1.63.0` and no longer requires an attribute to enable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `nll` has been stable since 1.63.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                                 ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/lib.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/lib.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `iterator_step_by` has been stable since 1.28.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_syntax, box_patterns, fn_traits, nll, iterator_step_by)]
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/eval/builtins/static_functions.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type StaticFn = Fn(Vec<Value>) -> Value;
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type StaticFn = dyn Fn(Vec<Value>) -> Value;
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/eval/builtins/language_functions.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type LanguageFn = Fn(Vec<Expression>, &mut CallStack) -> Value;
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type LanguageFn = dyn Fn(Vec<Expression>, &mut CallStack) -> Value;
[INFO] [stdout]   |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors; 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0554, E0557.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0554`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stutter-rs` (lib) due to 12 previous errors; 4 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "0fad0b210cfaf33b9625e812bba42277230ef3ec41b1c2465d0ee94fc64f90a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0fad0b210cfaf33b9625e812bba42277230ef3ec41b1c2465d0ee94fc64f90a3", kill_on_drop: false }`
[INFO] [stdout] 0fad0b210cfaf33b9625e812bba42277230ef3ec41b1c2465d0ee94fc64f90a3
