[INFO] cloning repository https://github.com/BIYUEHU/language-parser
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BIYUEHU/language-parser" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBIYUEHU%2Flanguage-parser", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBIYUEHU%2Flanguage-parser'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9ae4b8322e92a502f3b8dcb9aee804c6ec79f026
[INFO] checking BIYUEHU/language-parser against master#5a45ab9738330fb317d49e3594c2db5248b1e971 for pr-136303
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBIYUEHU%2Flanguage-parser" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/BIYUEHU/language-parser on toolchain 5a45ab9738330fb317d49e3594c2db5248b1e971
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5a45ab9738330fb317d49e3594c2db5248b1e971" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/BIYUEHU/language-parser
[INFO] finished tweaking git repo https://github.com/BIYUEHU/language-parser
[INFO] tweaked toml for git repo https://github.com/BIYUEHU/language-parser written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/BIYUEHU/language-parser 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" "+5a45ab9738330fb317d49e3594c2db5248b1e971" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+5a45ab9738330fb317d49e3594c2db5248b1e971" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2121e1fa66295010f24d68736b202124474e11b6de18cb0abd33095461c84a5a
[INFO] running `Command { std: "docker" "start" "-a" "2121e1fa66295010f24d68736b202124474e11b6de18cb0abd33095461c84a5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2121e1fa66295010f24d68736b202124474e11b6de18cb0abd33095461c84a5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2121e1fa66295010f24d68736b202124474e11b6de18cb0abd33095461c84a5a", kill_on_drop: false }`
[INFO] [stdout] 2121e1fa66295010f24d68736b202124474e11b6de18cb0abd33095461c84a5a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+5a45ab9738330fb317d49e3594c2db5248b1e971" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 54b554c846e7dd6d42dcd71399fc060f1bf8cc9e23974b07df793ef0134cc033
[INFO] running `Command { std: "docker" "start" "-a" "54b554c846e7dd6d42dcd71399fc060f1bf8cc9e23974b07df793ef0134cc033", kill_on_drop: false }`
[INFO] [stderr]     Checking parser v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here
[INFO] [stdout]    --> src/parser.rs:653:19
[INFO] [stdout]     |
[INFO] [stdout] 653 | impl Iterator for Parser {
[INFO] [stdout]     |                   ^^^^^^ expected lifetime parameter
[INFO] [stdout]     |
[INFO] [stdout] help: indicate the anonymous lifetime
[INFO] [stdout]     |
[INFO] [stdout] 653 | impl Iterator for Parser<'_> {
[INFO] [stdout]     |                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here
[INFO] [stdout]    --> src/parser.rs:653:19
[INFO] [stdout]     |
[INFO] [stdout] 653 | impl Iterator for Parser {
[INFO] [stdout]     |                   ^^^^^^ expected lifetime parameter
[INFO] [stdout]     |
[INFO] [stdout] help: indicate the anonymous lifetime
[INFO] [stdout]     |
[INFO] [stdout] 653 | impl Iterator for Parser<'_> {
[INFO] [stdout]     |                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:234:25
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let name = self.consume_identifier()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:237:35
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let type_params = if self.match_token(&Token::Less) {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:234:25
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let name = self.consume_identifier()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:237:35
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let type_params = if self.match_token(&Token::Less) {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:240:34
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 params.push(self.consume_identifier()?);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:241:26
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                          ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:240:34
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 params.push(self.consume_identifier()?);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:245:18
[INFO] [stdout]     |
[INFO] [stdout] 245 |             self.consume(&Token::Greater, "Expect '>' after type parameters")?;
[INFO] [stdout]     |                  ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:241:26
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                          ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:245:18
[INFO] [stdout]     |
[INFO] [stdout] 245 |             self.consume(&Token::Greater, "Expect '>' after type parameters")?;
[INFO] [stdout]     |                  ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:251:14
[INFO] [stdout]     |
[INFO] [stdout] 251 |         self.consume(&Token::Assign, "Expect '=' after type name")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Type` found for enum `Expr`
[INFO] [stdout]    --> src/parser.rs:255:18
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Ok(Expr::Type {
[INFO] [stdout]     |                  ^^^^ variant not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant `Type` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:251:14
[INFO] [stdout]     |
[INFO] [stdout] 251 |         self.consume(&Token::Assign, "Expect '=' after type name")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Type` found for enum `Expr`
[INFO] [stdout]    --> src/parser.rs:255:18
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Ok(Expr::Type {
[INFO] [stdout]     |                  ^^^^ variant not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant `Type` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:267:29
[INFO] [stdout]     |
[INFO] [stdout] 267 |             let name = self.consume_identifier()?;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:269:34
[INFO] [stdout]     |
[INFO] [stdout] 269 |             let fields = if self.match_token(&Token::LeftParen) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:267:29
[INFO] [stdout]     |
[INFO] [stdout] 267 |             let name = self.consume_identifier()?;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:269:34
[INFO] [stdout]     |
[INFO] [stdout] 269 |             let fields = if self.match_token(&Token::LeftParen) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:272:26
[INFO] [stdout]     |
[INFO] [stdout] 272 |                 if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                          ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:272:26
[INFO] [stdout]     |
[INFO] [stdout] 272 |                 if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                          ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:275:34
[INFO] [stdout]     |
[INFO] [stdout] 275 |                         if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:275:34
[INFO] [stdout]     |
[INFO] [stdout] 275 |                         if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:280:22
[INFO] [stdout]     |
[INFO] [stdout] 280 |                 self.consume(&Token::RightParen, "Expect ')' after variant arguments")?;
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:280:22
[INFO] [stdout]     |
[INFO] [stdout] 280 |                 self.consume(&Token::RightParen, "Expect ')' after variant arguments")?;
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:282:28
[INFO] [stdout]     |
[INFO] [stdout] 282 |             } else if self.match_token(&Token::LeftBrace) {
[INFO] [stdout]     |                            ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:282:28
[INFO] [stdout]     |
[INFO] [stdout] 282 |             } else if self.match_token(&Token::LeftBrace) {
[INFO] [stdout]     |                            ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:285:26
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 if !self.check(&Token::RightBrace) {
[INFO] [stdout]     |                          ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:285:26
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 if !self.check(&Token::RightBrace) {
[INFO] [stdout]     |                          ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:287:47
[INFO] [stdout]     |
[INFO] [stdout] 287 |                         let field_name = self.consume_identifier()?;
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:287:47
[INFO] [stdout]     |
[INFO] [stdout] 287 |                         let field_name = self.consume_identifier()?;
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:288:30
[INFO] [stdout]     |
[INFO] [stdout] 288 |                         self.consume(&Token::Colon, "Expect ':' after field name")?;
[INFO] [stdout]     |                              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:288:30
[INFO] [stdout]     |
[INFO] [stdout] 288 |                         self.consume(&Token::Colon, "Expect ':' after field name")?;
[INFO] [stdout]     |                              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:292:34
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:292:34
[INFO] [stdout]     |
[INFO] [stdout] 292 |                         if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:297:22
[INFO] [stdout]     |
[INFO] [stdout] 297 |                 self.consume(&Token::RightBrace, "Expect '}' after record fields")?;
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:297:22
[INFO] [stdout]     |
[INFO] [stdout] 297 |                 self.consume(&Token::RightBrace, "Expect '}' after record fields")?;
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:306:22
[INFO] [stdout]     |
[INFO] [stdout] 306 |             if !self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                      ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Pipe` found for enum `token::Token` in the current scope
[INFO] [stdout]    --> src/parser.rs:306:42
[INFO] [stdout]     |
[INFO] [stdout] 306 |             if !self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                                          ^^^^ variant or associated item not found in `Token`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/token.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Token {
[INFO] [stdout]     | -------------- variant or associated item `Pipe` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:306:22
[INFO] [stdout]     |
[INFO] [stdout] 306 |             if !self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                      ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Pipe` found for enum `Token` in the current scope
[INFO] [stdout]    --> src/parser.rs:306:42
[INFO] [stdout]     |
[INFO] [stdout] 306 |             if !self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                                          ^^^^ variant or associated item not found in `Token`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/token.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Token {
[INFO] [stdout]     | -------------- variant or associated item `Pipe` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:327:17
[INFO] [stdout]     |
[INFO] [stdout] 327 |         if self.match_token(&Token::Arrow) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:327:17
[INFO] [stdout]     |
[INFO] [stdout] 327 |         if self.match_token(&Token::Arrow) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:329:24
[INFO] [stdout]     |
[INFO] [stdout] 329 |         } else if self.match_token(&Token::If) {
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:329:24
[INFO] [stdout]     |
[INFO] [stdout] 329 |         } else if self.match_token(&Token::If) {
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:331:24
[INFO] [stdout]     |
[INFO] [stdout] 331 |         } else if self.match_token(&Token::Match) {
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:333:24
[INFO] [stdout]     |
[INFO] [stdout] 333 |         } else if self.match_token(&Token::Let) {
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:331:24
[INFO] [stdout]     |
[INFO] [stdout] 331 |         } else if self.match_token(&Token::Match) {
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:333:24
[INFO] [stdout]     |
[INFO] [stdout] 333 |         } else if self.match_token(&Token::Let) {
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `peek` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:344:30
[INFO] [stdout]     |
[INFO] [stdout] 344 |             let token = self.peek().map(|t| t.kind.clone());
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peekable` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 344 |             let token = self.peekable().map(|t| t.kind.clone());
[INFO] [stdout]     |                              ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `peek` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:344:30
[INFO] [stdout]     |
[INFO] [stdout] 344 |             let token = self.peek().map(|t| t.kind.clone());
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peekable` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 344 |             let token = self.peekable().map(|t| t.kind.clone());
[INFO] [stdout]     |                              ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:367:26
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let token = self.advance().unwrap();
[INFO] [stdout]     |                          ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Binary` found for enum `Expr`
[INFO] [stdout]    --> src/parser.rs:372:18
[INFO] [stdout]     |
[INFO] [stdout] 372 |         Ok(Expr::Binary {
[INFO] [stdout]     |                  ^^^^^^ variant not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant `Binary` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:367:26
[INFO] [stdout]     |
[INFO] [stdout] 367 |         let token = self.advance().unwrap();
[INFO] [stdout]     |                          ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Binary` found for enum `Expr`
[INFO] [stdout]    --> src/parser.rs:372:18
[INFO] [stdout]     |
[INFO] [stdout] 372 |         Ok(Expr::Binary {
[INFO] [stdout]     |                  ^^^^^^ variant not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant `Binary` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:380:26
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let token = self.advance().unwrap();
[INFO] [stdout]     |                          ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:380:26
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let token = self.advance().unwrap();
[INFO] [stdout]     |                          ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `IntLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:382:36
[INFO] [stdout]     |
[INFO] [stdout] 382 |             Token::Int(i) => Expr::IntLiteral(i),
[INFO] [stdout]     |                                    ^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `IntLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `FloatLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:383:38
[INFO] [stdout]     |
[INFO] [stdout] 383 |             Token::Float(f) => Expr::FloatLiteral(f),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `FloatLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `IntLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:382:36
[INFO] [stdout]     |
[INFO] [stdout] 382 |             Token::Int(i) => Expr::IntLiteral(i),
[INFO] [stdout]     |                                    ^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `IntLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `FloatLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:383:38
[INFO] [stdout]     |
[INFO] [stdout] 383 |             Token::Float(f) => Expr::FloatLiteral(f),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `FloatLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `StringLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:384:39
[INFO] [stdout]     |
[INFO] [stdout] 384 |             Token::String(s) => Expr::StringLiteral(s),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `StringLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `CharLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:385:37
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Token::Char(c) => Expr::CharLiteral(c),
[INFO] [stdout]     |                                     ^^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `CharLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `StringLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:384:39
[INFO] [stdout]     |
[INFO] [stdout] 384 |             Token::String(s) => Expr::StringLiteral(s),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `StringLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `CharLiteral` found for enum `Expr` in the current scope
[INFO] [stdout]    --> src/parser.rs:385:37
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Token::Char(c) => Expr::CharLiteral(c),
[INFO] [stdout]     |                                     ^^^^^^^^^^^ variant or associated item not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant or associated item `CharLiteral` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:389:22
[INFO] [stdout]     |
[INFO] [stdout] 389 |                 self.consume(&Token::RightParen, "Expect ')' after expression")?;
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:389:22
[INFO] [stdout]     |
[INFO] [stdout] 389 |                 self.consume(&Token::RightParen, "Expect ')' after expression")?;
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:407:30
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let params = if self.check(&Token::LeftParen) {
[INFO] [stdout]     |                              ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:407:30
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let params = if self.check(&Token::LeftParen) {
[INFO] [stdout]     |                              ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |             vec![(self.consume_identifier()?, None)]
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |             vec![(self.consume_identifier()?, None)]
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:414:17
[INFO] [stdout]     |
[INFO] [stdout] 414 |         if self.match_token(&Token::Arrow) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `type_params` in initializer of `Expr`
[INFO] [stdout]    --> src/parser.rs:416:16
[INFO] [stdout]     |
[INFO] [stdout] 416 |             Ok(Expr::Lambda { params, body })
[INFO] [stdout]     |                ^^^^^^^^^^^^ missing `type_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:414:17
[INFO] [stdout]     |
[INFO] [stdout] 414 |         if self.match_token(&Token::Arrow) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `type_params` in initializer of `Expr`
[INFO] [stdout]    --> src/parser.rs:416:16
[INFO] [stdout]     |
[INFO] [stdout] 416 |             Ok(Expr::Lambda { params, body })
[INFO] [stdout]     |                ^^^^^^^^^^^^ missing `type_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:424:14
[INFO] [stdout]     |
[INFO] [stdout] 424 |         self.consume(&Token::LeftParen, "Expect '(' after lambda")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:424:14
[INFO] [stdout]     |
[INFO] [stdout] 424 |         self.consume(&Token::LeftParen, "Expect '(' after lambda")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:427:18
[INFO] [stdout]     |
[INFO] [stdout] 427 |         if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                  ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:427:18
[INFO] [stdout]     |
[INFO] [stdout] 427 |         if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                  ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:429:33
[INFO] [stdout]     |
[INFO] [stdout] 429 |                 let name = self.consume_identifier()?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:430:47
[INFO] [stdout]     |
[INFO] [stdout] 430 |                 let type_annotation = if self.match_token(&Token::Colon) {
[INFO] [stdout]     |                                               ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume_identifier` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:429:33
[INFO] [stdout]     |
[INFO] [stdout] 429 |                 let name = self.consume_identifier()?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:430:47
[INFO] [stdout]     |
[INFO] [stdout] 430 |                 let type_annotation = if self.match_token(&Token::Colon) {
[INFO] [stdout]     |                                               ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:437:26
[INFO] [stdout]     |
[INFO] [stdout] 437 |                 if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                          ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:437:26
[INFO] [stdout]     |
[INFO] [stdout] 437 |                 if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                          ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:443:14
[INFO] [stdout]     |
[INFO] [stdout] 443 |         self.consume(&Token::RightParen, "Expect ')' after parameters")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:443:14
[INFO] [stdout]     |
[INFO] [stdout] 443 |         self.consume(&Token::RightParen, "Expect ')' after parameters")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 |         self.consume(&Token::Then, "期望 'then' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:452:14
[INFO] [stdout]     |
[INFO] [stdout] 452 |         self.consume(&Token::Then, "期望 'then' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:455:14
[INFO] [stdout]     |
[INFO] [stdout] 455 |         self.consume(&Token::Else, "期望 'else' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:455:14
[INFO] [stdout]     |
[INFO] [stdout] 455 |         self.consume(&Token::Else, "期望 'else' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:470:14
[INFO] [stdout]     |
[INFO] [stdout] 470 |         self.consume(&Token::Then, "期望 'then' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:470:14
[INFO] [stdout]     |
[INFO] [stdout] 470 |         self.consume(&Token::Then, "期望 'then' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:477:20
[INFO] [stdout]     |
[INFO] [stdout] 477 |         while self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                    ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Pipe` found for enum `token::Token` in the current scope
[INFO] [stdout]    --> src/parser.rs:477:40
[INFO] [stdout]     |
[INFO] [stdout] 477 |         while self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                                        ^^^^ variant or associated item not found in `Token`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/token.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Token {
[INFO] [stdout]     | -------------- variant or associated item `Pipe` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:477:20
[INFO] [stdout]     |
[INFO] [stdout] 477 |         while self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                    ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Pipe` found for enum `Token` in the current scope
[INFO] [stdout]    --> src/parser.rs:477:40
[INFO] [stdout]     |
[INFO] [stdout] 477 |         while self.match_token(&Token::Pipe) {
[INFO] [stdout]     |                                        ^^^^ variant or associated item not found in `Token`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/token.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Token {
[INFO] [stdout]     | -------------- variant or associated item `Pipe` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:487:14
[INFO] [stdout]     |
[INFO] [stdout] 487 |         self.consume(&Token::Arrow, "期望 '=>' 箭头")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `peek` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:496:14
[INFO] [stdout]     |
[INFO] [stdout] 495 |           let token = self
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 496 | |             .peek()
[INFO] [stdout]     | |_____________-^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peekable` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 496 |             .peekable()
[INFO] [stdout]     |              ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:487:14
[INFO] [stdout]     |
[INFO] [stdout] 487 |         self.consume(&Token::Arrow, "期望 '=>' 箭头")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `peek` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:496:14
[INFO] [stdout]     |
[INFO] [stdout] 495 |           let token = self
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 496 | |             .peek()
[INFO] [stdout]     | |_____________-^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peekable` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 496 |             .peekable()
[INFO] [stdout]     |              ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:502:22
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 self.advance(); // 前进到下一个 token
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:502:22
[INFO] [stdout]     |
[INFO] [stdout] 502 |                 self.advance(); // 前进到下一个 token
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:506:22
[INFO] [stdout]     |
[INFO] [stdout] 506 |                 self.advance(); // 消费标识符
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:507:25
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 if self.match_token(&Token::LeftParen) {
[INFO] [stdout]     |                         ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:506:22
[INFO] [stdout]     |
[INFO] [stdout] 506 |                 self.advance(); // 消费标识符
[INFO] [stdout]     |                      ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:510:30
[INFO] [stdout]     |
[INFO] [stdout] 510 |                     if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                              ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:507:25
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 if self.match_token(&Token::LeftParen) {
[INFO] [stdout]     |                         ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:510:30
[INFO] [stdout]     |
[INFO] [stdout] 510 |                     if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                              ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:513:38
[INFO] [stdout]     |
[INFO] [stdout] 513 | ...                   if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                                ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:518:26
[INFO] [stdout]     |
[INFO] [stdout] 518 |                     self.consume(&Token::RightParen, "期望 ')'")?;
[INFO] [stdout]     |                          ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:513:38
[INFO] [stdout]     |
[INFO] [stdout] 513 | ...                   if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                                ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:536:31
[INFO] [stdout]     |
[INFO] [stdout] 536 |         let name = match self.advance() {
[INFO] [stdout]     |                               ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0026]: struct `token::TokenData` does not have a field named `kind`
[INFO] [stdout]    --> src/parser.rs:538:17
[INFO] [stdout]     |
[INFO] [stdout] 538 |                 kind: Token::Ident(name),
[INFO] [stdout]     |                 ^^^^ struct `token::TokenData` does not have this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:518:26
[INFO] [stdout]     |
[INFO] [stdout] 518 |                     self.consume(&Token::RightParen, "期望 ')'")?;
[INFO] [stdout]     |                          ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:557:39
[INFO] [stdout]     |
[INFO] [stdout] 557 |         let type_annotation = if self.match_token(&Token::Colon) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:536:31
[INFO] [stdout]     |
[INFO] [stdout] 536 |         let name = match self.advance() {
[INFO] [stdout]     |                               ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0026]: struct `TokenData` does not have a field named `kind`
[INFO] [stdout]    --> src/parser.rs:538:17
[INFO] [stdout]     |
[INFO] [stdout] 538 |                 kind: Token::Ident(name),
[INFO] [stdout]     |                 ^^^^ struct `TokenData` does not have this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:557:39
[INFO] [stdout]     |
[INFO] [stdout] 557 |         let type_annotation = if self.match_token(&Token::Colon) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:563:14
[INFO] [stdout]     |
[INFO] [stdout] 563 |         self.consume(&Token::Assign, "期望 '='")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:566:14
[INFO] [stdout]     |
[INFO] [stdout] 566 |         self.consume(&Token::In, "期望 'in' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Let` found for enum `Expr`
[INFO] [stdout]    --> src/parser.rs:569:18
[INFO] [stdout]     |
[INFO] [stdout] 569 |         Ok(Expr::Let {
[INFO] [stdout]     |                  ^^^ variant not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant `Let` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:563:14
[INFO] [stdout]     |
[INFO] [stdout] 563 |         self.consume(&Token::Assign, "期望 '='")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:582:17
[INFO] [stdout]     |
[INFO] [stdout] 582 |         if self.match_token(&Token::Less) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:584:22
[INFO] [stdout]     |
[INFO] [stdout] 584 |             if !self.check(&Token::Greater) {
[INFO] [stdout]     |                      ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:566:14
[INFO] [stdout]     |
[INFO] [stdout] 566 |         self.consume(&Token::In, "期望 'in' 关键字")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant named `Let` found for enum `Expr`
[INFO] [stdout]    --> src/parser.rs:569:18
[INFO] [stdout]     |
[INFO] [stdout] 569 |         Ok(Expr::Let {
[INFO] [stdout]     |                  ^^^ variant not found in `Expr`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/ast.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout] 4   | pub enum Expr {
[INFO] [stdout]     | ------------- variant `Let` not found here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:586:32
[INFO] [stdout]     |
[INFO] [stdout] 586 |                     match self.advance() {
[INFO] [stdout]     |                                ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0026]: struct `token::TokenData` does not have a field named `kind`
[INFO] [stdout]    --> src/parser.rs:588:29
[INFO] [stdout]     |
[INFO] [stdout] 588 | ...                   kind: Token::Ident(name),
[INFO] [stdout]     |                       ^^^^ struct `token::TokenData` does not have this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:582:17
[INFO] [stdout]     |
[INFO] [stdout] 582 |         if self.match_token(&Token::Less) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:584:22
[INFO] [stdout]     |
[INFO] [stdout] 584 |             if !self.check(&Token::Greater) {
[INFO] [stdout]     |                      ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:607:30
[INFO] [stdout]     |
[INFO] [stdout] 607 |                     if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                              ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:612:18
[INFO] [stdout]     |
[INFO] [stdout] 612 |             self.consume(&Token::Greater, "期望 '>'")?;
[INFO] [stdout]     |                  ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `advance` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:586:32
[INFO] [stdout]     |
[INFO] [stdout] 586 |                     match self.advance() {
[INFO] [stdout]     |                                ^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0026]: struct `TokenData` does not have a field named `kind`
[INFO] [stdout]    --> src/parser.rs:588:29
[INFO] [stdout]     |
[INFO] [stdout] 588 | ...                   kind: Token::Ident(name),
[INFO] [stdout]     |                       ^^^^ struct `TokenData` does not have this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:617:14
[INFO] [stdout]     |
[INFO] [stdout] 617 |         self.consume(&Token::LeftParen, "期望 '('")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:619:18
[INFO] [stdout]     |
[INFO] [stdout] 619 |         if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                  ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:607:30
[INFO] [stdout]     |
[INFO] [stdout] 607 |                     if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                              ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:622:26
[INFO] [stdout]     |
[INFO] [stdout] 622 |                 if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                          ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:612:18
[INFO] [stdout]     |
[INFO] [stdout] 612 |             self.consume(&Token::Greater, "期望 '>'")?;
[INFO] [stdout]     |                  ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:627:14
[INFO] [stdout]     |
[INFO] [stdout] 627 |         self.consume(&Token::RightParen, "期望 ')'")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0559]: variant `Expr::Call` has no field named `type_args`
[INFO] [stdout]    --> src/parser.rs:632:13
[INFO] [stdout]     |
[INFO] [stdout] 632 |             type_args,
[INFO] [stdout]     |             ^^^^^^^^^ `Expr::Call` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:617:14
[INFO] [stdout]     |
[INFO] [stdout] 617 |         self.consume(&Token::LeftParen, "期望 '('")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:641:21
[INFO] [stdout]     |
[INFO] [stdout] 641 |         while !self.check(&Token::RightBrace) && !self.is_at_end() {
[INFO] [stdout]     |                     ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:619:18
[INFO] [stdout]     |
[INFO] [stdout] 619 |         if !self.check(&Token::RightParen) {
[INFO] [stdout]     |                  ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_at_end` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:641:56
[INFO] [stdout]     |
[INFO] [stdout] 641 |         while !self.check(&Token::RightBrace) && !self.is_at_end() {
[INFO] [stdout]     |                                                        ^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:622:26
[INFO] [stdout]     |
[INFO] [stdout] 622 |                 if !self.match_token(&Token::Comma) {
[INFO] [stdout]     |                          ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `declaration` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:642:35
[INFO] [stdout]     |
[INFO] [stdout] 642 |             expressions.push(self.declaration()?);
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `let_declaration` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 642 |             expressions.push(self.let_declaration()?);
[INFO] [stdout]     |                                   ~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:627:14
[INFO] [stdout]     |
[INFO] [stdout] 627 |         self.consume(&Token::RightParen, "期望 ')'")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0559]: variant `Expr::Call` has no field named `type_args`
[INFO] [stdout]    --> src/parser.rs:632:13
[INFO] [stdout]     |
[INFO] [stdout] 632 |             type_args,
[INFO] [stdout]     |             ^^^^^^^^^ `Expr::Call` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:645:24
[INFO] [stdout]     |
[INFO] [stdout] 645 |             while self.match_token(&Token::Semicolon) {}
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `check` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:641:21
[INFO] [stdout]     |
[INFO] [stdout] 641 |         while !self.check(&Token::RightBrace) && !self.is_at_end() {
[INFO] [stdout]     |                     ^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_at_end` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:641:56
[INFO] [stdout]     |
[INFO] [stdout] 641 |         while !self.check(&Token::RightBrace) && !self.is_at_end() {
[INFO] [stdout]     |                                                        ^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:648:14
[INFO] [stdout]     |
[INFO] [stdout] 648 |         self.consume(&Token::RightBrace, "期望 '}'")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `declaration` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:642:35
[INFO] [stdout]     |
[INFO] [stdout] 642 |             expressions.push(self.declaration()?);
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `let_declaration` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 642 |             expressions.push(self.let_declaration()?);
[INFO] [stdout]     |                                   ~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_token` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:645:24
[INFO] [stdout]     |
[INFO] [stdout] 645 |             while self.match_token(&Token::Semicolon) {}
[INFO] [stdout]     |                        ^^^^^^^^^^^ method not found in `&mut Parser<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `consume` found for mutable reference `&mut Parser<'a>` in the current scope
[INFO] [stdout]    --> src/parser.rs:648:14
[INFO] [stdout]     |
[INFO] [stdout] 648 |         self.consume(&Token::RightBrace, "期望 '}'")?;
[INFO] [stdout]     |              ^^^^^^^ method not found in `&mut Parser<'a>`
[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 `consume`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BufRead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0026, E0063, E0559, E0599, E0726.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0026`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0026, E0063, E0559, E0599, E0726.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0026`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `parser` (lib test) due to 79 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `parser` (lib) due to 79 previous errors
[INFO] running `Command { std: "docker" "inspect" "54b554c846e7dd6d42dcd71399fc060f1bf8cc9e23974b07df793ef0134cc033", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54b554c846e7dd6d42dcd71399fc060f1bf8cc9e23974b07df793ef0134cc033", kill_on_drop: false }`
[INFO] [stdout] 54b554c846e7dd6d42dcd71399fc060f1bf8cc9e23974b07df793ef0134cc033
