[INFO] updating cached repository https://github.com/1011X/rcc [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 2b0a9995fc095d43dc0e057c0f9e4c796040e62c [INFO] checking 1011X/rcc against master#3dbade652ed8ebac70f903e01f51cd92c4e4302c for pr-69880 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F1011X%2Frcc" "/workspace/builds/worker-2/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/1011X/rcc on toolchain 3dbade652ed8ebac70f903e01f51cd92c4e4302c [INFO] running `"/workspace/cargo-home/bin/cargo" "+3dbade652ed8ebac70f903e01f51cd92c4e4302c" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/1011X/rcc [INFO] finished tweaking git repo https://github.com/1011X/rcc [INFO] tweaked toml for git repo https://github.com/1011X/rcc written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/1011X/rcc already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+3dbade652ed8ebac70f903e01f51cd92c4e4302c" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+3dbade652ed8ebac70f903e01f51cd92c4e4302c" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] aadf9e301342696197956551e3973f5c402bd7b9bca2712638825e720f59af4e [INFO] running `"docker" "start" "-a" "aadf9e301342696197956551e3973f5c402bd7b9bca2712638825e720f59af4e"` [INFO] [stderr] Compiling libc v0.2.60 [INFO] [stderr] Checking atty v0.2.13 [INFO] [stderr] Checking clap v2.33.0 [INFO] [stderr] Checking rever v0.0.1 (/opt/rustwide/workdir) [INFO] [stderr] error[E0412]: cannot find type `EvalResult` in this scope [INFO] [stderr] --> src/interpret/ast/expr.rs:232:35 [INFO] [stderr] | [INFO] [stderr] 232 | pub fn eval(&self, t: &Scope) -> EvalResult { [INFO] [stderr] | ^^^^^^^^^^ not found in this scope [INFO] [stderr] | [INFO] [stderr] help: possible candidate is found in another module, you can import it into scope [INFO] [stderr] | [INFO] [stderr] 21 | use crate::interpret::EvalResult; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Param`, `Statement` [INFO] [stderr] --> src/interpret/value.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use super::ast::{Literal, Param, Statement, Type}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/interpret/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no variant or associated item named `Unsigned` found for enum `interpret::ast::literal::Literal` in the current scope [INFO] [stderr] --> src/interpret/ast/literal.rs:33:28 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum Literal { [INFO] [stderr] | ---------------- variant or associated item `Unsigned` not found here [INFO] [stderr] ... [INFO] [stderr] 33 | Ok(n) => Ok(Literal::Unsigned(n)), [INFO] [stderr] | ^^^^^^^^ variant or associated item not found in `interpret::ast::literal::Literal` [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `EvalResult` in this scope [INFO] [stderr] --> src/interpret/ast/expr.rs:232:35 [INFO] [stderr] | [INFO] [stderr] 232 | pub fn eval(&self, t: &Scope) -> EvalResult { [INFO] [stderr] | ^^^^^^^^^^ not found in this scope [INFO] [stderr] | [INFO] [stderr] help: possible candidate is found in another module, you can import it into scope [INFO] [stderr] | [INFO] [stderr] 21 | use crate::interpret::EvalResult; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::tokenize::tokenize` [INFO] [stderr] --> src/interpret/ast/literal.rs:59:6 [INFO] [stderr] | [INFO] [stderr] 59 | use crate::tokenize::tokenize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Param`, `Statement` [INFO] [stderr] --> src/interpret/value.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use super::ast::{Literal, Param, Statement, Type}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/interpret/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:362:25 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] 362 | | t.push((id.clone(), init.eval(t)?)); [INFO] [stderr] | | ^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:370:27 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] ... | [INFO] [stderr] 370 | | assert_eq!(final_val, dest.eval(t)?); [INFO] [stderr] | | ^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:384:44 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] ... | [INFO] [stderr] 384 | | Xor(lval, expr) => match (lval.eval(t), expr.eval(t)?) { [INFO] [stderr] | | ^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:386:16 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] ... | [INFO] [stderr] 386 | | let pos = t.iter() [INFO] [stderr] | |_______________________________^ [INFO] [stderr] 387 | || .rposition(|var| var.0 == lval.id) [INFO] [stderr] 388 | || .ok_or("variable name not found")?; [INFO] [stderr] | ||__________________________________________________________^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/statement.rs:391:17 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | - expected because this return type... [INFO] [stderr] ... [INFO] [stderr] 362 | t.push((id.clone(), init.eval(t)?)); [INFO] [stderr] | - ...is found to be `()` here [INFO] [stderr] ... [INFO] [stderr] 391 | _ => return Err("tried to do something illegal") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found enum `std::result::Result` [INFO] [stderr] | [INFO] [stderr] = note: expected type `()` [INFO] [stderr] found enum `std::result::Result<_, &str>` [INFO] [stderr] = note: to return `impl Trait`, all returned values must be of the same type [INFO] [stderr] = note: for information on `impl Trait`, see [INFO] [stderr] = help: alternatively, create a new `enum` with a variant for each returned type [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `call` found for enum `interpret::value::Value` in the current scope [INFO] [stderr] --> src/interpret/ast/statement.rs:450:7 [INFO] [stderr] | [INFO] [stderr] 450 | .call(vals, t); [INFO] [stderr] | ^^^^ method not found in `interpret::value::Value` [INFO] [stderr] | [INFO] [stderr] ::: src/interpret/value.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub enum Value { [INFO] [stderr] | -------------- method `call` not found for this [INFO] [stderr] | [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following trait defines an item `call`, perhaps you need to implement it: [INFO] [stderr] candidate #1: `std::ops::Fn` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `uncall` found for enum `interpret::value::Value` in the current scope [INFO] [stderr] --> src/interpret/ast/statement.rs:461:7 [INFO] [stderr] | [INFO] [stderr] 461 | .uncall(vals, t); [INFO] [stderr] | ^^^^^^ method not found in `interpret::value::Value` [INFO] [stderr] | [INFO] [stderr] ::: src/interpret/value.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub enum Value { [INFO] [stderr] | -------------- method `uncall` not found for this [INFO] [stderr] [INFO] [stderr] error: aborting due to 9 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0412, E0599. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: could not compile `rever`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0599]: no variant or associated item named `Unsigned` found for enum `interpret::ast::literal::Literal` in the current scope [INFO] [stderr] --> src/interpret/ast/literal.rs:33:28 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum Literal { [INFO] [stderr] | ---------------- variant or associated item `Unsigned` not found here [INFO] [stderr] ... [INFO] [stderr] 33 | Ok(n) => Ok(Literal::Unsigned(n)), [INFO] [stderr] | ^^^^^^^^ variant or associated item not found in `interpret::ast::literal::Literal` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/literal.rs:64:19 [INFO] [stderr] | [INFO] [stderr] 64 | Literal::parse(&[Token::Ident("true".to_string())]).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&[tokenize::Token; 1]` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/literal.rs:63:3 [INFO] [stderr] | [INFO] [stderr] 63 | assert_eq!( [INFO] [stderr] | _________^ [INFO] [stderr] 64 | | Literal::parse(&[Token::Ident("true".to_string())]).unwrap(), [INFO] [stderr] 65 | | (Literal::Bool(true), &[][..]) [INFO] [stderr] 66 | | ); [INFO] [stderr] | |__________^ expected enum `interpret::ast::literal::Literal`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected enum `interpret::ast::literal::Literal` [INFO] [stderr] found tuple `(interpret::ast::literal::Literal, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/literal.rs:68:19 [INFO] [stderr] | [INFO] [stderr] 68 | Literal::parse(&[Token::Ident("false".to_string())]).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&[tokenize::Token; 1]` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/literal.rs:67:3 [INFO] [stderr] | [INFO] [stderr] 67 | assert_eq!( [INFO] [stderr] | _________^ [INFO] [stderr] 68 | | Literal::parse(&[Token::Ident("false".to_string())]).unwrap(), [INFO] [stderr] 69 | | (Literal::Bool(false), &[][..]) [INFO] [stderr] 70 | | ); [INFO] [stderr] | |__________^ expected enum `interpret::ast::literal::Literal`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected enum `interpret::ast::literal::Literal` [INFO] [stderr] found tuple `(interpret::ast::literal::Literal, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/literal.rs:75:19 [INFO] [stderr] | [INFO] [stderr] 75 | Literal::parse(&[Token::Number("0".to_string())]).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&[tokenize::Token; 1]` [INFO] [stderr] [INFO] [stderr] error[E0599]: no variant or associated item named `Unsigned` found for enum `interpret::ast::literal::Literal` in the current scope [INFO] [stderr] --> src/interpret/ast/literal.rs:76:14 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum Literal { [INFO] [stderr] | ---------------- variant or associated item `Unsigned` not found here [INFO] [stderr] ... [INFO] [stderr] 76 | (Literal::Unsigned(0), &[][..]) [INFO] [stderr] | ^^^^^^^^ variant or associated item not found in `interpret::ast::literal::Literal` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/literal.rs:80:19 [INFO] [stderr] | [INFO] [stderr] 80 | Literal::parse(&[Token::Number("10".to_string())]).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&[tokenize::Token; 1]` [INFO] [stderr] [INFO] [stderr] error[E0599]: no variant or associated item named `Unsigned` found for enum `interpret::ast::literal::Literal` in the current scope [INFO] [stderr] --> src/interpret/ast/literal.rs:81:14 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum Literal { [INFO] [stderr] | ---------------- variant or associated item `Unsigned` not found here [INFO] [stderr] ... [INFO] [stderr] 81 | (Literal::Unsigned(10), &[][..]) [INFO] [stderr] | ^^^^^^^^ variant or associated item not found in `interpret::ast::literal::Literal` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | LValue::parse(&tokenize("a").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / assert_eq!( [INFO] [stderr] 77 | | LValue::parse(&tokenize("a").unwrap()).unwrap(), [INFO] [stderr] 78 | | (LValue { [INFO] [stderr] 79 | | id: "a".to_string(), [INFO] [stderr] 80 | | ops: Vec::new(), [INFO] [stderr] 81 | | }, &[][..]) [INFO] [stderr] 82 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:87:27 [INFO] [stderr] | [INFO] [stderr] 87 | LValue::parse(&tokenize("a!").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | / assert_eq!( [INFO] [stderr] 87 | | LValue::parse(&tokenize("a!").unwrap()).unwrap(), [INFO] [stderr] 88 | | (LValue { [INFO] [stderr] 89 | | id: "a".to_string(), [INFO] [stderr] 90 | | ops: vec![Deref::Direct], [INFO] [stderr] 91 | | }, &[][..]) [INFO] [stderr] 92 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:94:27 [INFO] [stderr] | [INFO] [stderr] 94 | LValue::parse(&tokenize("a !").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | / assert_eq!( [INFO] [stderr] 94 | | LValue::parse(&tokenize("a !").unwrap()).unwrap(), [INFO] [stderr] 95 | | (LValue { [INFO] [stderr] 96 | | id: "a".to_string(), [INFO] [stderr] 97 | | ops: vec![Deref::Direct], [INFO] [stderr] 98 | | }, &[][..]) [INFO] [stderr] 99 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:101:27 [INFO] [stderr] | [INFO] [stderr] 101 | LValue::parse(&tokenize("a!!").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | / assert_eq!( [INFO] [stderr] 101 | | LValue::parse(&tokenize("a!!").unwrap()).unwrap(), [INFO] [stderr] 102 | | (LValue { [INFO] [stderr] 103 | | id: "a".to_string(), [INFO] [stderr] 104 | | ops: vec![Deref::Direct, Deref::Direct], [INFO] [stderr] 105 | | }, &[][..]) [INFO] [stderr] 106 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:111:27 [INFO] [stderr] | [INFO] [stderr] 111 | LValue::parse(&tokenize("a[0]").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0599]: no variant or associated item named `Unsigned` found for enum `interpret::ast::literal::Literal` in the current scope [INFO] [stderr] --> src/interpret/ast/lvalue.rs:114:59 [INFO] [stderr] | [INFO] [stderr] 114 | ops: vec![Deref::Index(Term::Lit(Literal::Unsigned(0)))], [INFO] [stderr] | ^^^^^^^^ variant or associated item not found in `interpret::ast::literal::Literal` [INFO] [stderr] | [INFO] [stderr] ::: src/interpret/ast/literal.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum Literal { [INFO] [stderr] | ---------------- variant or associated item `Unsigned` not found here [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | / assert_eq!( [INFO] [stderr] 111 | | LValue::parse(&tokenize("a[0]").unwrap()).unwrap(), [INFO] [stderr] 112 | | (LValue { [INFO] [stderr] 113 | | id: "a".to_string(), [INFO] [stderr] 114 | | ops: vec![Deref::Index(Term::Lit(Literal::Unsigned(0)))], [INFO] [stderr] 115 | | }, &[][..]) [INFO] [stderr] 116 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:118:27 [INFO] [stderr] | [INFO] [stderr] 118 | LValue::parse(&tokenize("a [ 0 ]").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0599]: no variant or associated item named `Unsigned` found for enum `interpret::ast::literal::Literal` in the current scope [INFO] [stderr] --> src/interpret/ast/lvalue.rs:121:59 [INFO] [stderr] | [INFO] [stderr] 121 | ops: vec![Deref::Index(Term::Lit(Literal::Unsigned(0)))], [INFO] [stderr] | ^^^^^^^^ variant or associated item not found in `interpret::ast::literal::Literal` [INFO] [stderr] | [INFO] [stderr] ::: src/interpret/ast/literal.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum Literal { [INFO] [stderr] | ---------------- variant or associated item `Unsigned` not found here [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | / assert_eq!( [INFO] [stderr] 118 | | LValue::parse(&tokenize("a [ 0 ]").unwrap()).unwrap(), [INFO] [stderr] 119 | | (LValue { [INFO] [stderr] 120 | | id: "a".to_string(), [INFO] [stderr] 121 | | ops: vec![Deref::Index(Term::Lit(Literal::Unsigned(0)))], [INFO] [stderr] 122 | | }, &[][..]) [INFO] [stderr] 123 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:125:27 [INFO] [stderr] | [INFO] [stderr] 125 | LValue::parse(&tokenize("a[0][b]").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0599]: no variant or associated item named `Unsigned` found for enum `interpret::ast::literal::Literal` in the current scope [INFO] [stderr] --> src/interpret/ast/lvalue.rs:129:53 [INFO] [stderr] | [INFO] [stderr] 129 | Deref::Index(Term::Lit(Literal::Unsigned(0))), [INFO] [stderr] | ^^^^^^^^ variant or associated item not found in `interpret::ast::literal::Literal` [INFO] [stderr] | [INFO] [stderr] ::: src/interpret/ast/literal.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum Literal { [INFO] [stderr] | ---------------- variant or associated item `Unsigned` not found here [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | / assert_eq!( [INFO] [stderr] 125 | | LValue::parse(&tokenize("a[0][b]").unwrap()).unwrap(), [INFO] [stderr] 126 | | (LValue { [INFO] [stderr] 127 | | id: "a".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 135 | | }, &[][..]) [INFO] [stderr] 136 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:141:27 [INFO] [stderr] | [INFO] [stderr] 141 | LValue::parse(&tokenize("a.b").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | / assert_eq!( [INFO] [stderr] 141 | | LValue::parse(&tokenize("a.b").unwrap()).unwrap(), [INFO] [stderr] 142 | | (LValue { [INFO] [stderr] 143 | | id: "a".to_string(), [INFO] [stderr] 144 | | ops: vec![Deref::Field("b".to_string())], [INFO] [stderr] 145 | | }, &[][..]) [INFO] [stderr] 146 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:148:27 [INFO] [stderr] | [INFO] [stderr] 148 | LValue::parse(&tokenize("a . b").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | / assert_eq!( [INFO] [stderr] 148 | | LValue::parse(&tokenize("a . b").unwrap()).unwrap(), [INFO] [stderr] 149 | | (LValue { [INFO] [stderr] 150 | | id: "a".to_string(), [INFO] [stderr] 151 | | ops: vec![Deref::Field("b".to_string())], [INFO] [stderr] 152 | | }, &[][..]) [INFO] [stderr] 153 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:155:27 [INFO] [stderr] | [INFO] [stderr] 155 | LValue::parse(&tokenize("a.b.c").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/lvalue.rs:154:9 [INFO] [stderr] | [INFO] [stderr] 154 | / assert_eq!( [INFO] [stderr] 155 | | LValue::parse(&tokenize("a.b.c").unwrap()).unwrap(), [INFO] [stderr] 156 | | (LValue { [INFO] [stderr] 157 | | id: "a".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 162 | | }, &[][..]) [INFO] [stderr] 163 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::lvalue::LValue`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::lvalue::LValue` [INFO] [stderr] found tuple `(interpret::ast::lvalue::LValue, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:47:26 [INFO] [stderr] | [INFO] [stderr] 47 | Param::parse(&tokenize("a:bool").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / assert_eq!( [INFO] [stderr] 47 | | Param::parse(&tokenize("a:bool").unwrap()).unwrap(), [INFO] [stderr] 48 | | (Param { [INFO] [stderr] 49 | | name: "a".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 52 | | }, &[][..]) [INFO] [stderr] 53 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::param::Param`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::param::Param` [INFO] [stderr] found tuple `(interpret::ast::param::Param, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:58:26 [INFO] [stderr] | [INFO] [stderr] 58 | Param::parse(&tokenize("var a:bool").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | / assert_eq!( [INFO] [stderr] 58 | | Param::parse(&tokenize("var a:bool").unwrap()).unwrap(), [INFO] [stderr] 59 | | (Param { [INFO] [stderr] 60 | | name: "a".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 63 | | }, &[][..]) [INFO] [stderr] 64 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::param::Param`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::param::Param` [INFO] [stderr] found tuple `(interpret::ast::param::Param, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:69:26 [INFO] [stderr] | [INFO] [stderr] 69 | Param::parse(&tokenize("vara:bool").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / assert_eq!( [INFO] [stderr] 69 | | Param::parse(&tokenize("vara:bool").unwrap()).unwrap(), [INFO] [stderr] 70 | | (Param { [INFO] [stderr] 71 | | name: "vara".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 74 | | }, &[][..]) [INFO] [stderr] 75 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::param::Param`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::param::Param` [INFO] [stderr] found tuple `(interpret::ast::param::Param, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:80:26 [INFO] [stderr] | [INFO] [stderr] 80 | Param::parse(&tokenize("var abc : bool").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/param.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | / assert_eq!( [INFO] [stderr] 80 | | Param::parse(&tokenize("var abc : bool").unwrap()).unwrap(), [INFO] [stderr] 81 | | (Param { [INFO] [stderr] 82 | | name: "abc".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 85 | | }, &[][..]) [INFO] [stderr] 86 | | ); [INFO] [stderr] | |__________^ expected struct `interpret::ast::param::Param`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected struct `interpret::ast::param::Param` [INFO] [stderr] found tuple `(interpret::ast::param::Param, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:362:25 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] 362 | | t.push((id.clone(), init.eval(t)?)); [INFO] [stderr] | | ^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:370:27 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] ... | [INFO] [stderr] 370 | | assert_eq!(final_val, dest.eval(t)?); [INFO] [stderr] | | ^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:384:44 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] ... | [INFO] [stderr] 384 | | Xor(lval, expr) => match (lval.eval(t), expr.eval(t)?) { [INFO] [stderr] | | ^^^^^^^^^^^^^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `std::ops::Try`) [INFO] [stderr] --> src/interpret/ast/statement.rs:386:16 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | _____- [INFO] [stderr] 359 | | use self::Statement::*; [INFO] [stderr] 360 | | match self { [INFO] [stderr] 361 | | Var(id, _, init, block, dest) => { [INFO] [stderr] ... | [INFO] [stderr] 386 | | let pos = t.iter() [INFO] [stderr] | |_______________________________^ [INFO] [stderr] 387 | || .rposition(|var| var.0 == lval.id) [INFO] [stderr] 388 | || .ok_or("variable name not found")?; [INFO] [stderr] | ||__________________________________________________________^ cannot use the `?` operator in a method that returns `()` [INFO] [stderr] ... | [INFO] [stderr] 504 | | //Ok(Value::Nil) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_____- this function should return `Result` or `Option` to accept `?` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::ops::Try` is not implemented for `()` [INFO] [stderr] = note: required by `std::ops::Try::from_error` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/statement.rs:391:17 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn eval(&self, t: &mut Scope) { [INFO] [stderr] | - expected because this return type... [INFO] [stderr] ... [INFO] [stderr] 362 | t.push((id.clone(), init.eval(t)?)); [INFO] [stderr] | - ...is found to be `()` here [INFO] [stderr] ... [INFO] [stderr] 391 | _ => return Err("tried to do something illegal") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found enum `std::result::Result` [INFO] [stderr] | [INFO] [stderr] = note: expected type `()` [INFO] [stderr] found enum `std::result::Result<_, &str>` [INFO] [stderr] = note: to return `impl Trait`, all returned values must be of the same type [INFO] [stderr] = note: for information on `impl Trait`, see [INFO] [stderr] = help: alternatively, create a new `enum` with a variant for each returned type [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `call` found for enum `interpret::value::Value` in the current scope [INFO] [stderr] --> src/interpret/ast/statement.rs:450:7 [INFO] [stderr] | [INFO] [stderr] 450 | .call(vals, t); [INFO] [stderr] | ^^^^ method not found in `interpret::value::Value` [INFO] [stderr] | [INFO] [stderr] ::: src/interpret/value.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub enum Value { [INFO] [stderr] | -------------- method `call` not found for this [INFO] [stderr] | [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following trait defines an item `call`, perhaps you need to implement it: [INFO] [stderr] candidate #1: `std::ops::Fn` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `uncall` found for enum `interpret::value::Value` in the current scope [INFO] [stderr] --> src/interpret/ast/statement.rs:461:7 [INFO] [stderr] | [INFO] [stderr] 461 | .uncall(vals, t); [INFO] [stderr] | ^^^^^^ method not found in `interpret::value::Value` [INFO] [stderr] | [INFO] [stderr] ::: src/interpret/value.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub enum Value { [INFO] [stderr] | -------------- method `uncall` not found for this [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/types.rs:37:19 [INFO] [stderr] | [INFO] [stderr] 37 | Type::parse(&tokenize("bool").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/types.rs:36:6 [INFO] [stderr] | [INFO] [stderr] 36 | assert_eq!( [INFO] [stderr] | _________^ [INFO] [stderr] 37 | | Type::parse(&tokenize("bool").unwrap()).unwrap(), [INFO] [stderr] 38 | | (Type::Bool, &[][..]) [INFO] [stderr] 39 | | ); [INFO] [stderr] | |__________^ expected enum `interpret::ast::types::Type`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected enum `interpret::ast::types::Type` [INFO] [stderr] found tuple `(interpret::ast::types::Type, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/types.rs:44:19 [INFO] [stderr] | [INFO] [stderr] 44 | Type::parse(&tokenize("uint").unwrap()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability [INFO] [stderr] | [INFO] [stderr] = note: expected mutable reference `&mut std::iter::Peekable>` [INFO] [stderr] found reference `&std::vec::Vec` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/interpret/ast/types.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!( [INFO] [stderr] | _________^ [INFO] [stderr] 44 | | Type::parse(&tokenize("uint").unwrap()).unwrap(), [INFO] [stderr] 45 | | (Type::Uint, &[][..]) [INFO] [stderr] 46 | | ); [INFO] [stderr] | |__________^ expected enum `interpret::ast::types::Type`, found tuple [INFO] [stderr] | [INFO] [stderr] = note: expected enum `interpret::ast::types::Type` [INFO] [stderr] found tuple `(interpret::ast::types::Type, &[_])` [INFO] [stderr] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 52 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0412, E0599. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: could not compile `rever`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "aadf9e301342696197956551e3973f5c402bd7b9bca2712638825e720f59af4e"` [INFO] running `"docker" "rm" "-f" "aadf9e301342696197956551e3973f5c402bd7b9bca2712638825e720f59af4e"` [INFO] [stdout] aadf9e301342696197956551e3973f5c402bd7b9bca2712638825e720f59af4e