[INFO] fetching crate deft-quick-js 0.7.1... [INFO] testing deft-quick-js-0.7.1 against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] extracting crate deft-quick-js 0.7.1 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate deft-quick-js 0.7.1 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate deft-quick-js 0.7.1 [INFO] tweaked toml for crates.io crate deft-quick-js 0.7.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate deft-quick-js 0.7.1 on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate deft-quick-js 0.7.1 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded deft-rquickjs-sys v0.10.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 67bee57fb1d0f289d2b1917e3e43a7f1cc777b4cb3ce7c03adcda386a35c3ae4 [INFO] running `Command { std: "docker" "start" "-a" "67bee57fb1d0f289d2b1917e3e43a7f1cc777b4cb3ce7c03adcda386a35c3ae4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "67bee57fb1d0f289d2b1917e3e43a7f1cc777b4cb3ce7c03adcda386a35c3ae4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "67bee57fb1d0f289d2b1917e3e43a7f1cc777b4cb3ce7c03adcda386a35c3ae4", kill_on_drop: false }` [INFO] [stdout] 67bee57fb1d0f289d2b1917e3e43a7f1cc777b4cb3ce7c03adcda386a35c3ae4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] fa3f98f9327b2c9300ec3005cad09afc4df898f25b40d36d6b3bfa26169f415a [INFO] running `Command { std: "docker" "start" "-a" "fa3f98f9327b2c9300ec3005cad09afc4df898f25b40d36d6b3bfa26169f415a", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling libc v0.2.154 [INFO] [stderr] Compiling proc-macro2 v1.0.82 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling glob v0.3.2 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling prettyplease v0.2.20 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling home v0.5.11 [INFO] [stderr] Compiling libloading v0.8.8 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling bindgen v0.69.5 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling cc v1.0.97 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Compiling iana-time-zone v0.1.60 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling syn v2.0.61 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling is-terminal v0.4.13 [INFO] [stderr] Compiling chrono v0.4.38 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling pretty_env_logger v0.5.0 [INFO] [stderr] Compiling deft-rquickjs-sys v0.10.1 [INFO] [stderr] Compiling deft-quick-js v0.7.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `TAG_BOOL`, `TAG_EXCEPTION`, `TAG_FLOAT64`, `TAG_INT`, `TAG_NULL`, `TAG_OBJECT`, `TAG_STRING`, and `TAG_UNDEFINED` [INFO] [stdout] --> src/bindings/convert.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | TAG_BOOL, TAG_EXCEPTION, TAG_FLOAT64, TAG_INT, TAG_NULL, TAG_OBJECT, TAG_STRING, TAG_UNDEFINED, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/bindings/convert.rs:275:13 [INFO] [stdout] | [INFO] [stdout] 275 | extern fn finalizer(rt: *mut JSRuntime, val: JSValue) { [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(missing_abi)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/bindings/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TAG_EXCEPTION` [INFO] [stdout] --> src/value/mod.rs:16:37 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::bindings::{make_cstring, TAG_EXCEPTION}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bindings::value::JsTag` [INFO] [stdout] --> src/value/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::bindings::value::JsTag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead [INFO] [stdout] --> src/bindings/convert.rs:510:56 [INFO] [stdout] | [INFO] [stdout] 510 | ... let datetime = chrono::Utc.timestamp_millis(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead [INFO] [stdout] --> src/bindings/convert.rs:514:56 [INFO] [stdout] | [INFO] [stdout] 514 | ... let datetime = chrono::Utc.timestamp_millis(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Context` [INFO] [stdout] --> src/bindings/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use anyhow::Context; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/lib.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/convert.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/convert.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/bindings/convert.rs:275:33 [INFO] [stdout] | [INFO] [stdout] 275 | extern fn finalizer(rt: *mut JSRuntime, val: JSValue) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bindings/convert.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | t => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/value.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | let inner = unsafe { q::JS_VALUE_GET_TAG(*value) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bindings/mod.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | let mut opaque = opaque as *mut HostPromiseRejectionTrackerWrapper; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let t = unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:435:9 [INFO] [stdout] | [INFO] [stdout] 435 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:585:13 [INFO] [stdout] | [INFO] [stdout] 585 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/value/mod.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 64 | unsafe { [INFO] [stdout] | ------ because it's nested under this `unsafe` block [INFO] [stdout] 65 | let v = unsafe { Box::from_raw(self.js_value) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/loader.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/loader.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut loader = &mut *(opaque as *mut _ as *mut Box); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_STRING` is never used [INFO] [stdout] --> src/bindings/mod.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const TAG_STRING: i64 = -7; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_FUNCTION_BYTECODE` is never used [INFO] [stdout] --> src/bindings/mod.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const TAG_FUNCTION_BYTECODE: i64 = -2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_OBJECT` is never used [INFO] [stdout] --> src/bindings/mod.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const TAG_OBJECT: i64 = -1; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_INT` is never used [INFO] [stdout] --> src/bindings/mod.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const TAG_INT: i64 = 0; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_BOOL` is never used [INFO] [stdout] --> src/bindings/mod.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const TAG_BOOL: i64 = 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_NULL` is never used [INFO] [stdout] --> src/bindings/mod.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const TAG_NULL: i64 = 2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_UNDEFINED` is never used [INFO] [stdout] --> src/bindings/mod.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const TAG_UNDEFINED: i64 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_FLOAT64` is never used [INFO] [stdout] --> src/bindings/mod.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | const TAG_FLOAT64: i64 = 7; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `into_inner` and `as_inner` are never used [INFO] [stdout] --> src/bindings/mod.rs:194:15 [INFO] [stdout] | [INFO] [stdout] 181 | impl<'a> OwnedValueRef<'a> { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 194 | unsafe fn into_inner(self) -> q::JSValue { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub(crate) fn as_inner(&self) -> &q::JSValue { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `into_value`, `property_tag`, and `is_promise` are never used [INFO] [stdout] --> src/bindings/mod.rs:294:8 [INFO] [stdout] | [INFO] [stdout] 285 | impl<'a> OwnedObjectRef<'a> { [INFO] [stdout] | --------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 294 | fn into_value(self) -> OwnedValueRef<'a> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 299 | fn property_tag(&self, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn is_promise(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/bindings/compile.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn compile<'a>( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_bytecode` is never used [INFO] [stdout] --> src/bindings/compile.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn from_bytecode<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_c` is never used [INFO] [stdout] --> src/bindings/value.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 33 | impl JsTag { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub(super) fn to_c(self) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_bool`, `try_into_compiled_function`, and `try_into_module` are never used [INFO] [stdout] --> src/bindings/value.rs:308:19 [INFO] [stdout] | [INFO] [stdout] 211 | impl<'a> OwnedJsValue<'a> { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 308 | pub(crate) fn to_bool(&self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 323 | pub(crate) fn try_into_compiled_function(self) -> Result, ValueError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 327 | pub(crate) fn try_into_module(self) -> Result, ValueError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bindings/value.rs:389:5 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct OwnedJsArray<'a> { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 389 | value: OwnedJsValue<'a>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `try_from_value` is never used [INFO] [stdout] --> src/bindings/value.rs:538:19 [INFO] [stdout] | [INFO] [stdout] 537 | impl<'a> JsCompiledFunction<'a> { [INFO] [stdout] | ------------------------------- associated function in this implementation [INFO] [stdout] 538 | pub(crate) fn try_from_value(value: OwnedJsValue<'a>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.18s [INFO] running `Command { std: "docker" "inspect" "fa3f98f9327b2c9300ec3005cad09afc4df898f25b40d36d6b3bfa26169f415a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa3f98f9327b2c9300ec3005cad09afc4df898f25b40d36d6b3bfa26169f415a", kill_on_drop: false }` [INFO] [stdout] fa3f98f9327b2c9300ec3005cad09afc4df898f25b40d36d6b3bfa26169f415a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 531a1d83d5962267ff8e527b5c377ba17dd55cc4fbaf31be26f9f8e5d9e6ef19 [INFO] running `Command { std: "docker" "start" "-a" "531a1d83d5962267ff8e527b5c377ba17dd55cc4fbaf31be26f9f8e5d9e6ef19", kill_on_drop: false }` [INFO] [stdout] warning: unused imports: `TAG_BOOL`, `TAG_EXCEPTION`, `TAG_FLOAT64`, `TAG_INT`, `TAG_NULL`, `TAG_OBJECT`, `TAG_STRING`, and `TAG_UNDEFINED` [INFO] [stdout] --> src/bindings/convert.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | TAG_BOOL, TAG_EXCEPTION, TAG_FLOAT64, TAG_INT, TAG_NULL, TAG_OBJECT, TAG_STRING, TAG_UNDEFINED, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/bindings/convert.rs:275:13 [INFO] [stdout] | [INFO] [stdout] 275 | extern fn finalizer(rt: *mut JSRuntime, val: JSValue) { [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(missing_abi)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/bindings/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TAG_EXCEPTION` [INFO] [stdout] --> src/value/mod.rs:16:37 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::bindings::{make_cstring, TAG_EXCEPTION}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bindings::value::JsTag` [INFO] [stdout] --> src/value/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::bindings::value::JsTag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead [INFO] [stdout] --> src/bindings/convert.rs:510:56 [INFO] [stdout] | [INFO] [stdout] 510 | ... let datetime = chrono::Utc.timestamp_millis(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead [INFO] [stdout] --> src/bindings/convert.rs:514:56 [INFO] [stdout] | [INFO] [stdout] 514 | ... let datetime = chrono::Utc.timestamp_millis(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Context` [INFO] [stdout] --> src/bindings/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use anyhow::Context; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/lib.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/convert.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/convert.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/bindings/convert.rs:275:33 [INFO] [stdout] | [INFO] [stdout] 275 | extern fn finalizer(rt: *mut JSRuntime, val: JSValue) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bindings/convert.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | t => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/value.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | let inner = unsafe { q::JS_VALUE_GET_TAG(*value) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bindings/mod.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | let mut opaque = opaque as *mut HostPromiseRejectionTrackerWrapper; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let t = unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:435:9 [INFO] [stdout] | [INFO] [stdout] 435 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:585:13 [INFO] [stdout] | [INFO] [stdout] 585 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/value/mod.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 64 | unsafe { [INFO] [stdout] | ------ because it's nested under this `unsafe` block [INFO] [stdout] 65 | let v = unsafe { Box::from_raw(self.js_value) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/loader.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/loader.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut loader = &mut *(opaque as *mut _ as *mut Box); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_STRING` is never used [INFO] [stdout] --> src/bindings/mod.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const TAG_STRING: i64 = -7; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_FUNCTION_BYTECODE` is never used [INFO] [stdout] --> src/bindings/mod.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const TAG_FUNCTION_BYTECODE: i64 = -2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_OBJECT` is never used [INFO] [stdout] --> src/bindings/mod.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const TAG_OBJECT: i64 = -1; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_INT` is never used [INFO] [stdout] --> src/bindings/mod.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const TAG_INT: i64 = 0; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_BOOL` is never used [INFO] [stdout] --> src/bindings/mod.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const TAG_BOOL: i64 = 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_NULL` is never used [INFO] [stdout] --> src/bindings/mod.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const TAG_NULL: i64 = 2; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_UNDEFINED` is never used [INFO] [stdout] --> src/bindings/mod.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const TAG_UNDEFINED: i64 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TAG_FLOAT64` is never used [INFO] [stdout] --> src/bindings/mod.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | const TAG_FLOAT64: i64 = 7; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `into_inner` and `as_inner` are never used [INFO] [stdout] --> src/bindings/mod.rs:194:15 [INFO] [stdout] | [INFO] [stdout] 181 | impl<'a> OwnedValueRef<'a> { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 194 | unsafe fn into_inner(self) -> q::JSValue { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub(crate) fn as_inner(&self) -> &q::JSValue { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `into_value`, `property_tag`, and `is_promise` are never used [INFO] [stdout] --> src/bindings/mod.rs:294:8 [INFO] [stdout] | [INFO] [stdout] 285 | impl<'a> OwnedObjectRef<'a> { [INFO] [stdout] | --------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 294 | fn into_value(self) -> OwnedValueRef<'a> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 299 | fn property_tag(&self, name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn is_promise(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/bindings/compile.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn compile<'a>( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_bytecode` is never used [INFO] [stdout] --> src/bindings/compile.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn from_bytecode<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_c` is never used [INFO] [stdout] --> src/bindings/value.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 33 | impl JsTag { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub(super) fn to_c(self) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_bool`, `try_into_compiled_function`, and `try_into_module` are never used [INFO] [stdout] --> src/bindings/value.rs:308:19 [INFO] [stdout] | [INFO] [stdout] 211 | impl<'a> OwnedJsValue<'a> { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 308 | pub(crate) fn to_bool(&self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 323 | pub(crate) fn try_into_compiled_function(self) -> Result, ValueError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 327 | pub(crate) fn try_into_module(self) -> Result, ValueError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling deft-quick-js v0.7.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/bindings/value.rs:389:5 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct OwnedJsArray<'a> { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 389 | value: OwnedJsValue<'a>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `try_from_value` is never used [INFO] [stdout] --> src/bindings/value.rs:538:19 [INFO] [stdout] | [INFO] [stdout] 537 | impl<'a> JsCompiledFunction<'a> { [INFO] [stdout] | ------------------------------- associated function in this implementation [INFO] [stdout] 538 | pub(crate) fn try_from_value(value: OwnedJsValue<'a>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `quick_js` [INFO] [stdout] --> examples/resource.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use quick_js::console::{ConsoleBackend, Level}; [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `quick_js` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `quick_js`, use `cargo add quick_js` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `quick_js` [INFO] [stdout] --> examples/resource.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use quick_js::{Context, JsValue, ResourceValue}; [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `quick_js` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `quick_js`, use `cargo add quick_js` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0432, E0433. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0432`. [INFO] [stdout] [INFO] [stderr] error: could not compile `deft-quick-js` (example "resource") due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q` [INFO] [stdout] --> src/bindings/value.rs:355:60 [INFO] [stdout] | [INFO] [stdout] 355 | let ptr = unsafe { self.value.u.ptr as *mut q::JSRefCountHeader }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ not found in `q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q` [INFO] [stdout] --> src/bindings/value.rs:356:31 [INFO] [stdout] | [INFO] [stdout] 356 | let pref: &mut q::JSRefCountHeader = &mut unsafe { *ptr }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ not found in `q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q` [INFO] [stdout] --> src/bindings/mod.rs:270:75 [INFO] [stdout] | [INFO] [stdout] 270 | let ptr = unsafe { q::JS_VALUE_GET_PTR(self.value) as *mut q::JSRefCountHeader }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ not found in `q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q` [INFO] [stdout] --> src/bindings/mod.rs:271:31 [INFO] [stdout] | [INFO] [stdout] 271 | let pref: &mut q::JSRefCountHeader = &mut unsafe { *ptr }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ not found in `q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TAG_BOOL`, `TAG_EXCEPTION`, `TAG_FLOAT64`, `TAG_INT`, `TAG_NULL`, `TAG_OBJECT`, `TAG_STRING`, and `TAG_UNDEFINED` [INFO] [stdout] --> src/bindings/convert.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | TAG_BOOL, TAG_EXCEPTION, TAG_FLOAT64, TAG_INT, TAG_NULL, TAG_OBJECT, TAG_STRING, TAG_UNDEFINED, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/bindings/convert.rs:275:13 [INFO] [stdout] | [INFO] [stdout] 275 | extern fn finalizer(rt: *mut JSRuntime, val: JSValue) { [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(missing_abi)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/bindings/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TAG_EXCEPTION` [INFO] [stdout] --> src/value/mod.rs:16:37 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::bindings::{make_cstring, TAG_EXCEPTION}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bindings::value::JsTag` [INFO] [stdout] --> src/value/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::bindings::value::JsTag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/lib.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/bindings/compile.rs:142:17 [INFO] [stdout] | [INFO] [stdout] 142 | assert_eq!(res.to_value().unwrap(), JsValue::Int(7 * 5)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/bindings/compile.rs:177:17 [INFO] [stdout] | [INFO] [stdout] 177 | assert_eq!(res.to_value().unwrap(), JsValue::Int(7 * 5)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead [INFO] [stdout] --> src/bindings/convert.rs:510:56 [INFO] [stdout] | [INFO] [stdout] 510 | ... let datetime = chrono::Utc.timestamp_millis(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead [INFO] [stdout] --> src/bindings/convert.rs:514:56 [INFO] [stdout] | [INFO] [stdout] 514 | ... let datetime = chrono::Utc.timestamp_millis(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:46:22 [INFO] [stdout] | [INFO] [stdout] 46 | assert_eq!(c.eval(code), res,); [INFO] [stdout] | ^^^^------ argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 46 | assert_eq!(c.eval(code, /* &str */), res,); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | assert_eq!(c.eval(code), res,); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:79:22 [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(c.eval(&full_code), res,); [INFO] [stdout] | ^^^^------------ argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(c.eval(&full_code, /* &str */), res,); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(c.eval(&full_code), res,); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | assert_eq!(c.eval_as::("true").unwrap(), true,); [INFO] [stdout] | ^^^^^^^^^^^^^^^-------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:304:12 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn eval_as(&self, code: &str, filename: &str) -> Result [INFO] [stdout] | ^^^^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 82 | assert_eq!(c.eval_as::("true", /* &str */).unwrap(), true,); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:83:18 [INFO] [stdout] | [INFO] [stdout] 83 | assert_eq!(c.eval_as::("1 + 2").unwrap(), 3,); [INFO] [stdout] | ^^^^^^^^^^^^^^--------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:304:12 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn eval_as(&self, code: &str, filename: &str) -> Result [INFO] [stdout] | ^^^^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 83 | assert_eq!(c.eval_as::("1 + 2", /* &str */).unwrap(), 3,); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:85:27 [INFO] [stdout] | [INFO] [stdout] 85 | let value: String = c.eval_as("var x = 44; x.toString()").unwrap(); [INFO] [stdout] | ^^^^^^^---------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:304:12 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn eval_as(&self, code: &str, filename: &str) -> Result [INFO] [stdout] | ^^^^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 85 | let value: String = c.eval_as("var x = 44; x.toString()", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:105:11 [INFO] [stdout] | [INFO] [stdout] 105 | c.eval( [INFO] [stdout] | ___________^^^^- [INFO] [stdout] 106 | | r#" [INFO] [stdout] 107 | | !!!! [INFO] [stdout] 108 | | "# [INFO] [stdout] 109 | | ), [INFO] [stdout] | |_________- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 105 ~ c.eval(r#" [INFO] [stdout] 106 + !!!! [INFO] [stdout] 107 ~ "#, /* &str */), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | / assert_eq!( [INFO] [stdout] 105 | | c.eval( [INFO] [stdout] 106 | | r#" [INFO] [stdout] 107 | | !!!! [INFO] [stdout] ... | [INFO] [stdout] 112 | | )) [INFO] [stdout] 113 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:120:11 [INFO] [stdout] | [INFO] [stdout] 120 | c.eval( [INFO] [stdout] | ___________^^^^- [INFO] [stdout] 121 | | r#" [INFO] [stdout] 122 | | function f() { [INFO] [stdout] 123 | | throw new Error("My Error"); [INFO] [stdout] ... | [INFO] [stdout] 126 | | "# [INFO] [stdout] 127 | | ), [INFO] [stdout] | |_________- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 120 ~ c.eval(r#" [INFO] [stdout] 121 + function f() { [INFO] [stdout] 122 + throw new Error("My Error"); [INFO] [stdout] 123 + } [INFO] [stdout] 124 + f(); [INFO] [stdout] 125 ~ "#, /* &str */), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / assert_eq!( [INFO] [stdout] 120 | | c.eval( [INFO] [stdout] 121 | | r#" [INFO] [stdout] 122 | | function f() { [INFO] [stdout] ... | [INFO] [stdout] 128 | | Err(ExecutionError::Exception("Error: My Error".into(),)) [INFO] [stdout] 129 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:137:10 [INFO] [stdout] | [INFO] [stdout] 137 | .eval( [INFO] [stdout] | __________^^^^- [INFO] [stdout] 138 | | r#" [INFO] [stdout] 139 | | new Promise((resolve, _) => { [INFO] [stdout] 140 | | resolve(33); [INFO] [stdout] 141 | | }) [INFO] [stdout] 142 | | "#, [INFO] [stdout] 143 | | ) [INFO] [stdout] | |_________- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 137 ~ .eval(r#" [INFO] [stdout] 138 + new Promise((resolve, _) => { [INFO] [stdout] 139 + resolve(33); [INFO] [stdout] 140 + }) [INFO] [stdout] 141 + "#, /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | assert_eq!(value, JsValue::Int(33)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | let res = c.eval( [INFO] [stdout] | _________________^^^^- [INFO] [stdout] 148 | | r#" [INFO] [stdout] 149 | | new Promise((_resolve, reject) => { [INFO] [stdout] 150 | | reject("Failed..."); [INFO] [stdout] 151 | | }) [INFO] [stdout] 152 | | "#, [INFO] [stdout] 153 | | ); [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 147 ~ let res = c.eval(r#" [INFO] [stdout] 148 + new Promise((_resolve, reject) => { [INFO] [stdout] 149 + reject("Failed..."); [INFO] [stdout] 150 + }) [INFO] [stdout] 151 ~ "#, /* &str */); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | / assert_eq!( [INFO] [stdout] 155 | | res, [INFO] [stdout] 156 | | Err(ExecutionError::Exception(JsValue::String( [INFO] [stdout] 157 | | "Failed...".into() [INFO] [stdout] 158 | | ))) [INFO] [stdout] 159 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:166:25 [INFO] [stdout] | [INFO] [stdout] 166 | let value = context.eval_as::("someGlobalVariable").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^---------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:304:12 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn eval_as(&self, code: &str, filename: &str) -> Result [INFO] [stdout] | ^^^^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 166 | let value = context.eval_as::("someGlobalVariable", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | / assert_eq!( [INFO] [stdout] 175 | | c.call_function("parseInt", vec!["22"]).unwrap(), [INFO] [stdout] 176 | | JsValue::Int(22), [INFO] [stdout] 177 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:179:7 [INFO] [stdout] | [INFO] [stdout] 179 | c.eval( [INFO] [stdout] | _______^^^^- [INFO] [stdout] 180 | | r#" [INFO] [stdout] 181 | | function add(a, b) { [INFO] [stdout] 182 | | return a + b; [INFO] [stdout] 183 | | } [INFO] [stdout] 184 | | "#, [INFO] [stdout] 185 | | ) [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 179 ~ c.eval(r#" [INFO] [stdout] 180 + function add(a, b) { [INFO] [stdout] 181 + return a + b; [INFO] [stdout] 182 + } [INFO] [stdout] 183 + "#, /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | / assert_eq!( [INFO] [stdout] 188 | | c.call_function("add", vec![5, 7]).unwrap(), [INFO] [stdout] 189 | | JsValue::Int(12), [INFO] [stdout] 190 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:192:7 [INFO] [stdout] | [INFO] [stdout] 192 | c.eval( [INFO] [stdout] | _______^^^^- [INFO] [stdout] 193 | | r#" [INFO] [stdout] 194 | | function sumArray(arr) { [INFO] [stdout] 195 | | let sum = 0; [INFO] [stdout] ... | [INFO] [stdout] 201 | | "#, [INFO] [stdout] 202 | | ) [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 192 ~ c.eval(r#" [INFO] [stdout] 193 + function sumArray(arr) { [INFO] [stdout] 194 + let sum = 0; [INFO] [stdout] 195 + for (const value of arr) { [INFO] [stdout] 196 + sum += value; [INFO] [stdout] 197 + } [INFO] [stdout] 198 + return sum; [INFO] [stdout] 199 + } [INFO] [stdout] 200 + "#, /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | / assert_eq!( [INFO] [stdout] 205 | | c.call_function("sumArray", vec![vec![1, 2, 3]]).unwrap(), [INFO] [stdout] 206 | | JsValue::Int(6), [INFO] [stdout] 207 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:209:7 [INFO] [stdout] | [INFO] [stdout] 209 | c.eval( [INFO] [stdout] | _______^^^^- [INFO] [stdout] 210 | | r#" [INFO] [stdout] 211 | | function addObject(obj) { [INFO] [stdout] 212 | | let sum = 0; [INFO] [stdout] ... | [INFO] [stdout] 218 | | "#, [INFO] [stdout] 219 | | ) [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 209 ~ c.eval(r#" [INFO] [stdout] 210 + function addObject(obj) { [INFO] [stdout] 211 + let sum = 0; [INFO] [stdout] 212 + for (const key of Object.keys(obj)) { [INFO] [stdout] 213 + sum += obj[key]; [INFO] [stdout] 214 + } [INFO] [stdout] 215 + return sum; [INFO] [stdout] 216 + } [INFO] [stdout] 217 + "#, /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `value::JsValue: From>` is not satisfied [INFO] [stdout] --> src/tests.rs:226:11 [INFO] [stdout] | [INFO] [stdout] 226 | c.call_function("addObject", vec![obj]).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `From>` is not implemented for `value::JsValue` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `From`: [INFO] [stdout] `value::JsValue` implements `From<&str>` [INFO] [stdout] `value::JsValue` implements `From>` [INFO] [stdout] `value::JsValue` implements `From` [INFO] [stdout] `value::JsValue` implements `From>` [INFO] [stdout] `value::JsValue` implements `From` [INFO] [stdout] `value::JsValue` implements `From` [INFO] [stdout] `value::JsValue` implements `From` [INFO] [stdout] `value::JsValue` implements `From` [INFO] [stdout] and 4 others [INFO] [stdout] = note: required for `HashMap` to implement `Into` [INFO] [stdout] note: required by a bound in `Context::call_function` [INFO] [stdout] --> src/lib.rs:359:45 [INFO] [stdout] | [INFO] [stdout] 356 | pub fn call_function( [INFO] [stdout] | ------------- required by a bound in this associated function [INFO] [stdout] ... [INFO] [stdout] 359 | args: impl IntoIterator>, [INFO] [stdout] | ^^^^^^^^^^^^^ required by this bound in `Context::call_function` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | / assert_eq!( [INFO] [stdout] 226 | | c.call_function("addObject", vec![obj]).unwrap(), [INFO] [stdout] 227 | | JsValue::Int(60), [INFO] [stdout] 228 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:234:7 [INFO] [stdout] | [INFO] [stdout] 234 | c.eval(" function strLen(s) { return s.length; } ").unwrap(); [INFO] [stdout] | ^^^^--------------------------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 234 | c.eval(" function strLen(s) { return s.length; } ", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:238:5 [INFO] [stdout] | [INFO] [stdout] 238 | assert_eq!(v, JsValue::Int(200_000)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:245:7 [INFO] [stdout] | [INFO] [stdout] 245 | c.eval( [INFO] [stdout] | _______^^^^- [INFO] [stdout] 246 | | r#" [INFO] [stdout] 247 | | function asyncOk() { [INFO] [stdout] 248 | | return new Promise((resolve, _) => { [INFO] [stdout] ... | [INFO] [stdout] 258 | | "#, [INFO] [stdout] 259 | | ) [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 245 ~ c.eval(r#" [INFO] [stdout] 246 + function asyncOk() { [INFO] [stdout] 247 + return new Promise((resolve, _) => { [INFO] [stdout] 248 + resolve(33); [INFO] [stdout] 249 + }); [INFO] [stdout] 250 + } [INFO] [stdout] 251 + [INFO] [stdout] 252 + function asyncErr() { [INFO] [stdout] 253 + return new Promise((_resolve, reject) => { [INFO] [stdout] 254 + reject("Failed..."); [INFO] [stdout] 255 + }); [INFO] [stdout] 256 + } [INFO] [stdout] 257 + "#, /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | assert_eq!(value, JsValue::Int(33)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:266:5 [INFO] [stdout] | [INFO] [stdout] 266 | / assert_eq!( [INFO] [stdout] 267 | | res, [INFO] [stdout] 268 | | Err(ExecutionError::Exception(JsValue::String( [INFO] [stdout] 269 | | "Failed...".into() [INFO] [stdout] 270 | | ))) [INFO] [stdout] 271 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:279:18 [INFO] [stdout] | [INFO] [stdout] 279 | assert_eq!(c.eval_as::("no_arguments()").unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------ argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:304:12 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn eval_as(&self, code: &str, filename: &str) -> Result [INFO] [stdout] | ^^^^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 279 | assert_eq!(c.eval_as::("no_arguments()", /* &str */).unwrap(), true); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:282:18 [INFO] [stdout] | [INFO] [stdout] 282 | assert_eq!(c.eval("cb1(true)").unwrap(), JsValue::Bool(false),); [INFO] [stdout] | ^^^^------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 282 | assert_eq!(c.eval("cb1(true)", /* &str */).unwrap(), JsValue::Bool(false),); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 282 | assert_eq!(c.eval("cb1(true)").unwrap(), JsValue::Bool(false),); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:287:11 [INFO] [stdout] | [INFO] [stdout] 287 | c.eval(r#"concat2("abc", "def")"#).unwrap(), [INFO] [stdout] | ^^^^---------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 287 | c.eval(r#"concat2("abc", "def")"#, /* &str */).unwrap(), [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:286:5 [INFO] [stdout] | [INFO] [stdout] 286 | / assert_eq!( [INFO] [stdout] 287 | | c.eval(r#"concat2("abc", "def")"#).unwrap(), [INFO] [stdout] 288 | | JsValue::String("abcdef".into()), [INFO] [stdout] 289 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:293:18 [INFO] [stdout] | [INFO] [stdout] 293 | assert_eq!(c.eval("add2(5, 11)").unwrap(), JsValue::Int(16),); [INFO] [stdout] | ^^^^--------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 293 | assert_eq!(c.eval("add2(5, 11)", /* &str */).unwrap(), JsValue::Int(16),); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | assert_eq!(c.eval("add2(5, 11)").unwrap(), JsValue::Int(16),); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:297:18 [INFO] [stdout] | [INFO] [stdout] 297 | assert_eq!(c.eval("sum([1, 2, 3, 4, 5, 6])").unwrap(), JsValue::Int(21),); [INFO] [stdout] | ^^^^--------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 297 | assert_eq!(c.eval("sum([1, 2, 3, 4, 5, 6])", /* &str */).unwrap(), JsValue::Int(21),); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:297:5 [INFO] [stdout] | [INFO] [stdout] 297 | assert_eq!(c.eval("sum([1, 2, 3, 4, 5, 6])").unwrap(), JsValue::Int(21),); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:303:22 [INFO] [stdout] | [INFO] [stdout] 303 | assert_eq!(c.eval("identity(22)").unwrap(), v); [INFO] [stdout] | ^^^^---------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 303 | assert_eq!(c.eval("identity(22)", /* &str */).unwrap(), v); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | assert_eq!(c.eval("identity(22)").unwrap(), v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:325:31 [INFO] [stdout] | [INFO] [stdout] 325 | let v = c.eval(&code).unwrap(); [INFO] [stdout] | ^^^^------- argument #2 of type `&str` is missing [INFO] [stdout] ... [INFO] [stdout] 352 | / callback_argn_tests![ [INFO] [stdout] 353 | | 1: (a : 1), [INFO] [stdout] 354 | | ] [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] = note: this error originates in the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 325 | let v = c.eval(&code, /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:352:5 [INFO] [stdout] | [INFO] [stdout] 352 | / callback_argn_tests![ [INFO] [stdout] 353 | | 1: (a : 1), [INFO] [stdout] 354 | | ] [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` which comes from the expansion of the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:335:31 [INFO] [stdout] | [INFO] [stdout] 335 | let v = c.eval(&code).unwrap(); [INFO] [stdout] | ^^^^------- argument #2 of type `&str` is missing [INFO] [stdout] ... [INFO] [stdout] 352 | / callback_argn_tests![ [INFO] [stdout] 353 | | 1: (a : 1), [INFO] [stdout] 354 | | ] [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] = note: this error originates in the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 335 | let v = c.eval(&code, /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:352:5 [INFO] [stdout] | [INFO] [stdout] 352 | / callback_argn_tests![ [INFO] [stdout] 353 | | 1: (a : 1), [INFO] [stdout] 354 | | ] [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` which comes from the expansion of the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:345:33 [INFO] [stdout] | [INFO] [stdout] 345 | let res = c.eval(&code); [INFO] [stdout] | ^^^^------- argument #2 of type `&str` is missing [INFO] [stdout] ... [INFO] [stdout] 352 | / callback_argn_tests![ [INFO] [stdout] 353 | | 1: (a : 1), [INFO] [stdout] 354 | | ] [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] = note: this error originates in the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 345 | let res = c.eval(&code, /* &str */); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:352:5 [INFO] [stdout] | [INFO] [stdout] 352 | / callback_argn_tests![ [INFO] [stdout] 353 | | 1: (a : 1), [INFO] [stdout] 354 | | ] [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` which comes from the expansion of the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Vec` [INFO] [stdout] --> src/tests.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | / assert_eq!( [INFO] [stdout] 365 | | args, [INFO] [stdout] 366 | | vec![ [INFO] [stdout] 367 | | JsValue::String("hello".into()), [INFO] [stdout] ... | [INFO] [stdout] 371 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_________| [INFO] [stdout] | |_________Vec [INFO] [stdout] | Vec [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:375:11 [INFO] [stdout] | [INFO] [stdout] 375 | c.eval_as::("cb('hello', true, 100) === undefined") [INFO] [stdout] | ^^^^^^^^^^^^^^^---------------------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:304:12 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn eval_as(&self, code: &str, filename: &str) -> Result [INFO] [stdout] | ^^^^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 375 | c.eval_as::("cb('hello', true, 100) === undefined", /* &str */) [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Vec` [INFO] [stdout] --> src/tests.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | / assert_eq!( [INFO] [stdout] 384 | | args, [INFO] [stdout] 385 | | vec![JsValue::from(1), JsValue::from(10), JsValue::from(100),] [INFO] [stdout] 386 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_________| [INFO] [stdout] | |_________Vec [INFO] [stdout] | Vec [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:390:7 [INFO] [stdout] | [INFO] [stdout] 390 | c.eval( [INFO] [stdout] | _______^^^^- [INFO] [stdout] 391 | | r#" [INFO] [stdout] 392 | | var x = cb2(1, 10, 100); [INFO] [stdout] 393 | | if (x !== 111) { [INFO] [stdout] ... | [INFO] [stdout] 396 | | "#, [INFO] [stdout] 397 | | ) [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 390 ~ c.eval(r#" [INFO] [stdout] 391 + var x = cb2(1, 10, 100); [INFO] [stdout] 392 + if (x !== 111) { [INFO] [stdout] 393 + throw new Error('Expected 111, got ' + x); [INFO] [stdout] 394 + } [INFO] [stdout] 395 + "#, /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:408:11 [INFO] [stdout] | [INFO] [stdout] 408 | c.eval(" cb(5) "), [INFO] [stdout] | ^^^^----------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 408 | c.eval(" cb(5) ", /* &str */), [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:407:5 [INFO] [stdout] | [INFO] [stdout] 407 | / assert_eq!( [INFO] [stdout] 408 | | c.eval(" cb(5) "), [INFO] [stdout] 409 | | Err(ExecutionError::Exception( [INFO] [stdout] 410 | | "Invalid argument count: Expected 2, got 1".into() [INFO] [stdout] 411 | | )), [INFO] [stdout] 412 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:419:11 [INFO] [stdout] | [INFO] [stdout] 419 | c.eval(" 'abc'.repeat(200_000) "), [INFO] [stdout] | ^^^^---------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 419 | c.eval(" 'abc'.repeat(200_000) ", /* &str */), [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result` [INFO] [stdout] --> src/tests.rs:418:5 [INFO] [stdout] | [INFO] [stdout] 418 | / assert_eq!( [INFO] [stdout] 419 | | c.eval(" 'abc'.repeat(200_000) "), [INFO] [stdout] 420 | | Err(ExecutionError::OutOfMemory), [INFO] [stdout] 421 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Result [INFO] [stdout] | Result [INFO] [stdout] | [INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ExecutionError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] | [INFO] [stdout] ::: src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/lib.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 + #[derive(PartialEq)] [INFO] [stdout] 65 | pub enum ExecutionError { [INFO] [stdout] | [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:427:7 [INFO] [stdout] | [INFO] [stdout] 427 | c.eval(" var x = 123; ").unwrap(); [INFO] [stdout] | ^^^^------------------ argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 427 | c.eval(" var x = 123; ", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:434:12 [INFO] [stdout] | [INFO] [stdout] 434 | c2.eval_as::(" 'abc'.repeat(2) ").unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:304:12 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn eval_as(&self, code: &str, filename: &str) -> Result [INFO] [stdout] | ^^^^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 434 | c2.eval_as::(" 'abc'.repeat(2) ", /* &str */).unwrap(), [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:439:22 [INFO] [stdout] | [INFO] [stdout] 439 | let err_msg = c2.eval(" x ").unwrap_err().to_string(); [INFO] [stdout] | ^^^^------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 439 | let err_msg = c2.eval(" x ", /* &str */).unwrap_err().to_string(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:443:22 [INFO] [stdout] | [INFO] [stdout] 443 | let err_msg = c2.eval(" myCallback() ").unwrap_err().to_string(); [INFO] [stdout] | ^^^^------------------ argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 443 | let err_msg = c2.eval(" myCallback() ", /* &str */).unwrap_err().to_string(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:454:9 [INFO] [stdout] | [INFO] [stdout] 454 | ctx.eval(&code).unwrap(); [INFO] [stdout] | ^^^^------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 454 | ctx.eval(&code, /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:463:5 [INFO] [stdout] | [INFO] [stdout] 463 | assert_eq!(v, "testtest".into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | _ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq<_>` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq<_>` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:465:15 [INFO] [stdout] | [INFO] [stdout] 465 | let v = c.eval(" f('la') ").unwrap(); [INFO] [stdout] | ^^^^------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 465 | let v = c.eval(" f('la') ", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:466:5 [INFO] [stdout] | [INFO] [stdout] 466 | assert_eq!(v, "lala".into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | _ [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq<_>` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq<_>` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:474:7 [INFO] [stdout] | [INFO] [stdout] 474 | c.eval( [INFO] [stdout] | _______^^^^- [INFO] [stdout] 475 | | " [INFO] [stdout] 476 | | function dateToTimestamp(date) { [INFO] [stdout] 477 | | return date.getTime(); [INFO] [stdout] 478 | | } [INFO] [stdout] 479 | | ", [INFO] [stdout] 480 | | ) [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 474 ~ c.eval(" [INFO] [stdout] 475 + function dateToTimestamp(date) { [INFO] [stdout] 476 + return date.getTime(); [INFO] [stdout] 477 + } [INFO] [stdout] 478 + ", /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:490:5 [INFO] [stdout] | [INFO] [stdout] 490 | assert_eq!(timestamp, JsValue::Float(now_millis as f64)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:500:19 [INFO] [stdout] | [INFO] [stdout] 500 | let value = c.eval(" new Date(1234567555) ").unwrap(); [INFO] [stdout] | ^^^^-------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 500 | let value = c.eval(" new Date(1234567555) ", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead [INFO] [stdout] --> src/tests.rs:501:32 [INFO] [stdout] | [INFO] [stdout] 501 | let datetime = chrono::Utc.timestamp_millis(1234567555); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue` [INFO] [stdout] --> src/tests.rs:503:5 [INFO] [stdout] | [INFO] [stdout] 503 | assert_eq!(value, JsValue::Date(datetime)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | value::JsValue [INFO] [stdout] | value::JsValue [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:511:7 [INFO] [stdout] | [INFO] [stdout] 511 | c.eval(" function identity(x) { return x; } ").unwrap(); [INFO] [stdout] | ^^^^---------------------------------------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 511 | c.eval(" function identity(x) { return x; } ", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:600:7 [INFO] [stdout] | [INFO] [stdout] 600 | c.eval( [INFO] [stdout] | _______^^^^- [INFO] [stdout] 601 | | r#" [INFO] [stdout] 602 | | console.log("hi"); [INFO] [stdout] 603 | | console.error(false); [INFO] [stdout] 604 | | "#, [INFO] [stdout] 605 | | ) [INFO] [stdout] | |_____- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 600 ~ c.eval(r#" [INFO] [stdout] 601 + console.log("hi"); [INFO] [stdout] 602 + console.error(false); [INFO] [stdout] 603 + "#, /* &str */) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Vec<(Level, Vec)>` [INFO] [stdout] --> src/tests.rs:610:5 [INFO] [stdout] | [INFO] [stdout] 610 | / assert_eq!( [INFO] [stdout] 611 | | *m, [INFO] [stdout] 612 | | vec![ [INFO] [stdout] 613 | | (Level::Log, vec![JsValue::from("hi")]), [INFO] [stdout] ... | [INFO] [stdout] 616 | | ); [INFO] [stdout] | | ^ [INFO] [stdout] | |_____| [INFO] [stdout] | |_____Vec<(Level, Vec)> [INFO] [stdout] | Vec<(Level, Vec)> [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum JsValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/value/mod.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 + #[derive(PartialEq)] [INFO] [stdout] 97 | pub enum JsValue { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/tests.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | ctx.eval("a + 1").unwrap(); [INFO] [stdout] | ^^^^--------- argument #2 of type `&str` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn eval(&self, code: &str, filename: &str) -> Result { [INFO] [stdout] | ^^^^ -------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 623 | ctx.eval("a + 1", /* &str */).unwrap(); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Context` [INFO] [stdout] --> src/bindings/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use anyhow::Context; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/convert.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/convert.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/bindings/convert.rs:275:33 [INFO] [stdout] | [INFO] [stdout] 275 | extern fn finalizer(rt: *mut JSRuntime, val: JSValue) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/bindings/convert.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | t => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/value.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | let inner = unsafe { q::JS_VALUE_GET_TAG(*value) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bindings/mod.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | let mut opaque = opaque as *mut HostPromiseRejectionTrackerWrapper; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | let t = unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:435:9 [INFO] [stdout] | [INFO] [stdout] 435 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/bindings/mod.rs:585:13 [INFO] [stdout] | [INFO] [stdout] 585 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/value/mod.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 64 | unsafe { [INFO] [stdout] | ------ because it's nested under this `unsafe` block [INFO] [stdout] 65 | let v = unsafe { Box::from_raw(self.js_value) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/loader.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/loader.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut loader = &mut *(opaque as *mut _ as *mut Box); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0369, E0412. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `deft-quick-js` (lib test) due to 76 previous errors; 23 warnings emitted [INFO] running `Command { std: "docker" "inspect" "531a1d83d5962267ff8e527b5c377ba17dd55cc4fbaf31be26f9f8e5d9e6ef19", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "531a1d83d5962267ff8e527b5c377ba17dd55cc4fbaf31be26f9f8e5d9e6ef19", kill_on_drop: false }` [INFO] [stdout] 531a1d83d5962267ff8e527b5c377ba17dd55cc4fbaf31be26f9f8e5d9e6ef19