[INFO] cloning repository https://github.com/emorilebo/cherith_intepreter [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/emorilebo/cherith_intepreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Femorilebo%2Fcherith_intepreter", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Femorilebo%2Fcherith_intepreter'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c4f1699153bae01185439af06b02962a8bc937fc [INFO] checking emorilebo/cherith_intepreter against master#8c32e313cccf7df531e2d49ffb8227bb92304aee for pr-145608-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Femorilebo%2Fcherith_intepreter" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/emorilebo/cherith_intepreter [INFO] finished tweaking git repo https://github.com/emorilebo/cherith_intepreter [INFO] tweaked toml for git repo https://github.com/emorilebo/cherith_intepreter written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/emorilebo/cherith_intepreter on toolchain 8c32e313cccf7df531e2d49ffb8227bb92304aee [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8c32e313cccf7df531e2d49ffb8227bb92304aee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/emorilebo/cherith_intepreter 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" "+8c32e313cccf7df531e2d49ffb8227bb92304aee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded actix-server v2.5.1 [INFO] [stderr] Downloaded clap v4.5.37 [INFO] [stderr] Downloaded v_htmlescape v0.15.8 [INFO] [stderr] Downloaded actix-cors v0.6.5 [INFO] [stderr] Downloaded derive_more v0.99.19 [INFO] [stderr] Downloaded cc v1.2.19 [INFO] [stderr] Downloaded pretty_assertions v1.4.1 [INFO] [stderr] Downloaded actix-files v0.6.6 [INFO] [stderr] Downloaded actix-http v3.10.0 [INFO] [stderr] Downloaded brotli-decompressor v4.0.3 [INFO] [stderr] Downloaded clap_builder v4.5.37 [INFO] [stderr] Downloaded actix-web v4.10.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+8c32e313cccf7df531e2d49ffb8227bb92304aee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] faa22db7ba783eff0ebfce569822fc8748c6fc22fdbdd1d5cf9cf899a6bca327 [INFO] running `Command { std: "docker" "start" "-a" "faa22db7ba783eff0ebfce569822fc8748c6fc22fdbdd1d5cf9cf899a6bca327", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "faa22db7ba783eff0ebfce569822fc8748c6fc22fdbdd1d5cf9cf899a6bca327", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "faa22db7ba783eff0ebfce569822fc8748c6fc22fdbdd1d5cf9cf899a6bca327", kill_on_drop: false }` [INFO] [stdout] faa22db7ba783eff0ebfce569822fc8748c6fc22fdbdd1d5cf9cf899a6bca327 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+8c32e313cccf7df531e2d49ffb8227bb92304aee" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 074e28866519d03278aff5e4dee9868c6e3753298aca99a67dfcdb4c8262efb9 [INFO] running `Command { std: "docker" "start" "-a" "074e28866519d03278aff5e4dee9868c6e3753298aca99a67dfcdb4c8262efb9", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Compiling icu_locid_transform_data v1.5.1 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Compiling icu_properties_data v1.5.1 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling icu_normalizer_data v1.5.1 [INFO] [stderr] Compiling zerocopy v0.8.24 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling tracing-core v0.1.33 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking miniz_oxide v0.8.8 [INFO] [stderr] Checking brotli-decompressor v4.0.3 [INFO] [stderr] Compiling cc v1.2.19 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking actix-utils v3.0.1 [INFO] [stderr] Checking actix-service v2.0.3 [INFO] [stderr] Checking bytestring v1.4.0 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Checking flate2 v1.1.1 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Checking tokio v1.44.2 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling v_htmlescape v0.15.8 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking impl-more v0.1.9 [INFO] [stderr] Checking http-range v0.1.5 [INFO] [stderr] Checking humantime v2.2.0 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking anstyle v1.0.10 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking clap_lex v0.7.4 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking env_logger v0.10.2 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking clap_builder v4.5.37 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking brotli v7.0.0 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Checking pretty_assertions v1.4.1 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Compiling zstd-sys v2.0.15+zstd.1.5.7 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking cookie v0.16.2 [INFO] [stderr] Checking clap v4.5.37 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking tokio-util v0.7.14 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling derive_more v0.99.19 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking actix-server v2.5.1 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking actix-http v3.10.0 [INFO] [stderr] Checking actix-web v4.10.2 [INFO] [stderr] Checking actix-files v0.6.6 [INFO] [stderr] Checking actix-cors v0.6.5 [INFO] [stderr] Checking cherith_interpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0255]: the name `Hash` is defined multiple times [INFO] [stdout] --> src/object/mod.rs:327:1 [INFO] [stdout] | [INFO] [stdout] 3 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ---- previous import of the trait `Hash` here [INFO] [stdout] ... [INFO] [stdout] 327 | pub struct Hash { [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Hash` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `Hash` must be defined only once in the type namespace of this module [INFO] [stdout] help: you can use `as` to change the binding name of the import [INFO] [stdout] | [INFO] [stdout] 3 | use std::hash::{Hash as OtherHash, Hasher}; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0255]: the name `Hash` is defined multiple times [INFO] [stdout] --> src/object/mod.rs:327:1 [INFO] [stdout] | [INFO] [stdout] 3 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ---- previous import of the trait `Hash` here [INFO] [stdout] ... [INFO] [stdout] 327 | pub struct Hash { [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Hash` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `Hash` must be defined only once in the type namespace of this module [INFO] [stdout] help: you can use `as` to change the binding name of the import [INFO] [stdout] | [INFO] [stdout] 3 | use std::hash::{Hash as OtherHash, Hasher}; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `futures::future::timeout` [INFO] [stdout] --> src/web/mod.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | use futures::future::{self, timeout}; [INFO] [stdout] | ^^^^^^^ no `timeout` in `future` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0574]: expected struct, variant or union type, found trait `Hash` [INFO] [stdout] --> src/object/mod.rs:326:17 [INFO] [stdout] | [INFO] [stdout] 326 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ not a struct, variant or union type [INFO] [stdout] | [INFO] [stdout] help: consider importing this variant instead [INFO] [stdout] | [INFO] [stdout] 1 + use crate::object::ObjectType::Hash; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HashMap` [INFO] [stdout] --> src/evaluator/mod.rs:517:25 [INFO] [stdout] | [INFO] [stdout] 517 | let mut pairs = HashMap::new(); [INFO] [stdout] | ^^^^^^^ use of undeclared type `HashMap` [INFO] [stdout] | [INFO] [stdout] = note: struct `crate::object::builtins::HashMap` exists but is inaccessible [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 1 + use std::collections::HashMap; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HttpServer` [INFO] [stdout] --> src/web/mod.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | HttpServer::new(move || { [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `HttpServer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 1 + use actix_web::HttpServer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0603]: trait import `Hash` is private [INFO] [stdout] --> src/evaluator/mod.rs:14:60 [INFO] [stdout] | [INFO] [stdout] 14 | Array, Boolean, Builtin, Environment, Error, Function, Hash, HashKey, HashPair, Integer, Null, [INFO] [stdout] | ^^^^ private trait import [INFO] [stdout] | [INFO] [stdout] note: the trait import `Hash` is defined here... [INFO] [stdout] --> src/object/mod.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ^^^^ [INFO] [stdout] note: ...and refers to the trait `Hash` which is defined here [INFO] [stdout] --> /rustc/8c32e313cccf7df531e2d49ffb8227bb92304aee/library/std/src/hash/mod.rs:88:9 [INFO] [stdout] | [INFO] [stdout] = note: you could import this directly [INFO] [stdout] help: import `Hash` through the re-export [INFO] [stdout] | [INFO] [stdout] 14 | Array, Boolean, Builtin, Environment, Error, Function, hash::Hash, HashKey, HashPair, Integer, Null, [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Node` [INFO] [stdout] --> src/parser/mod.rs:10:35 [INFO] [stdout] | [INFO] [stdout] 10 | IntegerLiteral, LetStatement, Node, PrefixExpression, Program, ReturnStatement, Statement, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashKey` [INFO] [stdout] --> src/evaluator/mod.rs:14:66 [INFO] [stdout] | [INFO] [stdout] 14 | Array, Boolean, Builtin, Environment, Error, Function, Hash, HashKey, HashPair, Integer, Null, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error as IoError` [INFO] [stdout] --> src/repl/mod.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{BufRead, Error as IoError, Result as IoResult, Write}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HttpRequest` and `http` [INFO] [stdout] --> src/web/mod.rs:9:63 [INFO] [stdout] | [INFO] [stdout] 9 | error, middleware, web, App, Error, HttpResponse, Result, HttpRequest, http, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/web/mod.rs:11:23 [INFO] [stdout] | [INFO] [stdout] 11 | use futures::future::{self, timeout}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:326:10 [INFO] [stdout] | [INFO] [stdout] 326 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `futures::future::timeout` [INFO] [stdout] --> src/web/mod.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | use futures::future::{self, timeout}; [INFO] [stdout] | ^^^^^^^ no `timeout` in `future` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:326:17 [INFO] [stdout] | [INFO] [stdout] 326 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:331:23 [INFO] [stdout] | [INFO] [stdout] 331 | impl fmt::Display for Hash { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object [INFO] [stdout] | [INFO] [stdout] 331 | impl fmt::Display for dyn Hash { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:342:17 [INFO] [stdout] | [INFO] [stdout] 342 | impl Object for Hash { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object [INFO] [stdout] | [INFO] [stdout] 342 | impl Object for dyn Hash { [INFO] [stdout] | +++ [INFO] [stdout] help: alternatively use a blanket implementation to implement `Object` for all types that also implement `Hash` [INFO] [stdout] | [INFO] [stdout] 342 - impl Object for Hash { [INFO] [stdout] 342 + impl Object for T { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `std::rc::Rc<(dyn object::Object + 'static)>` cannot be shared between threads safely [INFO] [stdout] --> src/object/mod.rs:353:5 [INFO] [stdout] | [INFO] [stdout] 353 | / lazy_static! { [INFO] [stdout] 354 | | /// Map of built-in function names to built-in function objects [INFO] [stdout] 355 | | pub static ref BUILTINS: HashMap<&'static str, Rc> = { [INFO] [stdout] 356 | | let mut builtins = HashMap::new(); [INFO] [stdout] ... | [INFO] [stdout] 516 | | }; [INFO] [stdout] 517 | | } [INFO] [stdout] | |_____^ `std::rc::Rc<(dyn object::Object + 'static)>` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: within `(&'static str, std::rc::Rc<(dyn object::Object + 'static)>)`, the trait `Sync` is not implemented for `std::rc::Rc<(dyn object::Object + 'static)>` [INFO] [stdout] = note: required because it appears within the type `(&'static str, std::rc::Rc<(dyn object::Object + 'static)>)` [INFO] [stdout] = note: required for `hashbrown::raw::RawTable<(&'static str, std::rc::Rc<(dyn object::Object + 'static)>)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `HashMap<&str, Rc, RandomState>` [INFO] [stdout] --> /rust/deps/hashbrown-0.15.5/src/map.rs:185:12 [INFO] [stdout] note: required because it appears within the type `std::collections::HashMap<&'static str, std::rc::Rc<(dyn object::Object + 'static)>>` [INFO] [stdout] --> /rustc/8c32e313cccf7df531e2d49ffb8227bb92304aee/library/std/src/collections/hash/map.rs:246:12 [INFO] [stdout] note: required by a bound in `lazy_static::lazy::Lazy` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lazy_static-1.5.0/src/inline_lazy.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Lazy(Cell>, Once); [INFO] [stdout] | ^^^^ required by this bound in `Lazy` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-d49382bb0507fd69.long-type-6955332820591910367.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] = note: this error originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Statement + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 21 | #[derive(Debug, Default)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 22 | pub struct Program { [INFO] [stdout] 23 | pub statements: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Statement + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 69 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 73 | pub value: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 99 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 102 | pub return_value: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 128 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 131 | pub expression: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Statement + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 154 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 157 | pub statements: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Statement + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:230:5 [INFO] [stdout] | [INFO] [stdout] 226 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 230 | pub right: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:253:5 [INFO] [stdout] | [INFO] [stdout] 250 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 253 | pub left: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:307:5 [INFO] [stdout] | [INFO] [stdout] 304 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 307 | pub condition: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:364:5 [INFO] [stdout] | [INFO] [stdout] 361 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 364 | pub function: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:390:5 [INFO] [stdout] | [INFO] [stdout] 387 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 390 | pub elements: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Lexer` [INFO] [stdout] --> src/lexer/tests.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | let mut lexer = Lexer::new(input); [INFO] [stdout] | ^^^^^ use of undeclared type `Lexer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Lexer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/parser/tests.rs:16:26 [INFO] [stdout] | [INFO] [stdout] 16 | let mut parser = Parser::new(lexer); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `LetStatement` in this scope [INFO] [stdout] --> src/parser/tests.rs:44:50 [INFO] [stdout] | [INFO] [stdout] 44 | let let_stmt = match stmt.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Statement: Node { [INFO] [stdout] | ------------------------- similarly named trait `Statement` defined here [INFO] [stdout] | [INFO] [stdout] help: a trait with a similar name exists [INFO] [stdout] | [INFO] [stdout] 44 - let let_stmt = match stmt.downcast_ref::() { [INFO] [stdout] 44 + let let_stmt = match stmt.downcast_ref::() { [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::LetStatement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/parser/tests.rs:73:26 [INFO] [stdout] | [INFO] [stdout] 73 | let mut parser = Parser::new(lexer); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `ReturnStatement` in this scope [INFO] [stdout] --> src/parser/tests.rs:86:57 [INFO] [stdout] | [INFO] [stdout] 86 | let return_stmt = match stmt.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::ReturnStatement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/parser/tests.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | let mut parser = Parser::new(lexer); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `ExpressionStatement` in this scope [INFO] [stdout] --> src/parser/tests.rs:116:63 [INFO] [stdout] | [INFO] [stdout] 116 | let stmt = match program.statements[0].downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::ExpressionStatement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Identifier` in this scope [INFO] [stdout] --> src/parser/tests.rs:124:76 [INFO] [stdout] | [INFO] [stdout] 124 | let ident = match stmt.expression.as_ref().unwrap().downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::Identifier; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/parser/tests.rs:152:26 [INFO] [stdout] | [INFO] [stdout] 152 | let mut parser = Parser::new(lexer); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:415:5 [INFO] [stdout] | [INFO] [stdout] 412 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 415 | pub left: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `ExpressionStatement` in this scope [INFO] [stdout] --> src/parser/tests.rs:163:63 [INFO] [stdout] | [INFO] [stdout] 163 | let stmt = match program.statements[0].downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::ExpressionStatement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `IntegerLiteral` in this scope [INFO] [stdout] --> src/parser/tests.rs:171:78 [INFO] [stdout] | [INFO] [stdout] 171 | let literal = match stmt.expression.as_ref().unwrap().downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::IntegerLiteral; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/parser/tests.rs:217:30 [INFO] [stdout] | [INFO] [stdout] 217 | let mut parser = Parser::new(lexer); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `ExpressionStatement` in this scope [INFO] [stdout] --> src/parser/tests.rs:229:67 [INFO] [stdout] | [INFO] [stdout] 229 | let stmt = match program.statements[0].downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::ExpressionStatement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `PrefixExpression` in this scope [INFO] [stdout] --> src/parser/tests.rs:237:78 [INFO] [stdout] | [INFO] [stdout] 237 | let exp = match stmt.expression.as_ref().unwrap().downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::PrefixExpression; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/parser/tests.rs:317:30 [INFO] [stdout] | [INFO] [stdout] 317 | let mut parser = Parser::new(lexer); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `ExpressionStatement` in this scope [INFO] [stdout] --> src/parser/tests.rs:329:67 [INFO] [stdout] | [INFO] [stdout] 329 | let stmt = match program.statements[0].downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::ExpressionStatement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `InfixExpression` in this scope [INFO] [stdout] --> src/parser/tests.rs:352:47 [INFO] [stdout] | [INFO] [stdout] 352 | let op_exp = match exp.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait Expression: Node { [INFO] [stdout] | -------------------------- similarly named trait `Expression` defined here [INFO] [stdout] | [INFO] [stdout] help: a trait with a similar name exists [INFO] [stdout] | [INFO] [stdout] 352 - let op_exp = match exp.downcast_ref::() { [INFO] [stdout] 352 + let op_exp = match exp.downcast_ref::() { [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::InfixExpression; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `IntegerLiteral` in this scope [INFO] [stdout] --> src/parser/tests.rs:369:45 [INFO] [stdout] | [INFO] [stdout] 369 | let integ = match il.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser::IntegerLiteral; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Parser` in this scope [INFO] [stdout] --> src/parser/tests.rs:389:37 [INFO] [stdout] | [INFO] [stdout] 389 | fn check_parser_errors(parser: &Parser) { [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0574]: expected struct, variant or union type, found trait `Hash` [INFO] [stdout] --> src/object/mod.rs:326:17 [INFO] [stdout] | [INFO] [stdout] 326 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ not a struct, variant or union type [INFO] [stdout] | [INFO] [stdout] help: consider importing this variant instead [INFO] [stdout] | [INFO] [stdout] 1 + use crate::object::ObjectType::Hash; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Function` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:193:53 [INFO] [stdout] | [INFO] [stdout] 193 | let fn_obj = match evaluated.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Function; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Array` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:292:52 [INFO] [stdout] | [INFO] [stdout] 292 | let array = match evaluated.downcast_ref::() { [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Array; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Rc` [INFO] [stdout] --> src/evaluator/tests.rs:304:29 [INFO] [stdout] | [INFO] [stdout] 304 | test_integer_object(Rc::clone(&array.elements[0]), 1); [INFO] [stdout] | ^^ use of undeclared type `Rc` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Rc` [INFO] [stdout] --> src/evaluator/tests.rs:305:29 [INFO] [stdout] | [INFO] [stdout] 305 | test_integer_object(Rc::clone(&array.elements[1]), 4); [INFO] [stdout] | ^^ use of undeclared type `Rc` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Rc` [INFO] [stdout] --> src/evaluator/tests.rs:306:29 [INFO] [stdout] | [INFO] [stdout] 306 | test_integer_object(Rc::clone(&array.elements[2]), 6); [INFO] [stdout] | ^^ use of undeclared type `Rc` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0573]: expected type, found derive macro `Hash` [INFO] [stdout] --> src/evaluator/tests.rs:352:51 [INFO] [stdout] | [INFO] [stdout] 352 | let hash = match evaluated.downcast_ref::() { [INFO] [stdout] | ^^^^ not a type [INFO] [stdout] | [INFO] [stdout] = note: trait `crate::object::builtins::Hash` exists but is inaccessible [INFO] [stdout] help: consider importing this trait instead [INFO] [stdout] | [INFO] [stdout] 3 + use std::hash::Hash; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:439:5 [INFO] [stdout] | [INFO] [stdout] 436 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 439 | pub pairs: Vec<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `HashKey` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:359:17 [INFO] [stdout] | [INFO] [stdout] 359 | HashKey { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::HashKey; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ObjectType` [INFO] [stdout] --> src/evaluator/tests.rs:360:34 [INFO] [stdout] | [INFO] [stdout] 360 | object_type: ObjectType::String, [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::ObjectType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `HashKey` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:371:17 [INFO] [stdout] | [INFO] [stdout] 371 | HashKey { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::HashKey; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ObjectType` [INFO] [stdout] --> src/evaluator/tests.rs:372:34 [INFO] [stdout] | [INFO] [stdout] 372 | object_type: ObjectType::String, [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::ObjectType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `HashKey` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:383:17 [INFO] [stdout] | [INFO] [stdout] 383 | HashKey { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::HashKey; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ObjectType` [INFO] [stdout] --> src/evaluator/tests.rs:384:34 [INFO] [stdout] | [INFO] [stdout] 384 | object_type: ObjectType::String, [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::ObjectType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `HashKey` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:395:17 [INFO] [stdout] | [INFO] [stdout] 395 | HashKey { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::HashKey; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ObjectType` [INFO] [stdout] --> src/evaluator/tests.rs:396:34 [INFO] [stdout] | [INFO] [stdout] 396 | object_type: ObjectType::Integer, [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::ObjectType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `HashKey` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:402:17 [INFO] [stdout] | [INFO] [stdout] 402 | HashKey { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::HashKey; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ObjectType` [INFO] [stdout] --> src/evaluator/tests.rs:403:34 [INFO] [stdout] | [INFO] [stdout] 403 | object_type: ObjectType::Boolean, [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::ObjectType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `HashKey` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:409:17 [INFO] [stdout] | [INFO] [stdout] 409 | HashKey { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::HashKey; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ObjectType` [INFO] [stdout] --> src/evaluator/tests.rs:410:34 [INFO] [stdout] | [INFO] [stdout] 410 | object_type: ObjectType::Boolean, [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::ObjectType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Rc` [INFO] [stdout] --> src/evaluator/tests.rs:426:51 [INFO] [stdout] | [INFO] [stdout] 426 | Some(pair) => test_integer_object(Rc::clone(&pair.value), expected_value), [INFO] [stdout] | ^^ use of undeclared type `Rc` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Rc` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:453:34 [INFO] [stdout] | [INFO] [stdout] 453 | fn test_eval(input: &str) -> Rc { [INFO] [stdout] | ^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Evaluator` [INFO] [stdout] --> src/evaluator/tests.rs:457:25 [INFO] [stdout] | [INFO] [stdout] 457 | let evaluator = Evaluator::new(); [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `Evaluator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::Evaluator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Rc` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:462:33 [INFO] [stdout] | [INFO] [stdout] 462 | fn test_integer_object(obj: Rc, expected: i64) { [INFO] [stdout] | ^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Rc` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:475:33 [INFO] [stdout] | [INFO] [stdout] 475 | fn test_boolean_object(obj: Rc, expected: bool) { [INFO] [stdout] | ^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Rc` in this scope [INFO] [stdout] --> src/evaluator/tests.rs:488:30 [INFO] [stdout] | [INFO] [stdout] 488 | fn test_null_object(obj: Rc) { [INFO] [stdout] | ^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::Rc; [INFO] [stdout] | [INFO] [stdout] 3 + use std::rc::Rc; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ObjectType` [INFO] [stdout] --> src/evaluator/tests.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | ObjectType::Null, [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 3 + use crate::evaluator::ObjectType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HashMap` [INFO] [stdout] --> src/evaluator/mod.rs:517:25 [INFO] [stdout] | [INFO] [stdout] 517 | let mut pairs = HashMap::new(); [INFO] [stdout] | ^^^^^^^ use of undeclared type `HashMap` [INFO] [stdout] | [INFO] [stdout] = note: struct `crate::object::builtins::HashMap` exists but is inaccessible [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 1 + use std::collections::HashMap; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HttpServer` [INFO] [stdout] --> src/web/mod.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | HttpServer::new(move || { [INFO] [stdout] | ^^^^^^^^^^ use of undeclared type `HttpServer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 1 + use actix_web::HttpServer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0603]: trait import `Hash` is private [INFO] [stdout] --> src/evaluator/mod.rs:14:60 [INFO] [stdout] | [INFO] [stdout] 14 | Array, Boolean, Builtin, Environment, Error, Function, Hash, HashKey, HashPair, Integer, Null, [INFO] [stdout] | ^^^^ private trait import [INFO] [stdout] | [INFO] [stdout] note: the trait import `Hash` is defined here... [INFO] [stdout] --> src/object/mod.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ^^^^ [INFO] [stdout] note: ...and refers to the trait `Hash` which is defined here [INFO] [stdout] --> /rustc/8c32e313cccf7df531e2d49ffb8227bb92304aee/library/std/src/hash/mod.rs:88:9 [INFO] [stdout] | [INFO] [stdout] = note: you could import this directly [INFO] [stdout] help: import `Hash` through the re-export [INFO] [stdout] | [INFO] [stdout] 14 | Array, Boolean, Builtin, Environment, Error, Function, hash::Hash, HashKey, HashPair, Integer, Null, [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/lexer/tests.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/parser/tests.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Node` [INFO] [stdout] --> src/parser/mod.rs:10:35 [INFO] [stdout] | [INFO] [stdout] 10 | IntegerLiteral, LetStatement, Node, PrefixExpression, Program, ReturnStatement, Statement, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/evaluator/tests.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashKey` [INFO] [stdout] --> src/evaluator/mod.rs:14:66 [INFO] [stdout] | [INFO] [stdout] 14 | Array, Boolean, Builtin, Environment, Error, Function, Hash, HashKey, HashPair, Integer, Null, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error as IoError` [INFO] [stdout] --> src/repl/mod.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{BufRead, Error as IoError, Result as IoResult, Write}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HttpRequest` and `http` [INFO] [stdout] --> src/web/mod.rs:9:63 [INFO] [stdout] | [INFO] [stdout] 9 | error, middleware, web, App, Error, HttpResponse, Result, HttpRequest, http, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/web/mod.rs:11:23 [INFO] [stdout] | [INFO] [stdout] 11 | use futures::future::{self, timeout}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:326:10 [INFO] [stdout] | [INFO] [stdout] 326 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `insert` exists for struct `HashMap Result, ...>>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:121:31 [INFO] [stdout] | [INFO] [stdout] 121 | self.prefix_parse_fns.insert(token_type, func); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-d49382bb0507fd69.long-type-11869382966001626720.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:326:17 [INFO] [stdout] | [INFO] [stdout] 326 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `insert` exists for struct `HashMap) -> ...>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:126:30 [INFO] [stdout] | [INFO] [stdout] 126 | self.infix_parse_fns.insert(token_type, func); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-d49382bb0507fd69.long-type-5854759643152089550.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:331:23 [INFO] [stdout] | [INFO] [stdout] 331 | impl fmt::Display for Hash { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object [INFO] [stdout] | [INFO] [stdout] 331 | impl fmt::Display for dyn Hash { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `clone` exists for struct `Vec`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:148:29 [INFO] [stdout] | [INFO] [stdout] 50 | pub enum ParserError { [INFO] [stdout] | -------------------- doesn't satisfy `ParserError: Clone` [INFO] [stdout] ... [INFO] [stdout] 148 | Err(self.errors.clone()) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `ParserError: Clone` [INFO] [stdout] which is required by `Vec: Clone` [INFO] [stdout] help: consider annotating `ParserError` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 50 + #[derive(Clone)] [INFO] [stdout] 51 | pub enum ParserError { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0782]: expected a type, found a trait [INFO] [stdout] --> src/object/mod.rs:342:17 [INFO] [stdout] | [INFO] [stdout] 342 | impl Object for Hash { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object [INFO] [stdout] | [INFO] [stdout] 342 | impl Object for dyn Hash { [INFO] [stdout] | +++ [INFO] [stdout] help: alternatively use a blanket implementation to implement `Object` for all types that also implement `Hash` [INFO] [stdout] | [INFO] [stdout] 342 - impl Object for Hash { [INFO] [stdout] 342 + impl Object for T { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `get` exists for struct `HashMap Result, ...>>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:235:44 [INFO] [stdout] | [INFO] [stdout] 235 | let prefix = self.prefix_parse_fns.get(&self.current_token.token_type).copied(); [INFO] [stdout] | ^^^ method cannot be called due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-d49382bb0507fd69.long-type-11869382966001626720.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `std::rc::Rc<(dyn object::Object + 'static)>` cannot be shared between threads safely [INFO] [stdout] --> src/object/mod.rs:353:5 [INFO] [stdout] | [INFO] [stdout] 353 | / lazy_static! { [INFO] [stdout] 354 | | /// Map of built-in function names to built-in function objects [INFO] [stdout] 355 | | pub static ref BUILTINS: HashMap<&'static str, Rc> = { [INFO] [stdout] 356 | | let mut builtins = HashMap::new(); [INFO] [stdout] ... | [INFO] [stdout] 516 | | }; [INFO] [stdout] 517 | | } [INFO] [stdout] | |_____^ `std::rc::Rc<(dyn object::Object + 'static)>` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: within `(&'static str, std::rc::Rc<(dyn object::Object + 'static)>)`, the trait `Sync` is not implemented for `std::rc::Rc<(dyn object::Object + 'static)>` [INFO] [stdout] = note: required because it appears within the type `(&'static str, std::rc::Rc<(dyn object::Object + 'static)>)` [INFO] [stdout] = note: required for `hashbrown::raw::RawTable<(&'static str, std::rc::Rc<(dyn object::Object + 'static)>)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `HashMap<&str, Rc, RandomState>` [INFO] [stdout] --> /rust/deps/hashbrown-0.15.5/src/map.rs:185:12 [INFO] [stdout] note: required because it appears within the type `std::collections::HashMap<&'static str, std::rc::Rc<(dyn object::Object + 'static)>>` [INFO] [stdout] --> /rustc/8c32e313cccf7df531e2d49ffb8227bb92304aee/library/std/src/collections/hash/map.rs:246:12 [INFO] [stdout] note: required by a bound in `lazy_static::lazy::Lazy` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lazy_static-1.5.0/src/inline_lazy.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Lazy(Cell>, Once); [INFO] [stdout] | ^^^^ required by this bound in `Lazy` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-fcabb99438adc9ef.long-type-15195102224201964618.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] = note: this error originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `get` exists for struct `HashMap) -> ...>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:246:46 [INFO] [stdout] | [INFO] [stdout] 246 | let infix = self.infix_parse_fns.get(&self.peek_token.token_type).copied(); [INFO] [stdout] | ^^^ method cannot be called due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-d49382bb0507fd69.long-type-5854759643152089550.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `BlockStatement: Clone` is not satisfied [INFO] [stdout] --> src/object/mod.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 213 | #[derive(Debug, Clone)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 216 | pub body: BlockStatement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `BlockStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `object::ObjectType: std::hash::Hash` is not satisfied [INFO] [stdout] --> src/object/mod.rs:314:5 [INFO] [stdout] | [INFO] [stdout] 312 | #[derive(PartialEq, Eq, Hash, Debug, Clone)] [INFO] [stdout] | ---- in this derive macro expansion [INFO] [stdout] 313 | pub struct HashKey { [INFO] [stdout] 314 | pub object_type: ObjectType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::hash::Hash` is not implemented for `object::ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `object::ObjectType` with `#[derive(Hash)]` [INFO] [stdout] | [INFO] [stdout] 56 + #[derive(Hash)] [INFO] [stdout] 57 | pub enum ObjectType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:377:53 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 377 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Statement + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 21 | #[derive(Debug, Default)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 22 | pub struct Program { [INFO] [stdout] 23 | pub statements: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Statement + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:407:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 407 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 69 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 73 | pub value: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 99 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 102 | pub return_value: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:434:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 434 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 128 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 131 | pub expression: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Statement + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 154 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 157 | pub statements: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Statement + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:461:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 461 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:230:5 [INFO] [stdout] | [INFO] [stdout] 226 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 230 | pub right: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:253:5 [INFO] [stdout] | [INFO] [stdout] 250 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 253 | pub left: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:307:5 [INFO] [stdout] | [INFO] [stdout] 304 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 307 | pub condition: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:491:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 491 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:364:5 [INFO] [stdout] | [INFO] [stdout] 361 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 364 | pub function: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:390:5 [INFO] [stdout] | [INFO] [stdout] 387 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 390 | pub elements: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:415:5 [INFO] [stdout] | [INFO] [stdout] 412 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 415 | pub left: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn Expression + 'static)` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/ast/mod.rs:439:5 [INFO] [stdout] | [INFO] [stdout] 436 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 439 | pub pairs: Vec<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::fmt::Debug` is not implemented for `(dyn Expression + 'static)` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/object/mod.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 355 | pub static ref BUILTINS: HashMap<&'static str, Rc> = { [INFO] [stdout] | ------------------------------------- expected `std::collections::HashMap<&'static str, std::rc::Rc<(dyn object::Object + 'static)>>` because of return type [INFO] [stdout] ... [INFO] [stdout] 359 | builtins.insert( [INFO] [stdout] | -------- ... which causes `builtins` to have type `std::collections::HashMap<&str, std::rc::Rc>` [INFO] [stdout] 360 | "len", [INFO] [stdout] 361 | / Rc::new(Builtin { [INFO] [stdout] 362 | | function: |args| { [INFO] [stdout] 363 | | if args.len() != 1 { [INFO] [stdout] 364 | | return Rc::new(Error { [INFO] [stdout] ... | [INFO] [stdout] 386 | | }, [INFO] [stdout] 387 | | }), [INFO] [stdout] | |__________________- this argument has type `std::rc::Rc`... [INFO] [stdout] ... [INFO] [stdout] 515 | builtins [INFO] [stdout] | ^^^^^^^^ expected `HashMap<&str, Rc>`, found `HashMap<&str, Rc>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `std::collections::HashMap<&'static _, std::rc::Rc<(dyn object::Object + 'static)>>` [INFO] [stdout] found struct `std::collections::HashMap<&_, std::rc::Rc>` [INFO] [stdout] = help: `object::Builtin` implements `Object` so you could box the found value and coerce it to the trait object `Box`, you will have to change the expected type as well [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:48:37 [INFO] [stdout] | [INFO] [stdout] 48 | let let_stmt = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:52:40 [INFO] [stdout] | [INFO] [stdout] 52 | let return_stmt = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `downcast_ref` found for reference `&Box<(dyn Statement + 'static)>` in the current scope [INFO] [stdout] --> src/parser/tests.rs:44:35 [INFO] [stdout] | [INFO] [stdout] 44 | let let_stmt = match stmt.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: there is a method `as_ref` with a similar name [INFO] [stdout] | [INFO] [stdout] 44 - let let_stmt = match stmt.downcast_ref::() { [INFO] [stdout] 44 + let let_stmt = match stmt.as_ref::() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `dyn Statement` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/parser/tests.rs:46:68 [INFO] [stdout] | [INFO] [stdout] 46 | None => panic!("stmt not *ast.LetStatement. got={:?}", stmt), [INFO] [stdout] | ---- ^^^^ `dyn Statement` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug` [INFO] [stdout] | | [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `std::fmt::Debug` is not implemented for `dyn Statement` [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] = note: required for `Box` to implement `std::fmt::Debug` [INFO] [stdout] = note: 1 redundant requirement hidden [INFO] [stdout] = note: required for `&Box` to implement `std::fmt::Debug` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:56:36 [INFO] [stdout] | [INFO] [stdout] 56 | let program = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:60:34 [INFO] [stdout] | [INFO] [stdout] 60 | let block = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `downcast_ref` found for reference `&dyn Expression` in the current scope [INFO] [stdout] --> src/parser/tests.rs:352:32 [INFO] [stdout] | [INFO] [stdout] 352 | let op_exp = match exp.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: there is a method `on_red` with a similar name [INFO] [stdout] | [INFO] [stdout] 352 - let op_exp = match exp.downcast_ref::() { [INFO] [stdout] 352 + let op_exp = match exp.on_red::() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:63:26 [INFO] [stdout] | [INFO] [stdout] 63 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `dyn Expression` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/parser/tests.rs:354:72 [INFO] [stdout] | [INFO] [stdout] 354 | None => panic!("exp is not ast.InfixExpression. got={:?}", exp), [INFO] [stdout] | ---- ^^^ `dyn Expression` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug` [INFO] [stdout] | | [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `std::fmt::Debug` is not implemented for `dyn Expression` [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] = note: required for `&dyn Expression` to implement `std::fmt::Debug` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:64:38 [INFO] [stdout] | [INFO] [stdout] 64 | let expr_stmt = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:73:26 [INFO] [stdout] | [INFO] [stdout] 73 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:74:32 [INFO] [stdout] | [INFO] [stdout] 74 | let int = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `downcast_ref` found for reference `&dyn Node` in the current scope [INFO] [stdout] --> src/parser/tests.rs:369:30 [INFO] [stdout] | [INFO] [stdout] 369 | let integ = match il.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: there is a method `on_red` with a similar name [INFO] [stdout] | [INFO] [stdout] 369 - let integ = match il.downcast_ref::() { [INFO] [stdout] 369 + let integ = match il.on_red::() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `dyn Node` doesn't implement `std::fmt::Debug` [INFO] [stdout] --> src/parser/tests.rs:371:68 [INFO] [stdout] | [INFO] [stdout] 371 | None => panic!("il not *ast.IntegerLiteral. got={:?}", il), [INFO] [stdout] | ---- ^^ `dyn Node` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug` [INFO] [stdout] | | [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `std::fmt::Debug` is not implemented for `dyn Node` [INFO] [stdout] = help: the following other types implement trait `std::fmt::Debug`: [INFO] [stdout] dyn std::any::Any + std::marker::Send + Sync [INFO] [stdout] dyn std::any::Any + std::marker::Send [INFO] [stdout] dyn std::any::Any [INFO] [stdout] dyn tracing_core::field::Value [INFO] [stdout] = note: required for `&dyn Node` to implement `std::fmt::Debug` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:78:35 [INFO] [stdout] | [INFO] [stdout] 78 | let string = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:83:26 [INFO] [stdout] | [INFO] [stdout] 83 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `insert` exists for struct `HashMap Result, ...>>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:121:31 [INFO] [stdout] | [INFO] [stdout] 121 | self.prefix_parse_fns.insert(token_type, func); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-fcabb99438adc9ef.long-type-1734139035843018752.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:84:36 [INFO] [stdout] | [INFO] [stdout] 84 | let boolean = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:89:26 [INFO] [stdout] | [INFO] [stdout] 89 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `insert` exists for struct `HashMap) -> ...>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:126:30 [INFO] [stdout] | [INFO] [stdout] 126 | self.infix_parse_fns.insert(token_type, func); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-fcabb99438adc9ef.long-type-1439585162909580376.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:90:35 [INFO] [stdout] | [INFO] [stdout] 90 | let prefix = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `clone` exists for struct `Vec`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:148:29 [INFO] [stdout] | [INFO] [stdout] 50 | pub enum ParserError { [INFO] [stdout] | -------------------- doesn't satisfy `ParserError: Clone` [INFO] [stdout] ... [INFO] [stdout] 148 | Err(self.errors.clone()) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `ParserError: Clone` [INFO] [stdout] which is required by `Vec: Clone` [INFO] [stdout] help: consider annotating `ParserError` with `#[derive(Clone)]` [INFO] [stdout] | [INFO] [stdout] 50 + #[derive(Clone)] [INFO] [stdout] 51 | pub enum ParserError { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:98:26 [INFO] [stdout] | [INFO] [stdout] 98 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:99:34 [INFO] [stdout] | [INFO] [stdout] 99 | let infix = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `get` exists for struct `HashMap Result, ...>>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:235:44 [INFO] [stdout] | [INFO] [stdout] 235 | let prefix = self.prefix_parse_fns.get(&self.current_token.token_type).copied(); [INFO] [stdout] | ^^^ method cannot be called due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-fcabb99438adc9ef.long-type-1734139035843018752.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:114:26 [INFO] [stdout] | [INFO] [stdout] 114 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `get` exists for struct `HashMap) -> ...>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/parser/mod.rs:246:46 [INFO] [stdout] | [INFO] [stdout] 246 | let infix = self.infix_parse_fns.get(&self.peek_token.token_type).copied(); [INFO] [stdout] | ^^^ method cannot be called due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum TokenType { [INFO] [stdout] | ------------------ doesn't satisfy `TokenType: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `TokenType: std::hash::Hash` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/cherith_interpreter-fcabb99438adc9ef.long-type-1439585162909580376.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] help: consider annotating `TokenType` with `#[derive(Hash)]` [INFO] [stdout] --> src/lexer/token.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 + #[derive(Hash)] [INFO] [stdout] 8 | pub enum TokenType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:115:36 [INFO] [stdout] | [INFO] [stdout] 115 | let if_expr = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:118:26 [INFO] [stdout] | [INFO] [stdout] 118 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `BlockStatement: Clone` is not satisfied [INFO] [stdout] --> src/object/mod.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 213 | #[derive(Debug, Clone)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 216 | pub body: BlockStatement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `BlockStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:119:34 [INFO] [stdout] | [INFO] [stdout] 119 | let ident = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `object::ObjectType: std::hash::Hash` is not satisfied [INFO] [stdout] --> src/object/mod.rs:314:5 [INFO] [stdout] | [INFO] [stdout] 312 | #[derive(PartialEq, Eq, Hash, Debug, Clone)] [INFO] [stdout] | ---- in this derive macro expansion [INFO] [stdout] 313 | pub struct HashKey { [INFO] [stdout] 314 | pub object_type: ObjectType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::hash::Hash` is not implemented for `object::ObjectType` [INFO] [stdout] | [INFO] [stdout] help: consider annotating `object::ObjectType` with `#[derive(Hash)]` [INFO] [stdout] | [INFO] [stdout] 56 + #[derive(Hash)] [INFO] [stdout] 57 | pub enum ObjectType { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:123:33 [INFO] [stdout] | [INFO] [stdout] 123 | let func = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:377:53 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 377 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:132:26 [INFO] [stdout] | [INFO] [stdout] 132 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:133:33 [INFO] [stdout] | [INFO] [stdout] 133 | let call = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:407:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 407 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:144:26 [INFO] [stdout] | [INFO] [stdout] 144 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:434:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 434 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:145:34 [INFO] [stdout] | [INFO] [stdout] 145 | let array = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:152:26 [INFO] [stdout] | [INFO] [stdout] 152 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:461:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 461 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:153:39 [INFO] [stdout] | [INFO] [stdout] 153 | let index_expr = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:164:26 [INFO] [stdout] | [INFO] [stdout] 164 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/object/mod.rs:491:45 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] ... [INFO] [stdout] 491 | let array = args[0].downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:165:33 [INFO] [stdout] | [INFO] [stdout] 165 | let hash = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ method cannot be called on `&dyn Node` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/object/mod.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 355 | pub static ref BUILTINS: HashMap<&'static str, Rc> = { [INFO] [stdout] | ------------------------------------- expected `std::collections::HashMap<&'static str, std::rc::Rc<(dyn object::Object + 'static)>>` because of return type [INFO] [stdout] ... [INFO] [stdout] 359 | builtins.insert( [INFO] [stdout] | -------- ... which causes `builtins` to have type `std::collections::HashMap<&str, std::rc::Rc>` [INFO] [stdout] 360 | "len", [INFO] [stdout] 361 | / Rc::new(Builtin { [INFO] [stdout] 362 | | function: |args| { [INFO] [stdout] 363 | | if args.len() != 1 { [INFO] [stdout] 364 | | return Rc::new(Error { [INFO] [stdout] ... | [INFO] [stdout] 386 | | }, [INFO] [stdout] 387 | | }), [INFO] [stdout] | |__________________- this argument has type `std::rc::Rc`... [INFO] [stdout] ... [INFO] [stdout] 515 | builtins [INFO] [stdout] | ^^^^^^^^ expected `HashMap<&str, Rc>`, found `HashMap<&str, Rc>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `std::collections::HashMap<&'static _, std::rc::Rc<(dyn object::Object + 'static)>>` [INFO] [stdout] found struct `std::collections::HashMap<&_, std::rc::Rc>` [INFO] [stdout] = help: `object::Builtin` implements `Object` so you could box the found value and coerce it to the trait object `Box`, you will have to change the expected type as well [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:180:48 [INFO] [stdout] | [INFO] [stdout] 180 | if let Some(return_value) = result.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:293:37 [INFO] [stdout] | [INFO] [stdout] 293 | let function = func.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:299:36 [INFO] [stdout] | [INFO] [stdout] 299 | let builtin = func.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:48:37 [INFO] [stdout] | [INFO] [stdout] 48 | let let_stmt = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:325:41 [INFO] [stdout] | [INFO] [stdout] 325 | if let Some(return_value) = obj.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:52:40 [INFO] [stdout] | [INFO] [stdout] 52 | let return_stmt = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:347:37 [INFO] [stdout] | [INFO] [stdout] 347 | let boolean = right.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:365:27 [INFO] [stdout] | [INFO] [stdout] 365 | let value = right.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:56:36 [INFO] [stdout] | [INFO] [stdout] 56 | let program = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:422:29 [INFO] [stdout] | [INFO] [stdout] 422 | let left_val = left.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:423:31 [INFO] [stdout] | [INFO] [stdout] 423 | let right_val = right.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:60:34 [INFO] [stdout] | [INFO] [stdout] 60 | let block = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:463:29 [INFO] [stdout] | [INFO] [stdout] 463 | let left_val = left.downcast_ref::().unwrap().value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:464:31 [INFO] [stdout] | [INFO] [stdout] 464 | let right_val = right.downcast_ref::().unwrap().value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:63:26 [INFO] [stdout] | [INFO] [stdout] 63 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:504:34 [INFO] [stdout] | [INFO] [stdout] 504 | let array_object = array.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:64:38 [INFO] [stdout] | [INFO] [stdout] 64 | let expr_stmt = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:505:25 [INFO] [stdout] | [INFO] [stdout] 505 | let idx = index.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:73:26 [INFO] [stdout] | [INFO] [stdout] 73 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:551:32 [INFO] [stdout] | [INFO] [stdout] 551 | let hash_object = hash.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:74:32 [INFO] [stdout] | [INFO] [stdout] 74 | let int = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:570:35 [INFO] [stdout] | [INFO] [stdout] 570 | let boolean = obj.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&std::rc::Rc: object::Object` [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 77 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:78:35 [INFO] [stdout] | [INFO] [stdout] 78 | let string = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:83:26 [INFO] [stdout] | [INFO] [stdout] 83 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:84:36 [INFO] [stdout] | [INFO] [stdout] 84 | let boolean = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:89:26 [INFO] [stdout] | [INFO] [stdout] 89 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:90:35 [INFO] [stdout] | [INFO] [stdout] 90 | let prefix = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0255, E0277, E0308, E0432, E0433, E0574, E0599, E0603, E0782. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0255`. [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:98:26 [INFO] [stdout] | [INFO] [stdout] 98 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:99:34 [INFO] [stdout] | [INFO] [stdout] 99 | let infix = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `cherith_interpreter` (lib) due to 82 previous errors; 5 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:114:26 [INFO] [stdout] | [INFO] [stdout] 114 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:115:36 [INFO] [stdout] | [INFO] [stdout] 115 | let if_expr = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:118:26 [INFO] [stdout] | [INFO] [stdout] 118 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:119:34 [INFO] [stdout] | [INFO] [stdout] 119 | let ident = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:123:33 [INFO] [stdout] | [INFO] [stdout] 123 | let func = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:132:26 [INFO] [stdout] | [INFO] [stdout] 132 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:133:33 [INFO] [stdout] | [INFO] [stdout] 133 | let call = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:144:26 [INFO] [stdout] | [INFO] [stdout] 144 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:145:34 [INFO] [stdout] | [INFO] [stdout] 145 | let array = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:152:26 [INFO] [stdout] | [INFO] [stdout] 152 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:153:39 [INFO] [stdout] | [INFO] [stdout] 153 | let index_expr = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:164:26 [INFO] [stdout] | [INFO] [stdout] 164 | node if node.downcast_ref::().is_some() => { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&dyn Node`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:165:33 [INFO] [stdout] | [INFO] [stdout] 165 | let hash = node.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/ast/mod.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Node: fmt::Display { [INFO] [stdout] | ---------------------------- doesn't satisfy `dyn Node: ObjectExt`, `dyn Node: object::Object` or `dyn Node: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&dyn Node: object::Object` [INFO] [stdout] `dyn Node: object::Object` [INFO] [stdout] `dyn Node: std::marker::Sized` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:180:48 [INFO] [stdout] | [INFO] [stdout] 180 | if let Some(return_value) = result.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:293:37 [INFO] [stdout] | [INFO] [stdout] 293 | let function = func.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:299:36 [INFO] [stdout] | [INFO] [stdout] 299 | let builtin = func.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:325:41 [INFO] [stdout] | [INFO] [stdout] 325 | if let Some(return_value) = obj.downcast_ref::() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:347:37 [INFO] [stdout] | [INFO] [stdout] 347 | let boolean = right.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:365:27 [INFO] [stdout] | [INFO] [stdout] 365 | let value = right.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:422:29 [INFO] [stdout] | [INFO] [stdout] 422 | let left_val = left.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:423:31 [INFO] [stdout] | [INFO] [stdout] 423 | let right_val = right.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:463:29 [INFO] [stdout] | [INFO] [stdout] 463 | let left_val = left.downcast_ref::().unwrap().value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:464:31 [INFO] [stdout] | [INFO] [stdout] 464 | let right_val = right.downcast_ref::().unwrap().value.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:504:34 [INFO] [stdout] | [INFO] [stdout] 504 | let array_object = array.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:505:25 [INFO] [stdout] | [INFO] [stdout] 505 | let idx = index.downcast_ref::().unwrap().value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for struct `std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:551:32 [INFO] [stdout] | [INFO] [stdout] 551 | let hash_object = hash.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `downcast_ref` exists for reference `&std::rc::Rc<(dyn object::Object + 'static)>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/evaluator/mod.rs:570:35 [INFO] [stdout] | [INFO] [stdout] 570 | let boolean = obj.downcast_ref::().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/object/mod.rs:87:1 [INFO] [stdout] | [INFO] [stdout] 87 | pub trait Object: fmt::Debug + fmt::Display { [INFO] [stdout] | ------------------------------------------- doesn't satisfy `dyn object::Object: ObjectExt` or `dyn object::Object: std::marker::Sized` [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `&std::rc::Rc: object::Object` [INFO] [stdout] `dyn object::Object: std::marker::Sized` [INFO] [stdout] `std::rc::Rc: object::Object` [INFO] [stdout] --> src/object/mod.rs:524:10 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ^ ^^^^^^ --------- - [INFO] [stdout] | | | [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `ObjectExt` defines an item `downcast_ref`, perhaps you need to implement it [INFO] [stdout] --> src/object/mod.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | pub trait ObjectExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider relaxing the type parameter's implicit `Sized` bound [INFO] [stdout] --> src/object/mod.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | impl ObjectExt for O { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0255, E0277, E0308, E0412, E0422, E0432, E0433, E0573, E0574... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0255`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cherith_interpreter` (lib test) due to 132 previous errors; 8 warnings emitted [INFO] running `Command { std: "docker" "inspect" "074e28866519d03278aff5e4dee9868c6e3753298aca99a67dfcdb4c8262efb9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "074e28866519d03278aff5e4dee9868c6e3753298aca99a67dfcdb4c8262efb9", kill_on_drop: false }` [INFO] [stdout] 074e28866519d03278aff5e4dee9868c6e3753298aca99a67dfcdb4c8262efb9