[INFO] cloning repository https://github.com/mjibson/bursera
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mjibson/bursera" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmjibson%2Fbursera", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmjibson%2Fbursera'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9f36afd7f4d9293250ec173cee328c9761a0073c
[INFO] testing mjibson/bursera against 1.90.0 for beta-1.91-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmjibson%2Fbursera" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mjibson/bursera
[INFO] finished tweaking git repo https://github.com/mjibson/bursera
[INFO] tweaked toml for git repo https://github.com/mjibson/bursera written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mjibson/bursera on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mjibson/bursera 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" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/MaterializeInc/materialize.git`
[INFO] [stderr]     Updating git submodule `https://github.com/MaterializeInc/sqllogictest.git`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num-complex v0.4.4
[INFO] [stderr]   Downloaded enum-kinds v0.5.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.51
[INFO] [stderr]   Downloaded uncased v0.9.9
[INFO] [stderr]   Downloaded num v0.4.1
[INFO] [stderr]   Downloaded thiserror v1.0.51
[INFO] [stderr]   Downloaded proc-macro2 v1.0.71
[INFO] [stderr]   Downloaded pretty v0.12.3
[INFO] [stderr]   Downloaded anyhow v1.0.76
[INFO] [stderr]   Downloaded num-bigint v0.4.4
[INFO] [stderr]   Downloaded syn v2.0.42
[INFO] [stderr]   Downloaded serde_json v1.0.108
[INFO] [stderr]   Downloaded libc v0.2.151
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d4d1e8b5cd1ae21d9b4bab7011e93a8a929ae438f5cfded82d456779ec788b6a
[INFO] running `Command { std: "docker" "start" "-a" "d4d1e8b5cd1ae21d9b4bab7011e93a8a929ae438f5cfded82d456779ec788b6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4d1e8b5cd1ae21d9b4bab7011e93a8a929ae438f5cfded82d456779ec788b6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4d1e8b5cd1ae21d9b4bab7011e93a8a929ae438f5cfded82d456779ec788b6a", kill_on_drop: false }`
[INFO] [stdout] d4d1e8b5cd1ae21d9b4bab7011e93a8a929ae438f5cfded82d456779ec788b6a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2e931b9e46cfbc4a983db42930b5c436dfa92dee5bb9d130473b924b7d1124e4
[INFO] running `Command { std: "docker" "start" "-a" "2e931b9e46cfbc4a983db42930b5c436dfa92dee5bb9d130473b924b7d1124e4", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.71
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling libc v0.2.151
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]    Compiling anyhow v1.0.76
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling serde_json v1.0.108
[INFO] [stderr]    Compiling pin-project-lite v0.2.13
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling ryu v1.0.16
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling uncased v0.9.9
[INFO] [stderr]    Compiling itoa v1.0.10
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling phf_shared v0.11.2
[INFO] [stderr]    Compiling thread_local v1.1.7
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling phf v0.11.2
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling thiserror v1.0.51
[INFO] [stderr]    Compiling countme v3.0.1
[INFO] [stderr]    Compiling phf_codegen v0.11.2
[INFO] [stderr]    Compiling text-size v1.1.1
[INFO] [stderr]    Compiling typed-arena v2.0.2
[INFO] [stderr]    Compiling unicode-width v0.1.11
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling bytesize v1.3.0
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling pretty v0.12.3
[INFO] [stderr]    Compiling rowan v0.15.15
[INFO] [stderr]    Compiling syn v2.0.42
[INFO] [stderr]    Compiling regex-automata v0.4.3
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling psm v0.1.21
[INFO] [stderr]    Compiling stacker v0.1.15
[INFO] [stderr]    Compiling num-complex v0.4.4
[INFO] [stderr]    Compiling matchers v0.1.0
[INFO] [stderr]    Compiling regex v1.10.2
[INFO] [stderr]    Compiling num v0.4.1
[INFO] [stderr]    Compiling mz-test-macro v0.1.0 (https://github.com/MaterializeInc/materialize.git?branch=main#b3ef64dc)
[INFO] [stderr]    Compiling ctor v0.1.26
[INFO] [stderr]    Compiling enum-kinds v0.5.1
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]    Compiling pin-project-internal v1.1.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling thiserror-impl v1.0.51
[INFO] [stderr]    Compiling pin-project v1.1.3
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling mz-ore v0.1.0 (https://github.com/MaterializeInc/materialize.git?branch=main#b3ef64dc)
[INFO] [stderr]    Compiling tracing-serde v0.1.3
[INFO] [stderr]    Compiling mz-walkabout v0.0.0 (https://github.com/MaterializeInc/materialize.git?branch=main#b3ef64dc)
[INFO] [stderr]    Compiling mz-sql-lexer v0.0.0 (https://github.com/MaterializeInc/materialize.git?branch=main#b3ef64dc)
[INFO] [stderr]    Compiling mz-sql-parser v0.0.0 (https://github.com/MaterializeInc/materialize.git?branch=main#b3ef64dc)
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer)
[INFO] [stderr]    Compiling syntax v0.1.0 (/opt/rustwide/workdir/syntax)
[INFO] [stderr]    Compiling parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stdout] error: cannot find macro `maybe` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 maybe!(self.maybe_parse(|parser| parser.parse_derived_table_factor(NotLateral)));
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `JOIN` is not bound in all patterns
[INFO] [stdout]    --> parser/src/lib.rs:174:25
[INFO] [stdout]     |
[INFO] [stdout] 174 |                         Some(INNER) | Some(JOIN) => {
[INFO] [stdout]     |                         ^^^^^^^^^^^        ---- variable not in all patterns
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         pattern doesn't bind `JOIN`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on constants, use the full path in the pattern
[INFO] [stdout]     |
[INFO] [stdout] 174 |                         Some(INNER) | Some(crate::kw::JOIN) => {
[INFO] [stdout]     |                                            +++++++++++
[INFO] [stdout] 174 |                         Some(INNER) | Some(mz_sql_lexer::keywords::JOIN) => {
[INFO] [stdout]     |                                            ++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `INNER` is not bound in all patterns
[INFO] [stdout]    --> parser/src/lib.rs:174:39
[INFO] [stdout]     |
[INFO] [stdout] 174 |                         Some(INNER) | Some(JOIN) => {
[INFO] [stdout]     |                              -----    ^^^^^^^^^^ pattern doesn't bind `INNER`
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on constants, use the full path in the pattern
[INFO] [stdout]     |
[INFO] [stdout] 174 |                         Some(crate::kw::INNER) | Some(JOIN) => {
[INFO] [stdout]     |                              +++++++++++
[INFO] [stdout] 174 |                         Some(mz_sql_lexer::keywords::INNER) | Some(JOIN) => {
[INFO] [stdout]     |                              ++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `RIGHT` is not bound in all patterns
[INFO] [stdout]    --> parser/src/lib.rs:179:25
[INFO] [stdout]     |
[INFO] [stdout] 179 |                         Some(kw @ LEFT) | Some(kw @ RIGHT) | Some(kw @ FULL) => {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^             -----    ^^^^^^^^^^^^^^^ pattern doesn't bind `RIGHT`
[INFO] [stdout]     |                         |                           |
[INFO] [stdout]     |                         |                           variable not in all patterns
[INFO] [stdout]     |                         pattern doesn't bind `RIGHT`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on constants, use the full path in the pattern
[INFO] [stdout]     |
[INFO] [stdout] 179 |                         Some(kw @ LEFT) | Some(kw @ crate::kw::RIGHT) | Some(kw @ FULL) => {
[INFO] [stdout]     |                                                     +++++++++++
[INFO] [stdout] 179 |                         Some(kw @ LEFT) | Some(kw @ mz_sql_lexer::keywords::RIGHT) | Some(kw @ FULL) => {
[INFO] [stdout]     |                                                     ++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `FULL` is not bound in all patterns
[INFO] [stdout]    --> parser/src/lib.rs:179:25
[INFO] [stdout]     |
[INFO] [stdout] 179 |                         Some(kw @ LEFT) | Some(kw @ RIGHT) | Some(kw @ FULL) => {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^             ---- variable not in all patterns
[INFO] [stdout]     |                         |                 |
[INFO] [stdout]     |                         |                 pattern doesn't bind `FULL`
[INFO] [stdout]     |                         pattern doesn't bind `FULL`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on constants, use the full path in the pattern
[INFO] [stdout]     |
[INFO] [stdout] 179 |                         Some(kw @ LEFT) | Some(kw @ RIGHT) | Some(kw @ crate::kw::FULL) => {
[INFO] [stdout]     |                                                                        +++++++++++
[INFO] [stdout] 179 |                         Some(kw @ LEFT) | Some(kw @ RIGHT) | Some(kw @ mz_sql_lexer::keywords::FULL) => {
[INFO] [stdout]     |                                                                        ++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `LEFT` is not bound in all patterns
[INFO] [stdout]    --> parser/src/lib.rs:179:43
[INFO] [stdout]     |
[INFO] [stdout] 179 |                         Some(kw @ LEFT) | Some(kw @ RIGHT) | Some(kw @ FULL) => {
[INFO] [stdout]     |                                   ----    ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^ pattern doesn't bind `LEFT`
[INFO] [stdout]     |                                   |       |
[INFO] [stdout]     |                                   |       pattern doesn't bind `LEFT`
[INFO] [stdout]     |                                   variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on constants, use the full path in the pattern
[INFO] [stdout]     |
[INFO] [stdout] 179 |                         Some(kw @ crate::kw::LEFT) | Some(kw @ RIGHT) | Some(kw @ FULL) => {
[INFO] [stdout]     |                                   +++++++++++
[INFO] [stdout] 179 |                         Some(kw @ mz_sql_lexer::keywords::LEFT) | Some(kw @ RIGHT) | Some(kw @ FULL) => {
[INFO] [stdout]     |                                   ++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Join` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     Join {
[INFO] [stdout]     |                     ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these variants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::Keyword::Join;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::Keyword::Join;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Join` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:208:21
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     Join {
[INFO] [stdout]     |                     ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these variants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::Keyword::Join;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::Keyword::Join;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `TableWithJoins` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:215:16
[INFO] [stdout]     |
[INFO] [stdout] 215 |             Ok(TableWithJoins { relation, joins })
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Lateral` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:221:60
[INFO] [stdout]     |
[INFO] [stdout] 221 |                     return self.parse_derived_table_factor(Lateral);
[INFO] [stdout]     |                                                            ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these unit variants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::Keyword::Lateral;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::Keyword::Lateral;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `ROWS` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:222:49
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 } else if self.parse_keywords(&[ROWS, FROM]) {
[INFO] [stdout]     |                                                 ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these constants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::kw::ROWS;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::ROWS;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Function` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |                         function: Function {
[INFO] [stdout]     |                                   ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these variants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::Keyword::Function;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::Keyword::Function;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `ROWS` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |             } else if self.parse_keywords(&[ROWS, FROM]) {
[INFO] [stdout]     |                                             ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these constants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::kw::ROWS;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::ROWS;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `WITH` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:301:65
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     let with_ordinality = self.parse_keywords(&[WITH, ORDINALITY]);
[INFO] [stdout]     |                                                                 ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these constants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::kw::WITH;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::WITH;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `ORDINALITY` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:301:71
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     let with_ordinality = self.parse_keywords(&[WITH, ORDINALITY]);
[INFO] [stdout]     |                                                                       ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these constants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::kw::ORDINALITY;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::ORDINALITY;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Function` in this scope
[INFO] [stdout]    --> parser/src/lib.rs:303:35
[INFO] [stdout]     |
[INFO] [stdout] 303 |                         function: Function {
[INFO] [stdout]     |                                   ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these variants
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::Keyword::Function;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use mz_sql_lexer::keywords::Keyword::Function;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_select_item` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:123:49
[INFO] [stdout]     |
[INFO] [stdout] 123 | ...                   projection.push(slf.parse_select_item()?);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `parse_select` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 123 -                             projection.push(slf.parse_select_item()?);
[INFO] [stdout] 123 +                             projection.push(slf.parse_select()?);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `JoinOperator`
[INFO] [stdout]    --> parser/src/lib.rs:163:40
[INFO] [stdout]     |
[INFO] [stdout] 163 |                         join_operator: JoinOperator::CrossJoin,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^ use of undeclared type `JoinOperator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied
[INFO] [stdout]    --> parser/src/lib.rs:167:79
[INFO] [stdout]     |
[INFO] [stdout] 167 |                     let peek_keyword = if let Some(Token::Keyword(kw)) = self.peek_token() {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^-- argument #1 of type `&lexer::Token` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> parser/src/lib.rs:520:12
[INFO] [stdout]     |
[INFO] [stdout] 520 |         fn peek_token(&self, tok: &Token) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^        -----------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 167 |                     let peek_keyword = if let Some(Token::Keyword(kw)) = self.peek_token(/* &lexer::Token */) {
[INFO] [stdout]     |                                                                                          +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> parser/src/lib.rs:167:47
[INFO] [stdout]     |
[INFO] [stdout] 167 |                     let peek_keyword = if let Some(Token::Keyword(kw)) = self.peek_token() {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^   ----------------- this expression has type `bool`
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               expected `bool`, found `Option<_>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type `bool`
[INFO] [stdout]                found enum `Option<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `JoinOperator`
[INFO] [stdout]    --> parser/src/lib.rs:177:29
[INFO] [stdout]     |
[INFO] [stdout] 177 | ...                   JoinOperator::Inner
[INFO] [stdout]     |                       ^^^^^^^^^^^^ use of undeclared type `JoinOperator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `next_token` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:180:42
[INFO] [stdout]     |
[INFO] [stdout] 180 | ...                   let _ = self.next_token();
[INFO] [stdout]     |                                    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peek_token` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |         fn peek_token(&self, tok: &Token) -> bool {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `JoinOperator`
[INFO] [stdout]    --> parser/src/lib.rs:184:41
[INFO] [stdout]     |
[INFO] [stdout] 184 | ...                   LEFT => JoinOperator::LeftOuter,
[INFO] [stdout]     |                               ^^^^^^^^^^^^ use of undeclared type `JoinOperator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `JoinOperator`
[INFO] [stdout]    --> parser/src/lib.rs:185:42
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...                   RIGHT => JoinOperator::RightOuter,
[INFO] [stdout]     |                                ^^^^^^^^^^^^ use of undeclared type `JoinOperator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `JoinOperator`
[INFO] [stdout]    --> parser/src/lib.rs:186:41
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...                   FULL => JoinOperator::FullOuter,
[INFO] [stdout]     |                               ^^^^^^^^^^^^ use of undeclared type `JoinOperator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `expected` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:191:41
[INFO] [stdout]     |
[INFO] [stdout] 191 | ...                   return self.expected(
[INFO] [stdout]     |                              -----^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `expect_keyword` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |         fn expect_keyword(&mut self, kw: Keyword) -> Result<(), String> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `peek_pos` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:192:38
[INFO] [stdout]     |
[INFO] [stdout] 192 | ...                   self.peek_pos(),
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peek` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |         fn peek(&self, offset: usize) -> Option<&Token> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied
[INFO] [stdout]    --> parser/src/lib.rs:194:38
[INFO] [stdout]     |
[INFO] [stdout] 194 | ...                   self.peek_token(),
[INFO] [stdout]     |                            ^^^^^^^^^^-- argument #1 of type `&lexer::Token` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> parser/src/lib.rs:520:12
[INFO] [stdout]     |
[INFO] [stdout] 520 |         fn peek_token(&self, tok: &Token) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^        -----------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 194 |                                 self.peek_token(/* &lexer::Token */),
[INFO] [stdout]     |                                                 +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `expected` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:198:41
[INFO] [stdout]     |
[INFO] [stdout] 198 | ...                   return self.expected(
[INFO] [stdout]     |                              -----^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `expect_keyword` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |         fn expect_keyword(&mut self, kw: Keyword) -> Result<(), String> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `peek_pos` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:199:38
[INFO] [stdout]     |
[INFO] [stdout] 199 | ...                   self.peek_pos(),
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peek` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |         fn peek(&self, offset: usize) -> Option<&Token> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied
[INFO] [stdout]    --> parser/src/lib.rs:201:38
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...                   self.peek_token(),
[INFO] [stdout]     |                            ^^^^^^^^^^-- argument #1 of type `&lexer::Token` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> parser/src/lib.rs:520:12
[INFO] [stdout]     |
[INFO] [stdout] 520 |         fn peek_token(&self, tok: &Token) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^        -----------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 201 |                                 self.peek_token(/* &lexer::Token */),
[INFO] [stdout]     |                                                 +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_join_constraint` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:207:48
[INFO] [stdout]     |
[INFO] [stdout] 207 |                     let join_constraint = self.parse_join_constraint(natural)?;
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `parse_ident` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |         fn parse_ident(&mut self) -> Result<(), String> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_derived_table_factor` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:221:33
[INFO] [stdout]     |
[INFO] [stdout] 221 |                     return self.parse_derived_table_factor(Lateral);
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `parse_table_factor` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         fn parse_table_factor(&mut self) -> Result<(), String> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_rows_from` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:223:33
[INFO] [stdout]     |
[INFO] [stdout] 223 |                     return self.parse_rows_from();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `parse_drop` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 223 -                     return self.parse_rows_from();
[INFO] [stdout] 223 +                     return self.parse_drop();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_raw_name` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:225:37
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     let name = self.parse_raw_name()?;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_optional_args` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:227:37
[INFO] [stdout]     |
[INFO] [stdout] 227 |                     let args = self.parse_optional_args(false)?;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_optional_table_alias` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:228:38
[INFO] [stdout]     |
[INFO] [stdout] 228 |                     let alias = self.parse_optional_table_alias()?;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `relation` on type `()`
[INFO] [stdout]    --> parser/src/lib.rs:279:39
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 match table_and_joins.relation {
[INFO] [stdout]     |                                       ^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `joins` on type `()`
[INFO] [stdout]    --> parser/src/lib.rs:282:44
[INFO] [stdout]     |
[INFO] [stdout] 282 |                         if table_and_joins.joins.is_empty() {
[INFO] [stdout]     |                                            ^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `expected` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:285:34
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...                   self.expected(self.peek_pos(), "joined table", self.peek_token())?
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `expect_keyword` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |         fn expect_keyword(&mut self, kw: Keyword) -> Result<(), String> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `peek_pos` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:285:48
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...                   self.expected(self.peek_pos(), "joined table", self.peek_token())?
[INFO] [stdout]     |                                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `peek` with a similar name, but with different arguments
[INFO] [stdout]    --> parser/src/lib.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |         fn peek(&self, offset: usize) -> Option<&Token> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied
[INFO] [stdout]    --> parser/src/lib.rs:285:81
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...                   self.expected(self.peek_pos(), "joined table", self.peek_token())?
[INFO] [stdout]     |                                                                           ^^^^^^^^^^-- argument #1 of type `&lexer::Token` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> parser/src/lib.rs:520:12
[INFO] [stdout]     |
[INFO] [stdout] 520 |         fn peek_token(&self, tok: &Token) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^        -----------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 285 |                             self.expected(self.peek_pos(), "joined table", self.peek_token(/* &lexer::Token */))?
[INFO] [stdout]     |                                                                                            +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_optional_table_alias` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:292:33
[INFO] [stdout]     |
[INFO] [stdout] 292 |                     alias: self.parse_optional_table_alias()?,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_rows_from` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:295:25
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 Ok(self.parse_rows_from()?)
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `parse_drop` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 295 -                 Ok(self.parse_rows_from()?)
[INFO] [stdout] 295 +                 Ok(self.parse_drop()?)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_raw_name` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:297:33
[INFO] [stdout]     |
[INFO] [stdout] 297 |                 let name = self.parse_raw_name()?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_optional_args` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:299:37
[INFO] [stdout]     |
[INFO] [stdout] 299 |                     let args = self.parse_optional_args(false)?;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_optional_table_alias` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:300:38
[INFO] [stdout]     |
[INFO] [stdout] 300 |                     let alias = self.parse_optional_table_alias()?;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `parse_optional_table_alias` found for mutable reference `&mut Parser` in the current scope
[INFO] [stdout]    --> parser/src/lib.rs:316:37
[INFO] [stdout]     |
[INFO] [stdout] 316 |                         alias: self.parse_optional_table_alias()?,
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^ method not found in `&mut Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> parser/src/lib.rs:461:13
[INFO] [stdout]     |
[INFO] [stdout] 456 |         fn consume_token(&mut self, tok: &Token) -> bool {
[INFO] [stdout]     |                                                     ---- expected `bool` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 461 |             Ok(())
[INFO] [stdout]     |             ^^^^^^ expected `bool`, found `Result<(), _>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type `bool`
[INFO] [stdout]                found enum `Result<(), _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precedence`
[INFO] [stdout]   --> parser/src/lib.rs:97:40
[INFO] [stdout]    |
[INFO] [stdout] 97 |         fn parse_query_body(&mut self, precedence: SetPrecedence) -> Result<(), String> {
[INFO] [stdout]    |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slf`
[INFO] [stdout]    --> parser/src/lib.rs:334:38
[INFO] [stdout]     |
[INFO] [stdout] 334 |             self.finish_after(EXPR, |slf| Err("todo parse expr".into()))
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_slf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tok`
[INFO] [stdout]    --> parser/src/lib.rs:465:41
[INFO] [stdout]     |
[INFO] [stdout] 465 |             if matches!(self.current(), tok) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_tok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tok`
[INFO] [stdout]    --> parser/src/lib.rs:521:41
[INFO] [stdout]     |
[INFO] [stdout] 521 |             matches!(self.peek(0), Some(tok))
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_tok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tok`
[INFO] [stdout]    --> parser/src/lib.rs:520:30
[INFO] [stdout]     |
[INFO] [stdout] 520 |         fn peek_token(&self, tok: &Token) -> bool {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_tok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TableFactor`
[INFO] [stdout]    --> parser/src/lib.rs:314:24
[INFO] [stdout]     |
[INFO] [stdout] 314 |                     Ok(TableFactor::Table {
[INFO] [stdout]     |                        ^^^^^^^^^^^ use of undeclared type `TableFactor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TableFactor`
[INFO] [stdout]    --> parser/src/lib.rs:302:24
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     Ok(TableFactor::Function {
[INFO] [stdout]     |                        ^^^^^^^^^^^ use of undeclared type `TableFactor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TableFactor`
[INFO] [stdout]    --> parser/src/lib.rs:290:20
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 Ok(TableFactor::NestedJoin {
[INFO] [stdout]     |                    ^^^^^^^^^^^ use of undeclared type `TableFactor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TableFactor`
[INFO] [stdout]    --> parser/src/lib.rs:280:21
[INFO] [stdout]     |
[INFO] [stdout] 280 |                     TableFactor::NestedJoin { .. } => (),
[INFO] [stdout]     |                     ^^^^^^^^^^^ use of undeclared type `TableFactor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TableFactor`
[INFO] [stdout]    --> parser/src/lib.rs:230:31
[INFO] [stdout]     |
[INFO] [stdout] 230 |                     return Ok(TableFactor::Function {
[INFO] [stdout]     |                               ^^^^^^^^^^^ use of undeclared type `TableFactor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0408, E0422, E0425, E0433, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `parser` (lib) due to 54 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "2e931b9e46cfbc4a983db42930b5c436dfa92dee5bb9d130473b924b7d1124e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e931b9e46cfbc4a983db42930b5c436dfa92dee5bb9d130473b924b7d1124e4", kill_on_drop: false }`
[INFO] [stdout] 2e931b9e46cfbc4a983db42930b5c436dfa92dee5bb9d130473b924b7d1124e4
