[INFO] cloning repository https://github.com/gfaster/lisp [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gfaster/lisp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgfaster%2Flisp", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgfaster%2Flisp'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c173c8cceba15e08ff4d280e95b6620b403e7180 [INFO] checking gfaster/lisp against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgfaster%2Flisp" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/gfaster/lisp [INFO] finished tweaking git repo https://github.com/gfaster/lisp [INFO] tweaked toml for git repo https://github.com/gfaster/lisp written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/gfaster/lisp on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/gfaster/lisp 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2dd570bd6a2caf066fdc1ea8f3a18e7aafff5deb5146ac20ef7549c461dfd545 [INFO] running `Command { std: "docker" "start" "-a" "2dd570bd6a2caf066fdc1ea8f3a18e7aafff5deb5146ac20ef7549c461dfd545", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2dd570bd6a2caf066fdc1ea8f3a18e7aafff5deb5146ac20ef7549c461dfd545", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2dd570bd6a2caf066fdc1ea8f3a18e7aafff5deb5146ac20ef7549c461dfd545", kill_on_drop: false }` [INFO] [stdout] 2dd570bd6a2caf066fdc1ea8f3a18e7aafff5deb5146ac20ef7549c461dfd545 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c374856fb232c9f1846d99315e5c7cc9eb82ff4249ee830345eb7de0777f6bec [INFO] running `Command { std: "docker" "start" "-a" "c374856fb232c9f1846d99315e5c7cc9eb82ff4249ee830345eb7de0777f6bec", kill_on_drop: false }` [INFO] [stderr] Checking lisp3 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/env.rs:143:27 [INFO] [stdout] | [INFO] [stdout] 143 | syms: HashMap, [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 141 ~ struct EnvInner<'a> { [INFO] [stdout] 142 | up: Option>, [INFO] [stdout] 143 ~ syms: HashMap>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/error.rs:61:22 [INFO] [stdout] | [INFO] [stdout] 61 | WrongTypeToApply(Datum), [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 6 ~ pub enum Error<'a> { [INFO] [stdout] 7 | $($id $(($($tt)*))?),* [INFO] [stdout] ... [INFO] [stdout] 60 | (manual) TypeError(Type, Type), [INFO] [stdout] 61 ~ WrongTypeToApply(Datum<'a>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/error.rs:61:22 [INFO] [stdout] | [INFO] [stdout] 61 | WrongTypeToApply(Datum), [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 16 ~ pub struct $id<'a> $(($(pub $field),*))?; [INFO] [stdout] 17 | impl std::fmt::Display for $id { [INFO] [stdout] ... [INFO] [stdout] 60 | (manual) TypeError(Type, Type), [INFO] [stdout] 61 ~ WrongTypeToApply(Datum<'a>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:368:28 [INFO] [stdout] | [INFO] [stdout] 368 | impl std::fmt::Display for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 368 | impl std::fmt::Display for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:377:26 [INFO] [stdout] | [INFO] [stdout] 377 | impl std::fmt::Debug for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 377 | impl std::fmt::Debug for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:383:6 [INFO] [stdout] | [INFO] [stdout] 383 | impl List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 383 | impl List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:384:26 [INFO] [stdout] | [INFO] [stdout] 384 | fn to_datum(self) -> Datum { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from [INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values [INFO] [stdout] | [INFO] [stdout] 384 | fn to_datum(self) -> Datum<'static> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:391:49 [INFO] [stdout] | [INFO] [stdout] 391 | fn as_args(self) -> Result<[Datum; N], MismatchedParamNum> { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from [INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values [INFO] [stdout] | [INFO] [stdout] 391 | fn as_args(self) -> Result<[Datum<'static>; N], MismatchedParamNum> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:397:58 [INFO] [stdout] | [INFO] [stdout] 397 | fn as_args_and_rem(self) -> Result<([Datum; N], Self), MismatchedParamNum> { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from [INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values [INFO] [stdout] | [INFO] [stdout] 397 | fn as_args_and_rem(self) -> Result<([Datum<'static>; N], Self), MismatchedParamNum> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:424:23 [INFO] [stdout] | [INFO] [stdout] 424 | impl IntoIterator for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 424 | impl IntoIterator for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:425:17 [INFO] [stdout] | [INFO] [stdout] 425 | type Item = Datum; [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 425 | type Item<'a> = Datum<'a>; [INFO] [stdout] | ++++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:427:21 [INFO] [stdout] | [INFO] [stdout] 427 | type IntoIter = DatumIter; [INFO] [stdout] | ^^^^^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 427 | type IntoIter<'a> = DatumIter<'a>; [INFO] [stdout] | ++++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:434:19 [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator for List { [INFO] [stdout] | ^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator> for List { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:434:30 [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:435:41 [INFO] [stdout] | [INFO] [stdout] 435 | fn from_iter>(iter: T) -> Self { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html [INFO] [stdout] help: consider making the bound lifetime-generic with a new `'a` lifetime [INFO] [stdout] | [INFO] [stdout] 435 | fn from_iter IntoIterator>>(iter: T) -> Self { [INFO] [stdout] | +++++++ ++++ [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 435 | fn from_iter<'a, T: IntoIterator>>(iter: T) -> Self { [INFO] [stdout] | +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MaybeUninit` [INFO] [stdout] --> src/gc.rs:1:84 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cell::{Cell, RefCell}, marker::{PhantomData, PhantomPinned}, mem::{self, MaybeUninit}, pin::Pin, ptr::{self, NonNull}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ops::Deref` [INFO] [stdout] --> src/gc/root_ref.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{marker::PhantomData, ops::Deref, pin::Pin, ptr::NonNull}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gc` [INFO] [stdout] --> src/gc/root_ref.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use super::{Gc, Root, RootTruth}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `root` [INFO] [stdout] --> src/gc.rs:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | macro_rules! root { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `reroot` [INFO] [stdout] --> src/gc.rs:351:14 [INFO] [stdout] | [INFO] [stdout] 351 | macro_rules! reroot { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `reroot` and `root` [INFO] [stdout] --> src/main.rs:13:14 [INFO] [stdout] | [INFO] [stdout] 13 | use gc::{Gc, root, reroot}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/env.rs:143:27 [INFO] [stdout] | [INFO] [stdout] 143 | syms: HashMap, [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 141 ~ struct EnvInner<'a> { [INFO] [stdout] 142 | up: Option>, [INFO] [stdout] 143 ~ syms: HashMap>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/error.rs:61:22 [INFO] [stdout] | [INFO] [stdout] 61 | WrongTypeToApply(Datum), [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 6 ~ pub enum Error<'a> { [INFO] [stdout] 7 | $($id $(($($tt)*))?),* [INFO] [stdout] ... [INFO] [stdout] 60 | (manual) TypeError(Type, Type), [INFO] [stdout] 61 ~ WrongTypeToApply(Datum<'a>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/error.rs:61:22 [INFO] [stdout] | [INFO] [stdout] 61 | WrongTypeToApply(Datum), [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 16 ~ pub struct $id<'a> $(($(pub $field),*))?; [INFO] [stdout] 17 | impl std::fmt::Display for $id { [INFO] [stdout] ... [INFO] [stdout] 60 | (manual) TypeError(Type, Type), [INFO] [stdout] 61 ~ WrongTypeToApply(Datum<'a>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:368:28 [INFO] [stdout] | [INFO] [stdout] 368 | impl std::fmt::Display for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 368 | impl std::fmt::Display for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:377:26 [INFO] [stdout] | [INFO] [stdout] 377 | impl std::fmt::Debug for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 377 | impl std::fmt::Debug for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:383:6 [INFO] [stdout] | [INFO] [stdout] 383 | impl List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 383 | impl List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:384:26 [INFO] [stdout] | [INFO] [stdout] 384 | fn to_datum(self) -> Datum { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from [INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values [INFO] [stdout] | [INFO] [stdout] 384 | fn to_datum(self) -> Datum<'static> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:391:49 [INFO] [stdout] | [INFO] [stdout] 391 | fn as_args(self) -> Result<[Datum; N], MismatchedParamNum> { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from [INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values [INFO] [stdout] | [INFO] [stdout] 391 | fn as_args(self) -> Result<[Datum<'static>; N], MismatchedParamNum> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:397:58 [INFO] [stdout] | [INFO] [stdout] 397 | fn as_args_and_rem(self) -> Result<([Datum; N], Self), MismatchedParamNum> { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from [INFO] [stdout] help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values [INFO] [stdout] | [INFO] [stdout] 397 | fn as_args_and_rem(self) -> Result<([Datum<'static>; N], Self), MismatchedParamNum> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:424:23 [INFO] [stdout] | [INFO] [stdout] 424 | impl IntoIterator for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 424 | impl IntoIterator for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:425:17 [INFO] [stdout] | [INFO] [stdout] 425 | type Item = Datum; [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 425 | type Item<'a> = Datum<'a>; [INFO] [stdout] | ++++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:427:21 [INFO] [stdout] | [INFO] [stdout] 427 | type IntoIter = DatumIter; [INFO] [stdout] | ^^^^^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 427 | type IntoIter<'a> = DatumIter<'a>; [INFO] [stdout] | ++++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:434:19 [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator for List { [INFO] [stdout] | ^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator> for List { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/main.rs:434:30 [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator for List { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 434 | impl FromIterator for List<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/main.rs:435:41 [INFO] [stdout] | [INFO] [stdout] 435 | fn from_iter>(iter: T) -> Self { [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html [INFO] [stdout] help: consider making the bound lifetime-generic with a new `'a` lifetime [INFO] [stdout] | [INFO] [stdout] 435 | fn from_iter IntoIterator>>(iter: T) -> Self { [INFO] [stdout] | +++++++ ++++ [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 435 | fn from_iter<'a, T: IntoIterator>>(iter: T) -> Self { [INFO] [stdout] | +++ ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MaybeUninit` [INFO] [stdout] --> src/gc.rs:1:84 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cell::{Cell, RefCell}, marker::{PhantomData, PhantomPinned}, mem::{self, MaybeUninit}, pin::Pin, ptr::{self, NonNull}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ops::Deref` [INFO] [stdout] --> src/gc/root_ref.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{marker::PhantomData, ops::Deref, pin::Pin, ptr::NonNull}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Gc` [INFO] [stdout] --> src/gc/root_ref.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use super::{Gc, Root, RootTruth}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `root` [INFO] [stdout] --> src/gc.rs:339:14 [INFO] [stdout] | [INFO] [stdout] 339 | macro_rules! root { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `reroot` [INFO] [stdout] --> src/gc.rs:351:14 [INFO] [stdout] | [INFO] [stdout] 351 | macro_rules! reroot { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `reroot` and `root` [INFO] [stdout] --> src/main.rs:13:14 [INFO] [stdout] | [INFO] [stdout] 13 | use gc::{Gc, root, reroot}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:10:43 [INFO] [stdout] | [INFO] [stdout] 10 | env.declare("car".into(), Datum::Func(car)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {car}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:11:43 [INFO] [stdout] | [INFO] [stdout] 11 | env.declare("cdr".into(), Datum::Func(cdr)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {cdr}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:12:46 [INFO] [stdout] | [INFO] [stdout] 12 | env.declare("setcar".into(), Datum::Func(setcar)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {setcar}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | env.declare("setcdr".into(), Datum::Func(setcdr)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {setcdr}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:14:44 [INFO] [stdout] | [INFO] [stdout] 14 | env.declare("cons".into(), Datum::Func(cons)); [INFO] [stdout] | ----------- ^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {cons}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:10:43 [INFO] [stdout] | [INFO] [stdout] 10 | env.declare("car".into(), Datum::Func(car)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {car}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:11:43 [INFO] [stdout] | [INFO] [stdout] 11 | env.declare("cdr".into(), Datum::Func(cdr)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {cdr}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:12:46 [INFO] [stdout] | [INFO] [stdout] 12 | env.declare("setcar".into(), Datum::Func(setcar)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {setcar}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | env.declare("setcdr".into(), Datum::Func(setcdr)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {setcdr}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:14:44 [INFO] [stdout] | [INFO] [stdout] 14 | env.declare("cons".into(), Datum::Func(cons)); [INFO] [stdout] | ----------- ^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {cons}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | env.declare("apply".into(), Datum::Func(apply)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {apply}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:16:41 [INFO] [stdout] | [INFO] [stdout] 16 | env.declare("+".into(), Datum::Func(add)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {intrinsics::add}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:17:41 [INFO] [stdout] | [INFO] [stdout] 17 | env.declare("-".into(), Datum::Func(sub)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {intrinsics::sub}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | env.declare("*".into(), Datum::Func(mul)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {intrinsics::mul}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | env.declare("apply".into(), Datum::Func(apply)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {apply}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:16:41 [INFO] [stdout] | [INFO] [stdout] 16 | env.declare("+".into(), Datum::Func(add)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {intrinsics::add}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:17:41 [INFO] [stdout] | [INFO] [stdout] 17 | env.declare("-".into(), Datum::Func(sub)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {intrinsics::sub}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | env.declare("*".into(), Datum::Func(mul)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {intrinsics::mul}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:19:44 [INFO] [stdout] | [INFO] [stdout] 19 | env.declare("list".into(), Datum::Func(list)); [INFO] [stdout] | ----------- ^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {list}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:20:46 [INFO] [stdout] | [INFO] [stdout] 20 | env.declare("lambda".into(), Datum::Func(lambda)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {lambda}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:21:45 [INFO] [stdout] | [INFO] [stdout] 21 | env.declare("defun".into(), Datum::Func(defun)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {defun}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:22:46 [INFO] [stdout] | [INFO] [stdout] 22 | env.declare("defvar".into(), Datum::Func(defvar)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {defvar}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | env.declare("set".into(), Datum::Func(set)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {set}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:24:47 [INFO] [stdout] | [INFO] [stdout] 24 | env.declare("display".into(), Datum::Func(display)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {display}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:19:44 [INFO] [stdout] | [INFO] [stdout] 19 | env.declare("list".into(), Datum::Func(list)); [INFO] [stdout] | ----------- ^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {list}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:20:46 [INFO] [stdout] | [INFO] [stdout] 20 | env.declare("lambda".into(), Datum::Func(lambda)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {lambda}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:25:42 [INFO] [stdout] | [INFO] [stdout] 25 | env.declare("if".into(), Datum::Func(if_expr)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {if_expr}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:26:48 [INFO] [stdout] | [INFO] [stdout] 26 | env.declare("function".into(), Datum::Func(function)); [INFO] [stdout] | ----------- ^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {function}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:27:45 [INFO] [stdout] | [INFO] [stdout] 27 | env.declare("quote".into(), Datum::Func(quote)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {quote}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:28:47 [INFO] [stdout] | [INFO] [stdout] 28 | env.declare("unquote".into(), Datum::Func(unquote)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {unquote}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:21:45 [INFO] [stdout] | [INFO] [stdout] 21 | env.declare("defun".into(), Datum::Func(defun)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {defun}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:29:50 [INFO] [stdout] | [INFO] [stdout] 29 | env.declare("quasiquote".into(), Datum::Func(quasiquote)); [INFO] [stdout] | ----------- ^^^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {quasiquote}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:30:45 [INFO] [stdout] | [INFO] [stdout] 30 | env.declare("progn".into(), Datum::Func(progn)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {progn}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:31:51 [INFO] [stdout] | [INFO] [stdout] 31 | env.declare("expandmacro".into(), Datum::Func(expandmacro)); [INFO] [stdout] | ----------- ^^^^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {expandmacro}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:22:46 [INFO] [stdout] | [INFO] [stdout] 22 | env.declare("defvar".into(), Datum::Func(defvar)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {defvar}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:32:48 [INFO] [stdout] | [INFO] [stdout] 32 | env.declare("defmacro".into(), Datum::Func(defmacro)); [INFO] [stdout] | ----------- ^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {defmacro}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | env.declare("tagbody".into(), Datum::Func(tagbody)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {tagbody}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:34:42 [INFO] [stdout] | [INFO] [stdout] 34 | env.declare("go".into(), Datum::Func(go)); [INFO] [stdout] | ----------- ^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {go}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:35:46 [INFO] [stdout] | [INFO] [stdout] 35 | env.declare("gensym".into(), Datum::Func(gensym)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {gensym}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | env.declare("set".into(), Datum::Func(set)); [INFO] [stdout] | ----------- ^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {set}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:24:47 [INFO] [stdout] | [INFO] [stdout] 24 | env.declare("display".into(), Datum::Func(display)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {display}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:25:42 [INFO] [stdout] | [INFO] [stdout] 25 | env.declare("if".into(), Datum::Func(if_expr)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {if_expr}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:26:48 [INFO] [stdout] | [INFO] [stdout] 26 | env.declare("function".into(), Datum::Func(function)); [INFO] [stdout] | ----------- ^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {function}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:27:45 [INFO] [stdout] | [INFO] [stdout] 27 | env.declare("quote".into(), Datum::Func(quote)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {quote}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:28:47 [INFO] [stdout] | [INFO] [stdout] 28 | env.declare("unquote".into(), Datum::Func(unquote)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {unquote}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:29:50 [INFO] [stdout] | [INFO] [stdout] 29 | env.declare("quasiquote".into(), Datum::Func(quasiquote)); [INFO] [stdout] | ----------- ^^^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {quasiquote}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:30:45 [INFO] [stdout] | [INFO] [stdout] 30 | env.declare("progn".into(), Datum::Func(progn)); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {progn}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:31:51 [INFO] [stdout] | [INFO] [stdout] 31 | env.declare("expandmacro".into(), Datum::Func(expandmacro)); [INFO] [stdout] | ----------- ^^^^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {expandmacro}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:32:48 [INFO] [stdout] | [INFO] [stdout] 32 | env.declare("defmacro".into(), Datum::Func(defmacro)); [INFO] [stdout] | ----------- ^^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {defmacro}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | env.declare("tagbody".into(), Datum::Func(tagbody)); [INFO] [stdout] | ----------- ^^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {tagbody}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:34:42 [INFO] [stdout] | [INFO] [stdout] 34 | env.declare("go".into(), Datum::Func(go)); [INFO] [stdout] | ----------- ^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {go}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:35:46 [INFO] [stdout] | [INFO] [stdout] 35 | env.declare("gensym".into(), Datum::Func(gensym)); [INFO] [stdout] | ----------- ^^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {gensym}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Gc<'_, Cons<'_>>: From>` is not satisfied [INFO] [stdout] --> src/intrinsics.rs:71:45 [INFO] [stdout] | [INFO] [stdout] 71 | Ok(Datum::Cons(Cons::new_pair(car, cdr).into())) [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is implemented for `Gc<'_, T>` [INFO] [stdout] = note: required for `Cons<'_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:75:43 [INFO] [stdout] | [INFO] [stdout] 75 | let func = cons(l, env.clone())?.eval(env)?; [INFO] [stdout] | ---- ^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/main.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | fn eval(&self, env: Gc) -> LispResult { [INFO] [stdout] | ^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Gc<'_, Cons<'_>>: From>` is not satisfied [INFO] [stdout] --> src/intrinsics.rs:71:45 [INFO] [stdout] | [INFO] [stdout] 71 | Ok(Datum::Cons(Cons::new_pair(car, cdr).into())) [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is implemented for `Gc<'_, T>` [INFO] [stdout] = note: required for `Cons<'_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:75:43 [INFO] [stdout] | [INFO] [stdout] 75 | let func = cons(l, env.clone())?.eval(env)?; [INFO] [stdout] | ---- ^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/main.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | fn eval(&self, env: Gc) -> LispResult { [INFO] [stdout] | ^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:120:29 [INFO] [stdout] | [INFO] [stdout] 120 | let dat = Datum::Lambda(Rc::new(l)); [INFO] [stdout] | ------------- ^^^^^^^^^^ expected `Gc<'_, Lambda<'_>>`, found `Rc>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Lambda<'_>>` [INFO] [stdout] found struct `Rc>` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | Lambda(Gc<'r, Lambda<'r>>), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:120:29 [INFO] [stdout] | [INFO] [stdout] 120 | let dat = Datum::Lambda(Rc::new(l)); [INFO] [stdout] | ------------- ^^^^^^^^^^ expected `Gc<'_, Lambda<'_>>`, found `Rc>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Lambda<'_>>` [INFO] [stdout] found struct `Rc>` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | Lambda(Gc<'r, Lambda<'r>>), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:272:31 [INFO] [stdout] | [INFO] [stdout] 272 | m.expand(args.as_list()?, env) [INFO] [stdout] | ------ ^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/main.rs:195:8 [INFO] [stdout] | [INFO] [stdout] 195 | fn expand(&self, l: List, env: Gc) -> LispResult { [INFO] [stdout] | ^^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:286:55 [INFO] [stdout] | [INFO] [stdout] 286 | let body = Datum::Cons(Cons::new_pair(Datum::Func(progn), body).into()); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {progn}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:272:31 [INFO] [stdout] | [INFO] [stdout] 272 | m.expand(args.as_list()?, env) [INFO] [stdout] | ------ ^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/main.rs:195:8 [INFO] [stdout] | [INFO] [stdout] 195 | fn expand(&self, l: List, env: Gc) -> LispResult { [INFO] [stdout] | ^^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Gc<'_, Cons<'_>>: From>` is not satisfied [INFO] [stdout] --> src/intrinsics.rs:286:69 [INFO] [stdout] | [INFO] [stdout] 286 | let body = Datum::Cons(Cons::new_pair(Datum::Func(progn), body).into()); [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is implemented for `Gc<'_, T>` [INFO] [stdout] = note: required for `Cons<'_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:291:28 [INFO] [stdout] | [INFO] [stdout] 291 | let ret = Datum::Macro(Rc::new(m)); [INFO] [stdout] | ------------ ^^^^^^^^^^ expected `Gc<'_, Macro<'_>>`, found `Rc>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Macro<'_>>` [INFO] [stdout] found struct `Rc>` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | Macro(Gc<'r, Macro<'r>>), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:286:55 [INFO] [stdout] | [INFO] [stdout] 286 | let body = Datum::Cons(Cons::new_pair(Datum::Func(progn), body).into()); [INFO] [stdout] | ----------- ^^^^^ expected fn pointer, found fn item [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `for<'a> fn(List<'a>, Gc<'_, Env>) -> Result, _>` [INFO] [stdout] found fn item `for<'a> fn(List<'a>, Rc) -> Result, _> {progn}` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | Func(fn(List, Gc<'r, Env>) -> LispResult<'r>), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Gc<'_, Cons<'_>>: From>` is not satisfied [INFO] [stdout] --> src/intrinsics.rs:286:69 [INFO] [stdout] | [INFO] [stdout] 286 | let body = Datum::Cons(Cons::new_pair(Datum::Func(progn), body).into()); [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is implemented for `Gc<'_, T>` [INFO] [stdout] = note: required for `Cons<'_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:291:28 [INFO] [stdout] | [INFO] [stdout] 291 | let ret = Datum::Macro(Rc::new(m)); [INFO] [stdout] | ------------ ^^^^^^^^^^ expected `Gc<'_, Macro<'_>>`, found `Rc>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Macro<'_>>` [INFO] [stdout] found struct `Rc>` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | Macro(Gc<'r, Macro<'r>>), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/intrinsics.rs:306:24 [INFO] [stdout] | [INFO] [stdout] 306 | let car = cons.get_car(); [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/intrinsics.rs:306:24 [INFO] [stdout] | [INFO] [stdout] 306 | let car = cons.get_car(); [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:308:34 [INFO] [stdout] | [INFO] [stdout] 303 | labels.insert(sym, head.clone()); [INFO] [stdout] | ------ ------------ this argument has type `Gc<'_, Cons<'_>>`... [INFO] [stdout] | | [INFO] [stdout] | ... which causes `labels` to have type `HashMap>>` [INFO] [stdout] ... [INFO] [stdout] 308 | labels.insert(label, cons.clone()); [INFO] [stdout] | ------ ^^^^^^^^^^^^ expected `Gc<'_, Cons<'_>>`, found `Datum<'_>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Cons<'_>>` [INFO] [stdout] found enum `Datum<'_>` [INFO] [stdout] help: the return type of this call is `Datum<'_>` due to the type of the argument passed [INFO] [stdout] --> src/intrinsics.rs:308:13 [INFO] [stdout] | [INFO] [stdout] 308 | labels.insert(label, cons.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the return type of `insert` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/std/src/collections/hash/map.rs:1207:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/intrinsics.rs:312:21 [INFO] [stdout] | [INFO] [stdout] 312 | next = cons.get_cdr() [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:316:37 [INFO] [stdout] | [INFO] [stdout] 316 | let res = ip.get_car().eval(env.clone())?; [INFO] [stdout] | ---- ^^^^^^^^^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/main.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | fn eval(&self, env: Gc) -> LispResult { [INFO] [stdout] | ^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:308:34 [INFO] [stdout] | [INFO] [stdout] 303 | labels.insert(sym, head.clone()); [INFO] [stdout] | ------ ------------ this argument has type `Gc<'_, Cons<'_>>`... [INFO] [stdout] | | [INFO] [stdout] | ... which causes `labels` to have type `HashMap>>` [INFO] [stdout] ... [INFO] [stdout] 308 | labels.insert(label, cons.clone()); [INFO] [stdout] | ------ ^^^^^^^^^^^^ expected `Gc<'_, Cons<'_>>`, found `Datum<'_>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Cons<'_>>` [INFO] [stdout] found enum `Datum<'_>` [INFO] [stdout] help: the return type of this call is `Datum<'_>` due to the type of the argument passed [INFO] [stdout] --> src/intrinsics.rs:308:13 [INFO] [stdout] | [INFO] [stdout] 308 | labels.insert(label, cons.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the return type of `insert` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/std/src/collections/hash/map.rs:1207:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:322:18 [INFO] [stdout] | [INFO] [stdout] 314 | let mut ip = head; [INFO] [stdout] | ---- expected due to this value [INFO] [stdout] ... [INFO] [stdout] 322 | ip = next; [INFO] [stdout] | ^^^^ expected `Gc<'_, Cons<'_>>`, found `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Cons<'_>>` [INFO] [stdout] found enum `Datum<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/intrinsics.rs:312:21 [INFO] [stdout] | [INFO] [stdout] 312 | next = cons.get_cdr() [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `?` operator has incompatible types [INFO] [stdout] --> src/intrinsics.rs:337:32 [INFO] [stdout] | [INFO] [stdout] 337 | let name: Rc = name.try_as()?; [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `Rc`, found `Gc<'_, _>` [INFO] [stdout] | [INFO] [stdout] = note: `?` operator cannot convert from `Gc<'_, _>` to `Rc` [INFO] [stdout] = note: expected struct `Rc` [INFO] [stdout] found struct `Gc<'_, _>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:316:37 [INFO] [stdout] | [INFO] [stdout] 316 | let res = ip.get_car().eval(env.clone())?; [INFO] [stdout] | ---- ^^^^^^^^^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/main.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | fn eval(&self, env: Gc) -> LispResult { [INFO] [stdout] | ^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/intrinsics.rs:322:18 [INFO] [stdout] | [INFO] [stdout] 314 | let mut ip = head; [INFO] [stdout] | ---- expected due to this value [INFO] [stdout] ... [INFO] [stdout] 322 | ip = next; [INFO] [stdout] | ^^^^ expected `Gc<'_, Cons<'_>>`, found `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Cons<'_>>` [INFO] [stdout] found enum `Datum<'_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `?` operator has incompatible types [INFO] [stdout] --> src/intrinsics.rs:337:32 [INFO] [stdout] | [INFO] [stdout] 337 | let name: Rc = name.try_as()?; [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `Rc`, found `Gc<'_, _>` [INFO] [stdout] | [INFO] [stdout] = note: `?` operator cannot convert from `Gc<'_, _>` to `Rc` [INFO] [stdout] = note: expected struct `Rc` [INFO] [stdout] found struct `Gc<'_, _>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:211:42 [INFO] [stdout] | [INFO] [stdout] 202 | impl<'a, T: Trace + 'a> RootTruth> { [INFO] [stdout] | - found this type parameter [INFO] [stdout] ... [INFO] [stdout] 211 | Root { truth: PhantomData, item: this.item.item } [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `NonNull>`, found `NonNull` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull>` [INFO] [stdout] found struct `NonNull` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:225:19 [INFO] [stdout] | [INFO] [stdout] 222 | impl<'root, T: Trace + 'root> Root<'root, T> { [INFO] [stdout] | - expected this type parameter [INFO] [stdout] ... [INFO] [stdout] 225 | item: self.item, [INFO] [stdout] | ^^^^^^^^^ expected `NonNull`, found `NonNull>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull` [INFO] [stdout] found struct `NonNull>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:245:19 [INFO] [stdout] | [INFO] [stdout] 238 | impl<'root, 'old, T> Root<'root, T> [INFO] [stdout] | - found this type parameter [INFO] [stdout] ... [INFO] [stdout] 245 | item: item.item, [INFO] [stdout] | ^^^^^^^^^ expected `NonNull>`, found `NonNull` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull>` [INFO] [stdout] found struct `NonNull` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:211:42 [INFO] [stdout] | [INFO] [stdout] 202 | impl<'a, T: Trace + 'a> RootTruth> { [INFO] [stdout] | - found this type parameter [INFO] [stdout] ... [INFO] [stdout] 211 | Root { truth: PhantomData, item: this.item.item } [INFO] [stdout] | ^^^^^^^^^^^^^^ expected `NonNull>`, found `NonNull` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull>` [INFO] [stdout] found struct `NonNull` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:294:16 [INFO] [stdout] | [INFO] [stdout] 290 | impl<'root, T> Gc<'root, T> { [INFO] [stdout] | - expected this type parameter [INFO] [stdout] ... [INFO] [stdout] 294 | Self { item, _lifetime: PhantomData, _aliased: PhantomPinned } [INFO] [stdout] | ^^^^ expected `NonNull`, found `NonNull>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull` [INFO] [stdout] found struct `NonNull>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `marked` on type `T` [INFO] [stdout] --> src/gc.rs:300:34 [INFO] [stdout] | [INFO] [stdout] 290 | impl<'root, T> Gc<'root, T> { [INFO] [stdout] | - type parameter 'T' declared here [INFO] [stdout] ... [INFO] [stdout] 300 | unsafe { (*ptr.as_ptr()).marked.set(mark) } [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:225:19 [INFO] [stdout] | [INFO] [stdout] 222 | impl<'root, T: Trace + 'root> Root<'root, T> { [INFO] [stdout] | - expected this type parameter [INFO] [stdout] ... [INFO] [stdout] 225 | item: self.item, [INFO] [stdout] | ^^^^^^^^^ expected `NonNull`, found `NonNull>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull` [INFO] [stdout] found struct `NonNull>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `marked` on type `T` [INFO] [stdout] --> src/gc.rs:305:34 [INFO] [stdout] | [INFO] [stdout] 290 | impl<'root, T> Gc<'root, T> { [INFO] [stdout] | - type parameter 'T' declared here [INFO] [stdout] ... [INFO] [stdout] 305 | unsafe { (*ptr.as_ptr()).marked.get() == with_mark } [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `item` on type `T` [INFO] [stdout] --> src/gc.rs:321:35 [INFO] [stdout] | [INFO] [stdout] 313 | impl std::ops::Deref for Gc<'_, T> { [INFO] [stdout] | - type parameter 'T' declared here [INFO] [stdout] ... [INFO] [stdout] 321 | unsafe { &(*ptr.as_ptr()).item } [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:245:19 [INFO] [stdout] | [INFO] [stdout] 238 | impl<'root, 'old, T> Root<'root, T> [INFO] [stdout] | - found this type parameter [INFO] [stdout] ... [INFO] [stdout] 245 | item: item.item, [INFO] [stdout] | ^^^^^^^^^ expected `NonNull>`, found `NonNull` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull>` [INFO] [stdout] found struct `NonNull` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/gc.rs:294:16 [INFO] [stdout] | [INFO] [stdout] 290 | impl<'root, T> Gc<'root, T> { [INFO] [stdout] | - expected this type parameter [INFO] [stdout] ... [INFO] [stdout] 294 | Self { item, _lifetime: PhantomData, _aliased: PhantomPinned } [INFO] [stdout] | ^^^^ expected `NonNull`, found `NonNull>` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `NonNull` [INFO] [stdout] found struct `NonNull>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `marked` on type `T` [INFO] [stdout] --> src/gc.rs:300:34 [INFO] [stdout] | [INFO] [stdout] 290 | impl<'root, T> Gc<'root, T> { [INFO] [stdout] | - type parameter 'T' declared here [INFO] [stdout] ... [INFO] [stdout] 300 | unsafe { (*ptr.as_ptr()).marked.set(mark) } [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `marked` on type `T` [INFO] [stdout] --> src/gc.rs:305:34 [INFO] [stdout] | [INFO] [stdout] 290 | impl<'root, T> Gc<'root, T> { [INFO] [stdout] | - type parameter 'T' declared here [INFO] [stdout] ... [INFO] [stdout] 305 | unsafe { (*ptr.as_ptr()).marked.get() == with_mark } [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `item` on type `T` [INFO] [stdout] --> src/gc.rs:321:35 [INFO] [stdout] | [INFO] [stdout] 313 | impl std::ops::Deref for Gc<'_, T> { [INFO] [stdout] | - type parameter 'T' declared here [INFO] [stdout] ... [INFO] [stdout] 321 | unsafe { &(*ptr.as_ptr()).item } [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:162:27 [INFO] [stdout] | [INFO] [stdout] 162 | return Ok(ret) [INFO] [stdout] | -- ^^^ expected `Gc<'_, T>`, found `Box<_>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, T>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] help: the type constructed contains `Box<_>` due to the type of the argument passed [INFO] [stdout] --> src/main.rs:162:24 [INFO] [stdout] | [INFO] [stdout] 162 | return Ok(ret) [INFO] [stdout] | ^^^---^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Ok` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/core/src/result.rs:553:5 [INFO] [stdout] help: consider unboxing the value [INFO] [stdout] | [INFO] [stdout] 162 | return Ok(*ret) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:184:46 [INFO] [stdout] | [INFO] [stdout] 184 | intrinsics::progn(self.body.clone(), env) [INFO] [stdout] | ----------------- ^^^ expected `Rc`, found `Gc<'_, Env>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Rc` [INFO] [stdout] found struct `Gc<'_, Env>` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/intrinsics.rs:262:8 [INFO] [stdout] | [INFO] [stdout] 262 | pub fn progn(l: List, env: Rc) -> LispResult { [INFO] [stdout] | ^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:162:27 [INFO] [stdout] | [INFO] [stdout] 162 | return Ok(ret) [INFO] [stdout] | -- ^^^ expected `Gc<'_, T>`, found `Box<_>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, T>` [INFO] [stdout] found struct `Box<_>` [INFO] [stdout] help: the type constructed contains `Box<_>` due to the type of the argument passed [INFO] [stdout] --> src/main.rs:162:24 [INFO] [stdout] | [INFO] [stdout] 162 | return Ok(ret) [INFO] [stdout] | ^^^---^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Ok` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/core/src/result.rs:553:5 [INFO] [stdout] help: consider unboxing the value [INFO] [stdout] | [INFO] [stdout] 162 | return Ok(*ret) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:184:46 [INFO] [stdout] | [INFO] [stdout] 184 | intrinsics::progn(self.body.clone(), env) [INFO] [stdout] | ----------------- ^^^ expected `Rc`, found `Gc<'_, Env>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Rc` [INFO] [stdout] found struct `Gc<'_, Env>` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/intrinsics.rs:262:8 [INFO] [stdout] | [INFO] [stdout] 262 | pub fn progn(l: List, env: Rc) -> LispResult { [INFO] [stdout] | ^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Cell>: From>>>` is not satisfied [INFO] [stdout] --> src/main.rs:212:24 [INFO] [stdout] | [INFO] [stdout] 212 | cdr: cdr.0.into(), [INFO] [stdout] | ^^^^ the trait `From>>>` is not implemented for `Cell>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>>>` is not implemented for `Cell>` [INFO] [stdout] but trait `From>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `Datum<'_>`, found `Option>>` [INFO] [stdout] = note: required for `Option>>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Cell>: From>>>` is not satisfied [INFO] [stdout] --> src/main.rs:212:24 [INFO] [stdout] | [INFO] [stdout] 212 | cdr: cdr.0.into(), [INFO] [stdout] | ^^^^ the trait `From>>>` is not implemented for `Cell>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>>>` is not implemented for `Cell>` [INFO] [stdout] but trait `From>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `Datum<'_>`, found `Option>>` [INFO] [stdout] = note: required for `Option>>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:219:18 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 219 | if right.get_cdr().is_some() { [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:219:18 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 219 | if right.get_cdr().is_some() { [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:222:25 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 222 | Ok((left, right.get_car())) [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Cell>: From>` is not satisfied [INFO] [stdout] --> src/main.rs:228:23 [INFO] [stdout] | [INFO] [stdout] 228 | cdr: None.into(), [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Cell>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is not implemented for `Cell>` [INFO] [stdout] but trait `From>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `Datum<'_>`, found `Option<_>` [INFO] [stdout] = note: required for `Option<_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:222:25 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 222 | Ok((left, right.get_car())) [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Cell>: From>` is not satisfied [INFO] [stdout] --> src/main.rs:228:23 [INFO] [stdout] | [INFO] [stdout] 228 | cdr: None.into(), [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Cell>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is not implemented for `Cell>` [INFO] [stdout] but trait `From>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `Datum<'_>`, found `Option<_>` [INFO] [stdout] = note: required for `Option<_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `Gc<'_, _>` in the current scope [INFO] [stdout] --> src/main.rs:236:27 [INFO] [stdout] | [INFO] [stdout] 236 | let new = Gc::new(Cons::new(datum)); [INFO] [stdout] | ^^^ function or associated item not found in `Gc<'_, _>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- function or associated item `new` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `Gc<'_, _>` in the current scope [INFO] [stdout] --> src/main.rs:236:27 [INFO] [stdout] | [INFO] [stdout] 236 | let new = Gc::new(Cons::new(datum)); [INFO] [stdout] | ^^^ function or associated item not found in `Gc<'_, _>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- function or associated item `new` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:254:22 [INFO] [stdout] | [INFO] [stdout] 254 | self.cdr.set(cdr) [INFO] [stdout] | --- ^^^ expected `Datum<'_>`, found `Option>>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Datum<'r>` [INFO] [stdout] found enum `Option>>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/core/src/cell.rs:430:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ------------- expected `Option>` because of return type [INFO] [stdout] ... [INFO] [stdout] 266 | cdr [INFO] [stdout] | ^^^ expected `Option>`, found `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found enum `Datum<'r>` [INFO] [stdout] help: try wrapping the expression in `Some` [INFO] [stdout] | [INFO] [stdout] 266 | Some(cdr) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:254:22 [INFO] [stdout] | [INFO] [stdout] 254 | self.cdr.set(cdr) [INFO] [stdout] | --- ^^^ expected `Datum<'_>`, found `Option>>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Datum<'r>` [INFO] [stdout] found enum `Option>>` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/core/src/cell.rs:430:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:271:34 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 271 | self.get_cdr().map(|x| x.get_car()) [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ------------- expected `Option>` because of return type [INFO] [stdout] ... [INFO] [stdout] 266 | cdr [INFO] [stdout] | ^^^ expected `Option>`, found `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>` [INFO] [stdout] found enum `Datum<'r>` [INFO] [stdout] help: try wrapping the expression in `Some` [INFO] [stdout] | [INFO] [stdout] 266 | Some(cdr) [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:276:39 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 276 | self.get_cdr().and_then(|x| x.get_cdr()).map(|x| x.get_car()) [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:271:34 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 271 | self.get_cdr().map(|x| x.get_car()) [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:302:46 [INFO] [stdout] | [INFO] [stdout] 302 | Datum::Macro(m) => m.expand(List(self.get_cdr()), env.clone())?.eval(env), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this struct are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] note: tuple struct defined here [INFO] [stdout] --> src/main.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct List<'r>(Option>>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:303:38 [INFO] [stdout] | [INFO] [stdout] 303 | Datum::Func(f) => f(List(self.get_cdr()), env), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this struct are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] note: tuple struct defined here [INFO] [stdout] --> src/main.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct List<'r>(Option>>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:304:45 [INFO] [stdout] | [INFO] [stdout] 304 | Datum::Lambda(l) => l.eval(List(self.get_cdr()), env), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this struct are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] note: tuple struct defined here [INFO] [stdout] --> src/main.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct List<'r>(Option>>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:276:39 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 276 | self.get_cdr().and_then(|x| x.get_cdr()).map(|x| x.get_car()) [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:302:46 [INFO] [stdout] | [INFO] [stdout] 302 | Datum::Macro(m) => m.expand(List(self.get_cdr()), env.clone())?.eval(env), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this struct are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] note: tuple struct defined here [INFO] [stdout] --> src/main.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct List<'r>(Option>>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:303:38 [INFO] [stdout] | [INFO] [stdout] 303 | Datum::Func(f) => f(List(self.get_cdr()), env), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this struct are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] note: tuple struct defined here [INFO] [stdout] --> src/main.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct List<'r>(Option>>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:304:45 [INFO] [stdout] | [INFO] [stdout] 304 | Datum::Lambda(l) => l.eval(List(self.get_cdr()), env), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this struct are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] note: tuple struct defined here [INFO] [stdout] --> src/main.rs:364:8 [INFO] [stdout] | [INFO] [stdout] 364 | struct List<'r>(Option>>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `extend_with` found for struct `Gc<'_, Env>` in the current scope [INFO] [stdout] --> src/main.rs:307:32 [INFO] [stdout] | [INFO] [stdout] 307 | inner.eval(env.extend_with(&e)).inspect_err(|e| eprintln!("dynamic extent error {e}")) [INFO] [stdout] | ^^^^^^^^^^^ method not found in `Gc<'_, Env>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- method `extend_with` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:329:21 [INFO] [stdout] | [INFO] [stdout] 329 | self.cons = curr.get_cdr(); [INFO] [stdout] | --------- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `Gc<'_, Cons<'_>>` doesn't implement `std::fmt::Display` [INFO] [stdout] --> src/main.rs:339:46 [INFO] [stdout] | [INFO] [stdout] 339 | Datum::Cons(cons) => write!(f, "{cons}"), [INFO] [stdout] | -^^^^- [INFO] [stdout] | || [INFO] [stdout] | |`Gc<'_, Cons<'_>>` cannot be formatted with the default formatter [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `std::fmt::Display` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead [INFO] [stdout] = note: required for `&Gc<'_, Cons<'_>>` to implement `std::fmt::Display` [INFO] [stdout] = note: this error originates in the macro `$crate::format_args` which comes from the expansion of the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `extend_with` found for struct `Gc<'_, Env>` in the current scope [INFO] [stdout] --> src/main.rs:307:32 [INFO] [stdout] | [INFO] [stdout] 307 | inner.eval(env.extend_with(&e)).inspect_err(|e| eprintln!("dynamic extent error {e}")) [INFO] [stdout] | ^^^^^^^^^^^ method not found in `Gc<'_, Env>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- method `extend_with` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:329:21 [INFO] [stdout] | [INFO] [stdout] 329 | self.cons = curr.get_cdr(); [INFO] [stdout] | --------- ^^^^^^^^^^^^^^ expected `Option>>`, found `Option>` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Option>>` [INFO] [stdout] found enum `Option>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:356:35 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 356 | write!(f, " {}", cons.get_car())?; [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `Gc<'_, Cons<'_>>` doesn't implement `std::fmt::Display` [INFO] [stdout] --> src/main.rs:339:46 [INFO] [stdout] | [INFO] [stdout] 339 | Datum::Cons(cons) => write!(f, "{cons}"), [INFO] [stdout] | -^^^^- [INFO] [stdout] | || [INFO] [stdout] | |`Gc<'_, Cons<'_>>` cannot be formatted with the default formatter [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `std::fmt::Display` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead [INFO] [stdout] = note: required for `&Gc<'_, Cons<'_>>` to implement `std::fmt::Display` [INFO] [stdout] = note: this error originates in the macro `$crate::format_args` which comes from the expansion of the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:357:24 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 357 | cdr = cons.get_cdr(); [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_car` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:356:35 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_car` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 356 | write!(f, " {}", cons.get_car())?; [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_car` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_cdr` found for enum `Datum<'r>` in the current scope [INFO] [stdout] --> src/main.rs:357:24 [INFO] [stdout] | [INFO] [stdout] 20 | enum Datum<'r> { [INFO] [stdout] | -------------- method `get_cdr` not found for this enum [INFO] [stdout] ... [INFO] [stdout] 357 | cdr = cons.get_cdr(); [INFO] [stdout] | ^^^^^^^ method not found in `Datum<'_>` [INFO] [stdout] | [INFO] [stdout] note: the method `get_cdr` exists on the type `Gc<'_, Cons<'_>>` [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | fn get_cdr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `extend` found for struct `Gc<'_, Env>` in the current scope [INFO] [stdout] --> src/main.rs:479:23 [INFO] [stdout] | [INFO] [stdout] 479 | let env = env.extend(); [INFO] [stdout] | ^^^^^^ method not found in `Gc<'_, Env>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- method `extend` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `extend`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `Extend` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Gc<'_, Cons<'_>>: From>` is not satisfied [INFO] [stdout] --> src/main.rs:529:53 [INFO] [stdout] | [INFO] [stdout] 529 | (Datum::Cons(Cons::new_pair(car, List(cdr)).into()), rem) [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is implemented for `Gc<'_, T>` [INFO] [stdout] = note: required for `Cons<'_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn Any + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:540:26 [INFO] [stdout] | [INFO] [stdout] 540 | let ret: Gc = Gc::new(buf); [INFO] [stdout] | ^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn Any + 'static)` [INFO] [stdout] note: required by an implicit `Sized` bound in `Gc` [INFO] [stdout] --> src/gc.rs:273:22 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ^ required by the implicit `Sized` requirement on this type parameter in `Gc` [INFO] [stdout] help: consider relaxing the implicit `Sized` restriction [INFO] [stdout] --> src/gc.rs:273:23 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T: ?Sized> { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `Gc<'_, _>` in the current scope [INFO] [stdout] --> src/main.rs:540:44 [INFO] [stdout] | [INFO] [stdout] 540 | let ret: Gc = Gc::new(buf); [INFO] [stdout] | ^^^ function or associated item not found in `Gc<'_, _>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- function or associated item `new` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `extend` found for struct `Gc<'_, Env>` in the current scope [INFO] [stdout] --> src/main.rs:479:23 [INFO] [stdout] | [INFO] [stdout] 479 | let env = env.extend(); [INFO] [stdout] | ^^^^^^ method not found in `Gc<'_, Env>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- method `extend` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `extend`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `Extend` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:631:28 [INFO] [stdout] | [INFO] [stdout] 631 | read_file("stdlib.cl", root_env.clone()).unwrap(); [INFO] [stdout] | --------- ^^^^^^^^^^^^^^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/main.rs:619:4 [INFO] [stdout] | [INFO] [stdout] 619 | fn read_file(p: impl AsRef, env: Gc) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:637:41 [INFO] [stdout] | [INFO] [stdout] 637 | match read(&buf).eval(Gc::clone(&root_env)) { [INFO] [stdout] | --------- ^^^^^^^^^ expected `&Gc<'_, Env>`, found `&Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Gc<'_, Env>` [INFO] [stdout] found reference `&Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/core/src/clone.rs:237:8 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Gc<'_, Cons<'_>>: From>` is not satisfied [INFO] [stdout] --> src/main.rs:529:53 [INFO] [stdout] | [INFO] [stdout] 529 | (Datum::Cons(Cons::new_pair(car, List(cdr)).into()), rem) [INFO] [stdout] | ^^^^ the trait `From>` is not implemented for `Gc<'_, Cons<'_>>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `From>` is implemented for `Gc<'_, T>` [INFO] [stdout] = note: required for `Cons<'_>` to implement `Into>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn Any + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/main.rs:540:26 [INFO] [stdout] | [INFO] [stdout] 540 | let ret: Gc = Gc::new(buf); [INFO] [stdout] | ^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn Any + 'static)` [INFO] [stdout] note: required by an implicit `Sized` bound in `Gc` [INFO] [stdout] --> src/gc.rs:273:22 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ^ required by the implicit `Sized` requirement on this type parameter in `Gc` [INFO] [stdout] help: consider relaxing the implicit `Sized` restriction [INFO] [stdout] --> src/gc.rs:273:23 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T: ?Sized> { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `Gc<'_, _>` in the current scope [INFO] [stdout] --> src/main.rs:540:44 [INFO] [stdout] | [INFO] [stdout] 540 | let ret: Gc = Gc::new(buf); [INFO] [stdout] | ^^^ function or associated item not found in `Gc<'_, _>` [INFO] [stdout] | [INFO] [stdout] ::: src/gc.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | pub struct Gc<'root, T> { [INFO] [stdout] | ----------------------- function or associated item `new` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:631:28 [INFO] [stdout] | [INFO] [stdout] 631 | read_file("stdlib.cl", root_env.clone()).unwrap(); [INFO] [stdout] | --------- ^^^^^^^^^^^^^^^^ expected `Gc<'_, Env>`, found `Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Gc<'_, Env>` [INFO] [stdout] found struct `Rc` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/main.rs:619:4 [INFO] [stdout] | [INFO] [stdout] 619 | fn read_file(p: impl AsRef, env: Gc) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this` [INFO] [stdout] --> src/gc.rs:23:24 [INFO] [stdout] | [INFO] [stdout] 23 | unsafe fn from_raw(this: NonNull) -> NonNull { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_this` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:637:41 [INFO] [stdout] | [INFO] [stdout] 637 | match read(&buf).eval(Gc::clone(&root_env)) { [INFO] [stdout] | --------- ^^^^^^^^^ expected `&Gc<'_, Env>`, found `&Rc` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Gc<'_, Env>` [INFO] [stdout] found reference `&Rc` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/350d0ef0ec0493e6d21cfb265cb8211a0e74d766/library/core/src/clone.rs:237:8 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `cdr` [INFO] [stdout] --> src/main.rs:86:26 [INFO] [stdout] | [INFO] [stdout] 86 | Some(cdr) => Datum::Cons(cdr), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ lifetime `'r` required [INFO] [stdout] | [INFO] [stdout] help: add explicit lifetime `'r` to the type of `cdr` [INFO] [stdout] | [INFO] [stdout] 84 | fn from_cdr(cdr: Option>>) -> Self { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this` [INFO] [stdout] --> src/gc.rs:23:24 [INFO] [stdout] | [INFO] [stdout] 23 | unsafe fn from_raw(this: NonNull) -> NonNull { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_this` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/main.rs:101:31 [INFO] [stdout] | [INFO] [stdout] 83 | impl<'r> Datum<'r> { [INFO] [stdout] | -- lifetime `'r` defined here [INFO] [stdout] ... [INFO] [stdout] 99 | fn as_list(&self) -> Result { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 100 | match self { [INFO] [stdout] 101 | Datum::Cons(c) => Ok(List(Some(Gc::clone(c)))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'r` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] = note: requirement occurs because of the type `List<'_>`, which makes the generic argument `'_` invariant [INFO] [stdout] = note: the struct `List<'r>` is invariant over the parameter `'r` [INFO] [stdout] = help: see for more information about variance [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/main.rs:141:31 [INFO] [stdout] | [INFO] [stdout] 83 | impl<'r> Datum<'r> { [INFO] [stdout] | -- lifetime `'r` defined here [INFO] [stdout] ... [INFO] [stdout] 136 | fn eval(&self, env: Gc) -> LispResult { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 141 | Datum::Func(f) => Ok(Datum::Func(*f)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'r` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] = note: requirement occurs because of the type `Datum<'_>`, which makes the generic argument `'_` invariant [INFO] [stdout] = note: the enum `Datum<'r>` is invariant over the parameter `'r` [INFO] [stdout] = help: see for more information about variance [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `env` [INFO] [stdout] --> src/main.rs:141:31 [INFO] [stdout] | [INFO] [stdout] 141 | Datum::Func(f) => Ok(Datum::Func(*f)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ lifetime `'r` required [INFO] [stdout] | [INFO] [stdout] help: add explicit lifetime `'r` to the type of `env` [INFO] [stdout] | [INFO] [stdout] 136 | fn eval(&self, env: Gc<'r, Env>) -> LispResult { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `env` [INFO] [stdout] --> src/main.rs:141:31 [INFO] [stdout] | [INFO] [stdout] 138 | Datum::Symbol(s) => Ok(env.get(*s)?), [INFO] [stdout] | --- `env` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 141 | Datum::Func(f) => Ok(Datum::Func(*f)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `car` [INFO] [stdout] --> src/main.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | self.car.set(car) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ lifetime `'r` required [INFO] [stdout] | [INFO] [stdout] help: add explicit lifetime `'r` to the type of `car` [INFO] [stdout] | [INFO] [stdout] 249 | fn set_car(&self, car: Datum<'r>) { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/main.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 208 | impl<'r> Cons<'r> { [INFO] [stdout] | -- lifetime `'r` defined here [INFO] [stdout] ... [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 260 | car [INFO] [stdout] | ^^^ method was supposed to return data with lifetime `'r` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] = note: requirement occurs because of the type `Datum<'_>`, which makes the generic argument `'_` invariant [INFO] [stdout] = note: the enum `Datum<'r>` is invariant over the parameter `'r` [INFO] [stdout] = help: see for more information about variance [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `cdr` [INFO] [stdout] --> src/main.rs:86:26 [INFO] [stdout] | [INFO] [stdout] 86 | Some(cdr) => Datum::Cons(cdr), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ lifetime `'r` required [INFO] [stdout] | [INFO] [stdout] help: add explicit lifetime `'r` to the type of `cdr` [INFO] [stdout] | [INFO] [stdout] 84 | fn from_cdr(cdr: Option>>) -> Self { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/main.rs:101:31 [INFO] [stdout] | [INFO] [stdout] 83 | impl<'r> Datum<'r> { [INFO] [stdout] | -- lifetime `'r` defined here [INFO] [stdout] ... [INFO] [stdout] 99 | fn as_list(&self) -> Result { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 100 | match self { [INFO] [stdout] 101 | Datum::Cons(c) => Ok(List(Some(Gc::clone(c)))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'r` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] = note: requirement occurs because of the type `List<'_>`, which makes the generic argument `'_` invariant [INFO] [stdout] = note: the struct `List<'r>` is invariant over the parameter `'r` [INFO] [stdout] = help: see for more information about variance [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/main.rs:141:31 [INFO] [stdout] | [INFO] [stdout] 83 | impl<'r> Datum<'r> { [INFO] [stdout] | -- lifetime `'r` defined here [INFO] [stdout] ... [INFO] [stdout] 136 | fn eval(&self, env: Gc) -> LispResult { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 141 | Datum::Func(f) => Ok(Datum::Func(*f)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ method was supposed to return data with lifetime `'r` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] = note: requirement occurs because of the type `Datum<'_>`, which makes the generic argument `'_` invariant [INFO] [stdout] = note: the enum `Datum<'r>` is invariant over the parameter `'r` [INFO] [stdout] = help: see for more information about variance [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `env` [INFO] [stdout] --> src/main.rs:141:31 [INFO] [stdout] | [INFO] [stdout] 141 | Datum::Func(f) => Ok(Datum::Func(*f)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ lifetime `'r` required [INFO] [stdout] | [INFO] [stdout] help: add explicit lifetime `'r` to the type of `env` [INFO] [stdout] | [INFO] [stdout] 136 | fn eval(&self, env: Gc<'r, Env>) -> LispResult { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `env` [INFO] [stdout] --> src/main.rs:141:31 [INFO] [stdout] | [INFO] [stdout] 138 | Datum::Symbol(s) => Ok(env.get(*s)?), [INFO] [stdout] | --- `env` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 141 | Datum::Func(f) => Ok(Datum::Func(*f)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0621]: explicit lifetime required in the type of `car` [INFO] [stdout] --> src/main.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | self.car.set(car) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ lifetime `'r` required [INFO] [stdout] | [INFO] [stdout] help: add explicit lifetime `'r` to the type of `car` [INFO] [stdout] | [INFO] [stdout] 249 | fn set_car(&self, car: Datum<'r>) { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/main.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 208 | impl<'r> Cons<'r> { [INFO] [stdout] | -- lifetime `'r` defined here [INFO] [stdout] ... [INFO] [stdout] 257 | fn get_car(&self) -> Datum { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 260 | car [INFO] [stdout] | ^^^ method was supposed to return data with lifetime `'r` but it is returning data with lifetime `'1` [INFO] [stdout] | [INFO] [stdout] = note: requirement occurs because of the type `Datum<'_>`, which makes the generic argument `'_` invariant [INFO] [stdout] = note: the enum `Datum<'r>` is invariant over the parameter `'r` [INFO] [stdout] = help: see for more information about variance [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0106, E0277, E0308, E0515, E0599, E0609, E0621, E0726. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0106`. [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0106, E0277, E0308, E0515, E0599, E0609, E0621, E0726. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0106`. [INFO] [stdout] [INFO] [stderr] error: could not compile `lisp3` (bin "lisp3") due to 93 previous errors; 7 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `lisp3` (bin "lisp3" test) due to 93 previous errors; 7 warnings emitted [INFO] running `Command { std: "docker" "inspect" "c374856fb232c9f1846d99315e5c7cc9eb82ff4249ee830345eb7de0777f6bec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c374856fb232c9f1846d99315e5c7cc9eb82ff4249ee830345eb7de0777f6bec", kill_on_drop: false }` [INFO] [stdout] c374856fb232c9f1846d99315e5c7cc9eb82ff4249ee830345eb7de0777f6bec