[INFO] fetching crate oak-rust 0.0.0...
[INFO] testing oak-rust-0.0.0 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-8
[INFO] extracting crate oak-rust 0.0.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate oak-rust 0.0.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate oak-rust 0.0.0
[INFO] tweaked toml for crates.io crate oak-rust 0.0.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate oak-rust 0.0.0 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oak-rust 0.0.0 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 43159347162f9d7b245aadfcf6f275e5a1478f4d3c97c3bdbd44f1fc09b09de3
[INFO] running `Command { std: "docker" "start" "-a" "43159347162f9d7b245aadfcf6f275e5a1478f4d3c97c3bdbd44f1fc09b09de3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "43159347162f9d7b245aadfcf6f275e5a1478f4d3c97c3bdbd44f1fc09b09de3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "43159347162f9d7b245aadfcf6f275e5a1478f4d3c97c3bdbd44f1fc09b09de3", kill_on_drop: false }`
[INFO] [stdout] 43159347162f9d7b245aadfcf6f275e5a1478f4d3c97c3bdbd44f1fc09b09de3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7f3736c849440c835b8fc15917141e80b62d9167a78eaa5064147def3dd3dc6b
[INFO] running `Command { std: "docker" "start" "-a" "7f3736c849440c835b8fc15917141e80b62d9167a78eaa5064147def3dd3dc6b", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling fluent-uri v0.1.4
[INFO] [stderr]    Compiling triomphe v0.1.15
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.3
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling lsp-types v0.97.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling oak-core v0.0.0
[INFO] [stderr]    Compiling oak-rust v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `GreenLeaf`
[INFO] [stdout]  --> src/parser/mod.rs:3:107
[INFO] [stdout]   |
[INFO] [stdout] 3 |     errors::OakDiagnostics, parser::{OperatorInfo, ParserState, PrattParser}, source::Source, tree::{Arc, GreenLeaf, GreenTree},
[INFO] [stdout]   |                                                                                                           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SourceLocation`
[INFO] [stdout]  --> src/parser/parse.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oak_core::{GreenBuilder, SourceLocation};
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct RustLexer<'config> {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 59 |     config: &'config RustLanguage,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RustLexer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/parser/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct RustParser<'config> {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 65 |     /// Language configuration
[INFO] [stdout] 66 |     config: &'config RustLanguage,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RustParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_function_with_builder` and `parse_param_list_with_builder` are never used
[INFO] [stdout]    --> src/parser/parse.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl<'config> RustParser<'config> {
[INFO] [stdout]     | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn parse_function_with_builder<S: Source>(&self, state: &mut State<S>, builder: &mut GreenBuilder<RustLanguage>) -> Result<Gree...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn parse_param_list_with_builder<S: Source>(&self, state: &mut State<S>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod ast;
[INFO] [stdout]   | ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]  --> src/lib.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![warn(missing_docs)]
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/ast/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Identifier {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ast/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub name: String,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ast/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub span: Range<usize>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub items: Vec<Item>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     Function(Function),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Statement(Statement),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Function {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub name: Identifier,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub params: Vec<Param>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub body: Block,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Param {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub name: Identifier,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub ty: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Block {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub statements: Vec<Statement>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/ast/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum Statement {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:29
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:28
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:40
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/ast/mod.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum Expr {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     Ident(Identifier),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:55:25
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:50
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:31
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:69
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:31
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:48
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:53
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:34
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:52
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:61:30
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Block(Block),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn parse_param(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     pub fn parse_block(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn parse_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 |     pub fn parse_let_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:359:5
[INFO] [stdout]     |
[INFO] [stdout] 359 |     pub fn parse_expr_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub fn parse_expr(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     pub fn parse_use_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn parse_const_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:495:5
[INFO] [stdout]     |
[INFO] [stdout] 495 |     pub fn parse_mod_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:528:5
[INFO] [stdout]     |
[INFO] [stdout] 528 |     pub fn parse_pub_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.32s
[INFO] running `Command { std: "docker" "inspect" "7f3736c849440c835b8fc15917141e80b62d9167a78eaa5064147def3dd3dc6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f3736c849440c835b8fc15917141e80b62d9167a78eaa5064147def3dd3dc6b", kill_on_drop: false }`
[INFO] [stdout] 7f3736c849440c835b8fc15917141e80b62d9167a78eaa5064147def3dd3dc6b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ffaa25e64ad3743979c9a902591b2258190042d94dac7320cce85cf2b37703d1
[INFO] running `Command { std: "docker" "start" "-a" "ffaa25e64ad3743979c9a902591b2258190042d94dac7320cce85cf2b37703d1", kill_on_drop: false }`
[INFO] [stderr]    Compiling oak-core v0.0.0
[INFO] [stderr]    Compiling oak-rust v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `GreenLeaf`
[INFO] [stdout]  --> src/parser/mod.rs:3:107
[INFO] [stdout]   |
[INFO] [stdout] 3 |     errors::OakDiagnostics, parser::{OperatorInfo, ParserState, PrattParser}, source::Source, tree::{Arc, GreenLeaf, GreenTree},
[INFO] [stdout]   |                                                                                                           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SourceLocation`
[INFO] [stdout]  --> src/parser/parse.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oak_core::{GreenBuilder, SourceLocation};
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GreenLeaf`
[INFO] [stdout]  --> src/parser/mod.rs:3:107
[INFO] [stdout]   |
[INFO] [stdout] 3 |     errors::OakDiagnostics, parser::{OperatorInfo, ParserState, PrattParser}, source::Source, tree::{Arc, GreenLeaf, GreenTree},
[INFO] [stdout]   |                                                                                                           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SourceLocation`
[INFO] [stdout]  --> src/parser/parse.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oak_core::{GreenBuilder, SourceLocation};
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct RustLexer<'config> {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 59 |     config: &'config RustLanguage,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RustLexer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/parser/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct RustParser<'config> {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 65 |     /// Language configuration
[INFO] [stdout] 66 |     config: &'config RustLanguage,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RustParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_function_with_builder` and `parse_param_list_with_builder` are never used
[INFO] [stdout]    --> src/parser/parse.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl<'config> RustParser<'config> {
[INFO] [stdout]     | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn parse_function_with_builder<S: Source>(&self, state: &mut State<S>, builder: &mut GreenBuilder<RustLanguage>) -> Result<Gree...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn parse_param_list_with_builder<S: Source>(&self, state: &mut State<S>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod ast;
[INFO] [stdout]   | ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]  --> src/lib.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![warn(missing_docs)]
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/ast/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Identifier {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ast/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub name: String,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ast/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub span: Range<usize>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub items: Vec<Item>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     Function(Function),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Statement(Statement),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Function {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub name: Identifier,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub params: Vec<Param>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub body: Block,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Param {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub name: Identifier,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub ty: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Block {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub statements: Vec<Statement>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/ast/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum Statement {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:29
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:28
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:40
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/ast/mod.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum Expr {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     Ident(Identifier),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:55:25
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:50
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:31
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:69
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:31
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:48
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:53
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:34
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:52
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:61:30
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Block(Block),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn parse_param(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     pub fn parse_block(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn parse_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 |     pub fn parse_let_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:359:5
[INFO] [stdout]     |
[INFO] [stdout] 359 |     pub fn parse_expr_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub fn parse_expr(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     pub fn parse_use_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn parse_const_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:495:5
[INFO] [stdout]     |
[INFO] [stdout] 495 |     pub fn parse_mod_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:528:5
[INFO] [stdout]     |
[INFO] [stdout] 528 |     pub fn parse_pub_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct RustLexer<'config> {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 59 |     config: &'config RustLanguage,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RustLexer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/parser/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct RustParser<'config> {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 65 |     /// Language configuration
[INFO] [stdout] 66 |     config: &'config RustLanguage,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RustParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_function_with_builder` and `parse_param_list_with_builder` are never used
[INFO] [stdout]    --> src/parser/parse.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl<'config> RustParser<'config> {
[INFO] [stdout]     | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn parse_function_with_builder<S: Source>(&self, state: &mut State<S>, builder: &mut GreenBuilder<RustLanguage>) -> Result<Gree...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn parse_param_list_with_builder<S: Source>(&self, state: &mut State<S>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub mod ast;
[INFO] [stdout]   | ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]  --> src/lib.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![warn(missing_docs)]
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/ast/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Identifier {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ast/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub name: String,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]  --> src/ast/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub span: Range<usize>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub items: Vec<Item>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     Function(Function),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Statement(Statement),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Function {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub name: Identifier,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub params: Vec<Param>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub body: Block,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Param {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub name: Identifier,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub ty: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/ast/mod.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Block {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub statements: Vec<Statement>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub span: Range<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/ast/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum Statement {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:29
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:28
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:48:40
[INFO] [stdout]    |
[INFO] [stdout] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/ast/mod.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum Expr {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     Ident(Identifier),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:55:25
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:56:50
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:31
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:57:69
[INFO] [stdout]    |
[INFO] [stdout] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:31
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:58:48
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:59:53
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:34
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:60:52
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ast/mod.rs:61:30
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/ast/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Block(Block),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn parse_param(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     pub fn parse_block(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn parse_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 |     pub fn parse_let_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:359:5
[INFO] [stdout]     |
[INFO] [stdout] 359 |     pub fn parse_expr_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub fn parse_expr(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     pub fn parse_use_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn parse_const_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:495:5
[INFO] [stdout]     |
[INFO] [stdout] 495 |     pub fn parse_mod_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/parser/parse.rs:528:5
[INFO] [stdout]     |
[INFO] [stdout] 528 |     pub fn parse_pub_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oak_core::Builder`
[INFO] [stdout]  --> tests/builder/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use oak_core::Builder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> tests/lexer/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(new_range_api)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]  --> tests/builder/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let parser = RustParser::new(&language);
[INFO] [stdout]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> tests/builder/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let source = "fn main() { let x = 42; }";
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.91s
[INFO] running `Command { std: "docker" "inspect" "ffaa25e64ad3743979c9a902591b2258190042d94dac7320cce85cf2b37703d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ffaa25e64ad3743979c9a902591b2258190042d94dac7320cce85cf2b37703d1", kill_on_drop: false }`
[INFO] [stdout] ffaa25e64ad3743979c9a902591b2258190042d94dac7320cce85cf2b37703d1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5a90e2e98ad715e71e96640ef796a0ca3516c2cb742be29572270aa0a3e4770a
[INFO] running `Command { std: "docker" "start" "-a" "5a90e2e98ad715e71e96640ef796a0ca3516c2cb742be29572270aa0a3e4770a", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `GreenLeaf`
[INFO] [stderr]  --> src/parser/mod.rs:3:107
[INFO] [stderr]   |
[INFO] [stderr] 3 |     errors::OakDiagnostics, parser::{OperatorInfo, ParserState, PrattParser}, source::Source, tree::{Arc, GreenLeaf, GreenTree},
[INFO] [stderr]   |                                                                                                           ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SourceLocation`
[INFO] [stderr]  --> src/parser/parse.rs:3:30
[INFO] [stderr]   |
[INFO] [stderr] 3 | use oak_core::{GreenBuilder, SourceLocation};
[INFO] [stderr]   |                              ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]   --> src/lexer/mod.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct RustLexer<'config> {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] 59 |     config: &'config RustLanguage,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RustLexer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]   --> src/parser/mod.rs:66:5
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub struct RustParser<'config> {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] 65 |     /// Language configuration
[INFO] [stderr] 66 |     config: &'config RustLanguage,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RustParser` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `parse_function_with_builder` and `parse_param_list_with_builder` are never used
[INFO] [stderr]    --> src/parser/parse.rs:126:8
[INFO] [stderr]     |
[INFO] [stderr]  20 | impl<'config> RustParser<'config> {
[INFO] [stderr]     | --------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 126 |     fn parse_function_with_builder<S: Source>(&self, state: &mut State<S>, builder: &mut GreenBuilder<RustLanguage>) -> Result<Gree...
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     fn parse_param_list_with_builder<S: Source>(&self, state: &mut State<S>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/lib.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub mod ast;
[INFO] [stderr]   | ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]  --> src/lib.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | #![warn(missing_docs)]
[INFO] [stderr]   |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]  --> src/ast/mod.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct Identifier {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]  --> src/ast/mod.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     pub name: String,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]  --> src/ast/mod.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     pub span: Range<usize>,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub items: Vec<Item>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     Function(Function),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     Statement(Statement),
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/ast/mod.rs:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct Function {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub name: Identifier,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub params: Vec<Param>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 |     pub body: Block,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub span: Range<usize>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/ast/mod.rs:33:1
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct Param {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 34 |     pub name: Identifier,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub ty: String,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub span: Range<usize>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/ast/mod.rs:40:1
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub struct Block {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:41:5
[INFO] [stderr]    |
[INFO] [stderr] 41 |     pub statements: Vec<Statement>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub span: Range<usize>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an enum
[INFO] [stderr]   --> src/ast/mod.rs:46:1
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub enum Statement {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:47:11
[INFO] [stderr]    |
[INFO] [stderr] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:47:29
[INFO] [stderr]    |
[INFO] [stderr] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stderr]    |                             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:47:41
[INFO] [stderr]    |
[INFO] [stderr] 47 |     Let { name: Identifier, expr: Expr, span: Range<usize> },
[INFO] [stderr]    |                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:48:16
[INFO] [stderr]    |
[INFO] [stderr] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stderr]    |                ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:48:28
[INFO] [stderr]    |
[INFO] [stderr] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stderr]    |                            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:48:40
[INFO] [stderr]    |
[INFO] [stderr] 48 |     ExprStmt { expr: Expr, semi: bool, span: Range<usize> },
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an enum
[INFO] [stderr]   --> src/ast/mod.rs:52:1
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub enum Expr {
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:53:5
[INFO] [stderr]    |
[INFO] [stderr] 53 |     Ident(Identifier),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:54:5
[INFO] [stderr]    |
[INFO] [stderr] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:54:15
[INFO] [stderr]    |
[INFO] [stderr] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stderr]    |               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:54:30
[INFO] [stderr]    |
[INFO] [stderr] 54 |     Literal { value: String, span: Range<usize> },
[INFO] [stderr]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:55:5
[INFO] [stderr]    |
[INFO] [stderr] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:55:25
[INFO] [stderr]    |
[INFO] [stderr] 55 |     Bool { value: bool, span: Range<usize> },
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:56:33
[INFO] [stderr]    |
[INFO] [stderr] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:56:50
[INFO] [stderr]    |
[INFO] [stderr] 56 |     Unary { op: RustSyntaxKind, expr: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:57:5
[INFO] [stderr]    |
[INFO] [stderr] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:57:14
[INFO] [stderr]    |
[INFO] [stderr] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:57:31
[INFO] [stderr]    |
[INFO] [stderr] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:57:51
[INFO] [stderr]    |
[INFO] [stderr] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                                                   ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:57:69
[INFO] [stderr]    |
[INFO] [stderr] 57 |     Binary { left: Box<Expr>, op: RustSyntaxKind, right: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:58:31
[INFO] [stderr]    |
[INFO] [stderr] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:58:48
[INFO] [stderr]    |
[INFO] [stderr] 58 |     Call { callee: Box<Expr>, args: Vec<Expr>, span: Range<usize> },
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:59:13
[INFO] [stderr]    |
[INFO] [stderr] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:59:34
[INFO] [stderr]    |
[INFO] [stderr] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:59:53
[INFO] [stderr]    |
[INFO] [stderr] 59 |     Field { receiver: Box<Expr>, field: Identifier, span: Range<usize> },
[INFO] [stderr]    |                                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:60:34
[INFO] [stderr]    |
[INFO] [stderr] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:60:52
[INFO] [stderr]    |
[INFO] [stderr] 60 |     Index { receiver: Box<Expr>, index: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:61:13
[INFO] [stderr]    |
[INFO] [stderr] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct field
[INFO] [stderr]   --> src/ast/mod.rs:61:30
[INFO] [stderr]    |
[INFO] [stderr] 61 |     Paren { expr: Box<Expr>, span: Range<usize> },
[INFO] [stderr]    |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a variant
[INFO] [stderr]   --> src/ast/mod.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Block(Block),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:243:5
[INFO] [stderr]     |
[INFO] [stderr] 243 |     pub fn parse_param(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:276:5
[INFO] [stderr]     |
[INFO] [stderr] 276 |     pub fn parse_block(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:306:5
[INFO] [stderr]     |
[INFO] [stderr] 306 |     pub fn parse_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:313:5
[INFO] [stderr]     |
[INFO] [stderr] 313 |     pub fn parse_let_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:359:5
[INFO] [stderr]     |
[INFO] [stderr] 359 |     pub fn parse_expr_stmt(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:377:5
[INFO] [stderr]     |
[INFO] [stderr] 377 |     pub fn parse_expr(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:398:5
[INFO] [stderr]     |
[INFO] [stderr] 398 |     pub fn parse_use_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:431:5
[INFO] [stderr]     |
[INFO] [stderr] 431 |     pub fn parse_const_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:495:5
[INFO] [stderr]     |
[INFO] [stderr] 495 |     pub fn parse_mod_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/parser/parse.rs:528:5
[INFO] [stderr]     |
[INFO] [stderr] 528 |     pub fn parse_pub_item(state: &mut ParserState<impl Source, RustLanguage>) -> Result<Arc<GreenNode<RustSyntaxKind>>, OakError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `oak-rust` (lib) generated 76 warnings (run `cargo fix --lib -p oak-rust` to apply 2 suggestions)
[INFO] [stderr] warning: `oak-rust` (lib test) generated 76 warnings (76 duplicates)
[INFO] [stderr] warning: unused import: `oak_core::Builder`
[INFO] [stderr]  --> tests/builder/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use oak_core::Builder;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: crate-level attribute should be in the root module
[INFO] [stderr]  --> tests/lexer/mod.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![feature(new_range_api)]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `parser`
[INFO] [stderr]  --> tests/builder/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let parser = RustParser::new(&language);
[INFO] [stderr]   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `source`
[INFO] [stderr]   --> tests/builder/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let source = "fn main() { let x = 42; }";
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stderr] 
[INFO] [stderr] warning: `oak-rust` (test "main") generated 4 warnings (run `cargo fix --test "main" -p oak-rust` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oak_rust-7bc73d6aa2b446ce)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/main.rs (/opt/rustwide/target/debug/deps/main-b20930af96a7f1e6)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test builder::test_rust_builder ... ok
[INFO] [stdout] test lexer::test_peek_behavior ... ok
[INFO] [stdout] test ready ... ok
[INFO] [stdout] test lexer::test_nested_constant_parsing ... ok
[INFO] [stdout] test parser::test_rust_parser ... FAILED
[INFO] [stdout] test lexer::test_rust_lexer ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- parser::test_rust_parser stdout ----
[INFO] [stdout] Testing file: /opt/rustwide/workdir/tests/parser/function.rust
[INFO] [stdout] Test failed for file: /opt/rustwide/workdir/tests/parser/function.rust
[INFO] [stdout] Expected: ParserTestExpected {
[INFO] [stdout]     success: true,
[INFO] [stdout]     node_count: 34,
[INFO] [stdout]     ast_structure: AstNodeData {
[INFO] [stdout]         kind: "SourceFile",
[INFO] [stdout]         children: [
[INFO] [stdout]             AstNodeData {
[INFO] [stdout]                 kind: "Function",
[INFO] [stdout]                 children: [
[INFO] [stdout]                     AstNodeData {
[INFO] [stdout]                         kind: "Fn",
[INFO] [stdout]                         children: [],
[INFO] [stdout]                         text_length: 2,
[INFO] [stdout]                         is_leaf: true,
[INFO] [stdout]                     },
[INFO] [stdout]                     AstNodeData {
[INFO] [stdout]                         kind: "Whitespace",
[INFO] [stdout]                         children: [],
[INFO] [stdout]                         text_length: 1,
[INFO] [stdout]                         is_leaf: true,
[INFO] [stdout]                     },
[INFO] [stdout]                     AstNodeData {
[INFO] [stdout]                         kind: "ParameterList",
[INFO] [stdout]                         children: [
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Identifier",
[INFO] [stdout]                                 children: [],
[INFO] [stdout]                                 text_length: 4,
[INFO] [stdout]                                 is_leaf: true,
[INFO] [stdout]                             },
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Parameter",
[INFO] [stdout]                                 children: [
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "LeftParen",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "RightParen",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Whitespace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ],
[INFO] [stdout]                                 text_length: 3,
[INFO] [stdout]                                 is_leaf: false,
[INFO] [stdout]                             },
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Parameter",
[INFO] [stdout]                                 children: [
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "LeftBrace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Whitespace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 6,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Let",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 3,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ],
[INFO] [stdout]                                 text_length: 10,
[INFO] [stdout]                                 is_leaf: false,
[INFO] [stdout]                             },
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Parameter",
[INFO] [stdout]                                 children: [
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Whitespace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Identifier",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "PathSep",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 2,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ],
[INFO] [stdout]                                 text_length: 4,
[INFO] [stdout]                                 is_leaf: false,
[INFO] [stdout]                             },
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Parameter",
[INFO] [stdout]                                 children: [
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Identifier",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 3,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Whitespace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "EqEq",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 2,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ],
[INFO] [stdout]                                 text_length: 6,
[INFO] [stdout]                                 is_leaf: false,
[INFO] [stdout]                             },
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Parameter",
[INFO] [stdout]                                 children: [
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "IntegerLiteral",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Semicolon",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Whitespace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 6,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ],
[INFO] [stdout]                                 text_length: 8,
[INFO] [stdout]                                 is_leaf: false,
[INFO] [stdout]                             },
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Parameter",
[INFO] [stdout]                                 children: [
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Identifier",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Semicolon",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Whitespace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 2,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ],
[INFO] [stdout]                                 text_length: 4,
[INFO] [stdout]                                 is_leaf: false,
[INFO] [stdout]                             },
[INFO] [stdout]                             AstNodeData {
[INFO] [stdout]                                 kind: "Parameter",
[INFO] [stdout]                                 children: [
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "RightBrace",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 1,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     AstNodeData {
[INFO] [stdout]                                         kind: "Eof",
[INFO] [stdout]                                         children: [],
[INFO] [stdout]                                         text_length: 0,
[INFO] [stdout]                                         is_leaf: true,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ],
[INFO] [stdout]                                 text_length: 1,
[INFO] [stdout]                                 is_leaf: false,
[INFO] [stdout]                             },
[INFO] [stdout]                         ],
[INFO] [stdout]                         text_length: 40,
[INFO] [stdout]                         is_leaf: false,
[INFO] [stdout]                     },
[INFO] [stdout]                     AstNodeData {
[INFO] [stdout]                         kind: "BlockExpression",
[INFO] [stdout]                         children: [],
[INFO] [stdout]                         text_length: 0,
[INFO] [stdout]                         is_leaf: true,
[INFO] [stdout]                     },
[INFO] [stdout]                 ],
[INFO] [stdout]                 text_length: 43,
[INFO] [stdout]                 is_leaf: false,
[INFO] [stdout]             },
[INFO] [stdout]         ],
[INFO] [stdout]         text_length: 43,
[INFO] [stdout]         is_leaf: false,
[INFO] [stdout]     },
[INFO] [stdout]     errors: [],
[INFO] [stdout] }
[INFO] [stdout] Actual: ParserTestExpected {
[INFO] [stdout]     success: true,
[INFO] [stdout]     node_count: 1,
[INFO] [stdout]     ast_structure: AstNodeData {
[INFO] [stdout]         kind: "SourceFile",
[INFO] [stdout]         children: [],
[INFO] [stdout]         text_length: 0,
[INFO] [stdout]         is_leaf: false,
[INFO] [stdout]     },
[INFO] [stdout]     errors: [],
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] thread 'parser::test_rust_parser' (22) panicked at tests/parser/mod.rs:13:19:
[INFO] [stdout] Rust parser tests failed: Test results do not match expected results
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56f77c5d2212 - std::backtrace_rs::backtrace::libunwind::trace::h9ea1e07ac77a25d7
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56f77c5d2212 - std::backtrace_rs::backtrace::trace_unsynchronized::h72b75eb83b53d15a
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56f77c5d2212 - std::sys::backtrace::_print_fmt::h255777b7ec902439
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x56f77c5d2212 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h8a1ac49fcd7ee8ce
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x56f77c5e27bf - core::fmt::rt::Argument::fmt::h635cbf3c6754cc90
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x56f77c5e27bf - core::fmt::write::hbdcc0ec4f1bab1db
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x56f77c59eaa3 - std::io::default_write_fmt::h2580ece0d4b58e51
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x56f77c59eaa3 - std::io::Write::write_fmt::hac9e42858f273b87
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x56f77c5aae32 - std::sys::backtrace::BacktraceLock::print::h052febbd86f7bf07
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x56f77c5aff8f - std::panicking::default_hook::{{closure}}::h66aeee20dd470abb
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x56f77c5afe21 - std::panicking::default_hook::h9d66b9642014ce48
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x56f77c53e07e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h8c698701e444e564
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x56f77c53e07e - test::test_main_with_exit_callback::{{closure}}::ha1c98e7b69c4defb
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x56f77c5b064f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc4f222a8a57c637a
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x56f77c5b064f - std::panicking::panic_with_hook::h6d5921a1a1fa5a8e
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x56f77c5b03fa - std::panicking::panic_handler::{{closure}}::hafeef6f707d43542
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x56f77c5aaf69 - std::sys::backtrace::__rust_end_short_backtrace::h08cbc3319a3d0120
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x56f77c592a4d - __rustc[ce5c411ff86ab1b2]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x56f77c5ea4c0 - core::panicking::panic_fmt::h774fb860369a0f7b
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56f77c504f34 - main::parser::test_rust_parser::hd68fc9ca87df21d7
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/parser/mod.rs:13:19
[INFO] [stdout]   20:     0x56f77c504f87 - main::parser::test_rust_parser::{{closure}}::he531c9efea560ad8
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/parser/mod.rs:6:22
[INFO] [stdout]   21:     0x56f77c4f6606 - core::ops::function::FnOnce::call_once::h29433f675fb59097
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x56f77c53decb - core::ops::function::FnOnce::call_once::h4f6eabe90cccb47d
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x56f77c53decb - test::__rust_begin_short_backtrace::h94208530f2b4c8c7
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x56f77c551edd - test::run_test_in_process::{{closure}}::hbdc6a45a78c46404
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x56f77c551edd - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h7f9d8efc7eedd165
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x56f77c551edd - std::panicking::catch_unwind::do_call::he5edbaf126c13b99
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:590:40
[INFO] [stdout]   27:     0x56f77c551edd - std::panicking::catch_unwind::h3d6a8652eceeabce
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:553:19
[INFO] [stdout]   28:     0x56f77c551edd - std::panic::catch_unwind::hbef0c501dd7bb498
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x56f77c551edd - test::run_test_in_process::h400008a46a5006a0
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x56f77c551edd - test::run_test::{{closure}}::h9a131655b31d9427
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x56f77c52b424 - test::run_test::{{closure}}::he4a7177c216308c0
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x56f77c52b424 - std::sys::backtrace::__rust_begin_short_backtrace::hd3980e9c55d6c539
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   33:     0x56f77c52ed5a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h18552df67c7aa9b8
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   34:     0x56f77c52ed5a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3d7b285234641a08
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x56f77c52ed5a - std::panicking::catch_unwind::do_call::h5a2b5cf36528a5b2
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:590:40
[INFO] [stdout]   36:     0x56f77c52ed5a - std::panicking::catch_unwind::h7e8b531bbda77d20
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:553:19
[INFO] [stdout]   37:     0x56f77c52ed5a - std::panic::catch_unwind::hf9bbb2040b4f1e6c
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x56f77c52ed5a - std::thread::Builder::spawn_unchecked_::{{closure}}::h600f92cf68549574
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   39:     0x56f77c52ed5a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb6607307df8a1847
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x56f77c5a636f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6891ad53a5ed6f52
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   41:     0x56f77c5a636f - std::sys::thread::unix::Thread::new::thread_start::h7f3e77fa86df70af
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   42:     0x7942f81f7aa4 - <unknown>
[INFO] [stdout]   43:     0x7942f8284a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- lexer::test_rust_lexer stdout ----
[INFO] [stdout] Testing file: /opt/rustwide/workdir/tests/lexer/basic.rust
[INFO] [stdout] Test failed for file: /opt/rustwide/workdir/tests/lexer/basic.rust
[INFO] [stdout] Expected: LexerTestExpected {
[INFO] [stdout]     success: true,
[INFO] [stdout]     count: 100,
[INFO] [stdout]     tokens: [
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "e",
[INFO] [stdout]             start: 48,
[INFO] [stdout]             end: 49,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "g",
[INFO] [stdout]             start: 115,
[INFO] [stdout]             end: 116,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Pound",
[INFO] [stdout]             text: "#",
[INFO] [stdout]             start: 120,
[INFO] [stdout]             end: 121,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Not",
[INFO] [stdout]             text: "!",
[INFO] [stdout]             start: 121,
[INFO] [stdout]             end: 122,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBracket",
[INFO] [stdout]             text: "[",
[INFO] [stdout]             start: 122,
[INFO] [stdout]             end: 123,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "allow",
[INFO] [stdout]             start: 123,
[INFO] [stdout]             end: 128,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftParen",
[INFO] [stdout]             text: "(",
[INFO] [stdout]             start: 128,
[INFO] [stdout]             end: 129,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "unused_variables",
[INFO] [stdout]             start: 129,
[INFO] [stdout]             end: 145,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 145,
[INFO] [stdout]             end: 146,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "dead_code",
[INFO] [stdout]             start: 147,
[INFO] [stdout]             end: 156,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 156,
[INFO] [stdout]             end: 157,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "unused_imports",
[INFO] [stdout]             start: 158,
[INFO] [stdout]             end: 172,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightParen",
[INFO] [stdout]             text: ")",
[INFO] [stdout]             start: 172,
[INFO] [stdout]             end: 173,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBracket",
[INFO] [stdout]             text: "]",
[INFO] [stdout]             start: 173,
[INFO] [stdout]             end: 174,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Pound",
[INFO] [stdout]             text: "#",
[INFO] [stdout]             start: 176,
[INFO] [stdout]             end: 177,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Not",
[INFO] [stdout]             text: "!",
[INFO] [stdout]             start: 177,
[INFO] [stdout]             end: 178,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBracket",
[INFO] [stdout]             text: "[",
[INFO] [stdout]             start: 178,
[INFO] [stdout]             end: 179,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "warn",
[INFO] [stdout]             start: 179,
[INFO] [stdout]             end: 183,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftParen",
[INFO] [stdout]             text: "(",
[INFO] [stdout]             start: 183,
[INFO] [stdout]             end: 184,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "missing_docs",
[INFO] [stdout]             start: 184,
[INFO] [stdout]             end: 196,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightParen",
[INFO] [stdout]             text: ")",
[INFO] [stdout]             start: 196,
[INFO] [stdout]             end: 197,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBracket",
[INFO] [stdout]             text: "]",
[INFO] [stdout]             start: 197,
[INFO] [stdout]             end: 198,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "t",
[INFO] [stdout]             start: 248,
[INFO] [stdout]             end: 249,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "x",
[INFO] [stdout]             start: 303,
[INFO] [stdout]             end: 304,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "e",
[INFO] [stdout]             start: 357,
[INFO] [stdout]             end: 358,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "s",
[INFO] [stdout]             start: 409,
[INFO] [stdout]             end: 410,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "s",
[INFO] [stdout]             start: 440,
[INFO] [stdout]             end: 441,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 443,
[INFO] [stdout]             end: 446,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 447,
[INFO] [stdout]             end: 450,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 450,
[INFO] [stdout]             end: 452,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "collections",
[INFO] [stdout]             start: 452,
[INFO] [stdout]             end: 463,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 463,
[INFO] [stdout]             end: 465,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 465,
[INFO] [stdout]             end: 466,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "HashMap",
[INFO] [stdout]             start: 466,
[INFO] [stdout]             end: 473,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 473,
[INFO] [stdout]             end: 474,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "HashSet",
[INFO] [stdout]             start: 475,
[INFO] [stdout]             end: 482,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 482,
[INFO] [stdout]             end: 483,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "BTreeMap",
[INFO] [stdout]             start: 484,
[INFO] [stdout]             end: 492,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 492,
[INFO] [stdout]             end: 493,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "VecDeque",
[INFO] [stdout]             start: 494,
[INFO] [stdout]             end: 502,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBrace",
[INFO] [stdout]             text: "}",
[INFO] [stdout]             start: 502,
[INFO] [stdout]             end: 503,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 503,
[INFO] [stdout]             end: 504,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 506,
[INFO] [stdout]             end: 509,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 510,
[INFO] [stdout]             end: 513,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 513,
[INFO] [stdout]             end: 515,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "sync",
[INFO] [stdout]             start: 515,
[INFO] [stdout]             end: 519,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 519,
[INFO] [stdout]             end: 521,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 521,
[INFO] [stdout]             end: 522,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Arc",
[INFO] [stdout]             start: 522,
[INFO] [stdout]             end: 525,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 525,
[INFO] [stdout]             end: 526,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Mutex",
[INFO] [stdout]             start: 527,
[INFO] [stdout]             end: 532,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 532,
[INFO] [stdout]             end: 533,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "RwLock",
[INFO] [stdout]             start: 534,
[INFO] [stdout]             end: 540,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBrace",
[INFO] [stdout]             text: "}",
[INFO] [stdout]             start: 540,
[INFO] [stdout]             end: 541,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 541,
[INFO] [stdout]             end: 542,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 544,
[INFO] [stdout]             end: 547,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 548,
[INFO] [stdout]             end: 551,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 551,
[INFO] [stdout]             end: 553,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "thread",
[INFO] [stdout]             start: 553,
[INFO] [stdout]             end: 559,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 559,
[INFO] [stdout]             end: 560,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 562,
[INFO] [stdout]             end: 565,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 566,
[INFO] [stdout]             end: 569,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 569,
[INFO] [stdout]             end: 571,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "time",
[INFO] [stdout]             start: 571,
[INFO] [stdout]             end: 575,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 575,
[INFO] [stdout]             end: 577,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Duration",
[INFO] [stdout]             start: 577,
[INFO] [stdout]             end: 585,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 585,
[INFO] [stdout]             end: 586,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 588,
[INFO] [stdout]             end: 591,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 592,
[INFO] [stdout]             end: 595,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 595,
[INFO] [stdout]             end: 597,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "fs",
[INFO] [stdout]             start: 597,
[INFO] [stdout]             end: 599,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 599,
[INFO] [stdout]             end: 601,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "File",
[INFO] [stdout]             start: 601,
[INFO] [stdout]             end: 605,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 605,
[INFO] [stdout]             end: 606,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 608,
[INFO] [stdout]             end: 611,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 612,
[INFO] [stdout]             end: 615,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 615,
[INFO] [stdout]             end: 617,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "io",
[INFO] [stdout]             start: 617,
[INFO] [stdout]             end: 619,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 619,
[INFO] [stdout]             end: 621,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 621,
[INFO] [stdout]             end: 622,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "SelfValue",
[INFO] [stdout]             text: "self",
[INFO] [stdout]             start: 622,
[INFO] [stdout]             end: 626,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 626,
[INFO] [stdout]             end: 627,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Read",
[INFO] [stdout]             start: 628,
[INFO] [stdout]             end: 632,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 632,
[INFO] [stdout]             end: 633,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Write",
[INFO] [stdout]             start: 634,
[INFO] [stdout]             end: 639,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 639,
[INFO] [stdout]             end: 640,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "BufRead",
[INFO] [stdout]             start: 641,
[INFO] [stdout]             end: 648,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 648,
[INFO] [stdout]             end: 649,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "BufReader",
[INFO] [stdout]             start: 650,
[INFO] [stdout]             end: 659,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBrace",
[INFO] [stdout]             text: "}",
[INFO] [stdout]             start: 659,
[INFO] [stdout]             end: 660,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 660,
[INFO] [stdout]             end: 661,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 663,
[INFO] [stdout]             end: 666,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 667,
[INFO] [stdout]             end: 670,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 670,
[INFO] [stdout]             end: 672,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "fmt",
[INFO] [stdout]             start: 672,
[INFO] [stdout]             end: 675,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 675,
[INFO] [stdout]             end: 677,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 677,
[INFO] [stdout]             end: 678,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "SelfValue",
[INFO] [stdout]             text: "self",
[INFO] [stdout]             start: 678,
[INFO] [stdout]             end: 682,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 682,
[INFO] [stdout]             end: 683,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Display",
[INFO] [stdout]             start: 684,
[INFO] [stdout]             end: 691,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     errors: [],
[INFO] [stdout] }
[INFO] [stdout] Actual: LexerTestExpected {
[INFO] [stdout]     success: true,
[INFO] [stdout]     count: 100,
[INFO] [stdout]     tokens: [
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Pound",
[INFO] [stdout]             text: "#",
[INFO] [stdout]             start: 120,
[INFO] [stdout]             end: 121,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Not",
[INFO] [stdout]             text: "!",
[INFO] [stdout]             start: 121,
[INFO] [stdout]             end: 122,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBracket",
[INFO] [stdout]             text: "[",
[INFO] [stdout]             start: 122,
[INFO] [stdout]             end: 123,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "allow",
[INFO] [stdout]             start: 123,
[INFO] [stdout]             end: 128,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftParen",
[INFO] [stdout]             text: "(",
[INFO] [stdout]             start: 128,
[INFO] [stdout]             end: 129,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "unused_variables",
[INFO] [stdout]             start: 129,
[INFO] [stdout]             end: 145,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 145,
[INFO] [stdout]             end: 146,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "dead_code",
[INFO] [stdout]             start: 147,
[INFO] [stdout]             end: 156,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 156,
[INFO] [stdout]             end: 157,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "unused_imports",
[INFO] [stdout]             start: 158,
[INFO] [stdout]             end: 172,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightParen",
[INFO] [stdout]             text: ")",
[INFO] [stdout]             start: 172,
[INFO] [stdout]             end: 173,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBracket",
[INFO] [stdout]             text: "]",
[INFO] [stdout]             start: 173,
[INFO] [stdout]             end: 174,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Pound",
[INFO] [stdout]             text: "#",
[INFO] [stdout]             start: 176,
[INFO] [stdout]             end: 177,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Not",
[INFO] [stdout]             text: "!",
[INFO] [stdout]             start: 177,
[INFO] [stdout]             end: 178,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBracket",
[INFO] [stdout]             text: "[",
[INFO] [stdout]             start: 178,
[INFO] [stdout]             end: 179,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "warn",
[INFO] [stdout]             start: 179,
[INFO] [stdout]             end: 183,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftParen",
[INFO] [stdout]             text: "(",
[INFO] [stdout]             start: 183,
[INFO] [stdout]             end: 184,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "missing_docs",
[INFO] [stdout]             start: 184,
[INFO] [stdout]             end: 196,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightParen",
[INFO] [stdout]             text: ")",
[INFO] [stdout]             start: 196,
[INFO] [stdout]             end: 197,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBracket",
[INFO] [stdout]             text: "]",
[INFO] [stdout]             start: 197,
[INFO] [stdout]             end: 198,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 443,
[INFO] [stdout]             end: 446,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 447,
[INFO] [stdout]             end: 450,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 450,
[INFO] [stdout]             end: 452,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "collections",
[INFO] [stdout]             start: 452,
[INFO] [stdout]             end: 463,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 463,
[INFO] [stdout]             end: 465,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 465,
[INFO] [stdout]             end: 466,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "HashMap",
[INFO] [stdout]             start: 466,
[INFO] [stdout]             end: 473,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 473,
[INFO] [stdout]             end: 474,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "HashSet",
[INFO] [stdout]             start: 475,
[INFO] [stdout]             end: 482,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 482,
[INFO] [stdout]             end: 483,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "BTreeMap",
[INFO] [stdout]             start: 484,
[INFO] [stdout]             end: 492,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 492,
[INFO] [stdout]             end: 493,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "VecDeque",
[INFO] [stdout]             start: 494,
[INFO] [stdout]             end: 502,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBrace",
[INFO] [stdout]             text: "}",
[INFO] [stdout]             start: 502,
[INFO] [stdout]             end: 503,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 503,
[INFO] [stdout]             end: 504,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 506,
[INFO] [stdout]             end: 509,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 510,
[INFO] [stdout]             end: 513,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 513,
[INFO] [stdout]             end: 515,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "sync",
[INFO] [stdout]             start: 515,
[INFO] [stdout]             end: 519,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 519,
[INFO] [stdout]             end: 521,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 521,
[INFO] [stdout]             end: 522,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Arc",
[INFO] [stdout]             start: 522,
[INFO] [stdout]             end: 525,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 525,
[INFO] [stdout]             end: 526,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Mutex",
[INFO] [stdout]             start: 527,
[INFO] [stdout]             end: 532,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 532,
[INFO] [stdout]             end: 533,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "RwLock",
[INFO] [stdout]             start: 534,
[INFO] [stdout]             end: 540,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBrace",
[INFO] [stdout]             text: "}",
[INFO] [stdout]             start: 540,
[INFO] [stdout]             end: 541,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 541,
[INFO] [stdout]             end: 542,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 544,
[INFO] [stdout]             end: 547,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 548,
[INFO] [stdout]             end: 551,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 551,
[INFO] [stdout]             end: 553,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "thread",
[INFO] [stdout]             start: 553,
[INFO] [stdout]             end: 559,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 559,
[INFO] [stdout]             end: 560,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 562,
[INFO] [stdout]             end: 565,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 566,
[INFO] [stdout]             end: 569,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 569,
[INFO] [stdout]             end: 571,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "time",
[INFO] [stdout]             start: 571,
[INFO] [stdout]             end: 575,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 575,
[INFO] [stdout]             end: 577,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Duration",
[INFO] [stdout]             start: 577,
[INFO] [stdout]             end: 585,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 585,
[INFO] [stdout]             end: 586,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 588,
[INFO] [stdout]             end: 591,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 592,
[INFO] [stdout]             end: 595,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 595,
[INFO] [stdout]             end: 597,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "fs",
[INFO] [stdout]             start: 597,
[INFO] [stdout]             end: 599,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 599,
[INFO] [stdout]             end: 601,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "File",
[INFO] [stdout]             start: 601,
[INFO] [stdout]             end: 605,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 605,
[INFO] [stdout]             end: 606,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 608,
[INFO] [stdout]             end: 611,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 612,
[INFO] [stdout]             end: 615,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 615,
[INFO] [stdout]             end: 617,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "io",
[INFO] [stdout]             start: 617,
[INFO] [stdout]             end: 619,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 619,
[INFO] [stdout]             end: 621,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 621,
[INFO] [stdout]             end: 622,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "SelfValue",
[INFO] [stdout]             text: "self",
[INFO] [stdout]             start: 622,
[INFO] [stdout]             end: 626,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 626,
[INFO] [stdout]             end: 627,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Read",
[INFO] [stdout]             start: 628,
[INFO] [stdout]             end: 632,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 632,
[INFO] [stdout]             end: 633,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Write",
[INFO] [stdout]             start: 634,
[INFO] [stdout]             end: 639,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 639,
[INFO] [stdout]             end: 640,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "BufRead",
[INFO] [stdout]             start: 641,
[INFO] [stdout]             end: 648,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 648,
[INFO] [stdout]             end: 649,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "BufReader",
[INFO] [stdout]             start: 650,
[INFO] [stdout]             end: 659,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBrace",
[INFO] [stdout]             text: "}",
[INFO] [stdout]             start: 659,
[INFO] [stdout]             end: 660,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 660,
[INFO] [stdout]             end: 661,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 663,
[INFO] [stdout]             end: 666,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 667,
[INFO] [stdout]             end: 670,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 670,
[INFO] [stdout]             end: 672,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "fmt",
[INFO] [stdout]             start: 672,
[INFO] [stdout]             end: 675,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 675,
[INFO] [stdout]             end: 677,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "LeftBrace",
[INFO] [stdout]             text: "{",
[INFO] [stdout]             start: 677,
[INFO] [stdout]             end: 678,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "SelfValue",
[INFO] [stdout]             text: "self",
[INFO] [stdout]             start: 678,
[INFO] [stdout]             end: 682,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 682,
[INFO] [stdout]             end: 683,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Display",
[INFO] [stdout]             start: 684,
[INFO] [stdout]             end: 691,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Comma",
[INFO] [stdout]             text: ",",
[INFO] [stdout]             start: 691,
[INFO] [stdout]             end: 692,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "Debug",
[INFO] [stdout]             start: 693,
[INFO] [stdout]             end: 698,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "RightBrace",
[INFO] [stdout]             text: "}",
[INFO] [stdout]             start: 698,
[INFO] [stdout]             end: 699,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Semicolon",
[INFO] [stdout]             text: ";",
[INFO] [stdout]             start: 699,
[INFO] [stdout]             end: 700,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Use",
[INFO] [stdout]             text: "use",
[INFO] [stdout]             start: 702,
[INFO] [stdout]             end: 705,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "Identifier",
[INFO] [stdout]             text: "std",
[INFO] [stdout]             start: 706,
[INFO] [stdout]             end: 709,
[INFO] [stdout]         },
[INFO] [stdout]         TokenData {
[INFO] [stdout]             kind: "PathSep",
[INFO] [stdout]             text: "::",
[INFO] [stdout]             start: 709,
[INFO] [stdout]             end: 711,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     errors: [],
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] thread 'lexer::test_rust_lexer' (21) panicked at tests/lexer/mod.rs:16:19:
[INFO] [stdout] Rust lexer tests failed: Test results do not match expected results
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56f77c5d2212 - std::backtrace_rs::backtrace::libunwind::trace::h9ea1e07ac77a25d7
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56f77c5d2212 - std::backtrace_rs::backtrace::trace_unsynchronized::h72b75eb83b53d15a
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56f77c5d2212 - std::sys::backtrace::_print_fmt::h255777b7ec902439
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x56f77c5d2212 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h8a1ac49fcd7ee8ce
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x56f77c5e27bf - core::fmt::rt::Argument::fmt::h635cbf3c6754cc90
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x56f77c5e27bf - core::fmt::write::hbdcc0ec4f1bab1db
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x56f77c59eaa3 - std::io::default_write_fmt::h2580ece0d4b58e51
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x56f77c59eaa3 - std::io::Write::write_fmt::hac9e42858f273b87
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x56f77c5aae32 - std::sys::backtrace::BacktraceLock::print::h052febbd86f7bf07
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x56f77c5aff8f - std::panicking::default_hook::{{closure}}::h66aeee20dd470abb
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x56f77c5afe21 - std::panicking::default_hook::h9d66b9642014ce48
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x56f77c53e07e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h8c698701e444e564
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x56f77c53e07e - test::test_main_with_exit_callback::{{closure}}::ha1c98e7b69c4defb
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x56f77c5b064f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc4f222a8a57c637a
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x56f77c5b064f - std::panicking::panic_with_hook::h6d5921a1a1fa5a8e
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x56f77c5b03fa - std::panicking::panic_handler::{{closure}}::hafeef6f707d43542
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x56f77c5aaf69 - std::sys::backtrace::__rust_end_short_backtrace::h08cbc3319a3d0120
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x56f77c592a4d - __rustc[ce5c411ff86ab1b2]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x56f77c5ea4c0 - core::panicking::panic_fmt::h774fb860369a0f7b
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56f77c503da8 - main::lexer::test_rust_lexer::h0da1f2f1c1b5b80c
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/lexer/mod.rs:16:19
[INFO] [stdout]   20:     0x56f77c503df7 - main::lexer::test_rust_lexer::{{closure}}::he16e60f44ff3f19a
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/lexer/mod.rs:8:21
[INFO] [stdout]   21:     0x56f77c4f6716 - core::ops::function::FnOnce::call_once::h5fc3683008cf6918
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x56f77c53decb - core::ops::function::FnOnce::call_once::h4f6eabe90cccb47d
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x56f77c53decb - test::__rust_begin_short_backtrace::h94208530f2b4c8c7
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x56f77c551edd - test::run_test_in_process::{{closure}}::hbdc6a45a78c46404
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x56f77c551edd - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h7f9d8efc7eedd165
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x56f77c551edd - std::panicking::catch_unwind::do_call::he5edbaf126c13b99
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:590:40
[INFO] [stdout]   27:     0x56f77c551edd - std::panicking::catch_unwind::h3d6a8652eceeabce
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:553:19
[INFO] [stdout]   28:     0x56f77c551edd - std::panic::catch_unwind::hbef0c501dd7bb498
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x56f77c551edd - test::run_test_in_process::h400008a46a5006a0
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x56f77c551edd - test::run_test::{{closure}}::h9a131655b31d9427
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x56f77c52b424 - test::run_test::{{closure}}::he4a7177c216308c0
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x56f77c52b424 - std::sys::backtrace::__rust_begin_short_backtrace::hd3980e9c55d6c539
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   33:     0x56f77c52ed5a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h18552df67c7aa9b8
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   34:     0x56f77c52ed5a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3d7b285234641a08
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x56f77c52ed5a - std::panicking::catch_unwind::do_call::h5a2b5cf36528a5b2
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:590:40
[INFO] [stdout]   36:     0x56f77c52ed5a - std::panicking::catch_unwind::h7e8b531bbda77d20
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:553:19
[INFO] [stdout]   37:     0x56f77c52ed5a - std::panic::catch_unwind::hf9bbb2040b4f1e6c
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x56f77c52ed5a - std::thread::Builder::spawn_unchecked_::{{closure}}::h600f92cf68549574
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   39:     0x56f77c52ed5a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb6607307df8a1847
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x56f77c5a636f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6891ad53a5ed6f52
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   41:     0x56f77c5a636f - std::sys::thread::unix::Thread::new::thread_start::h7f3e77fa86df70af
[INFO] [stdout]                                at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   42:     0x7942f81f7aa4 - <unknown>
[INFO] [stdout]   43:     0x7942f8284a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     lexer::test_rust_lexer
[INFO] [stdout]     parser::test_rust_parser
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 4 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test main`
[INFO] running `Command { std: "docker" "inspect" "5a90e2e98ad715e71e96640ef796a0ca3516c2cb742be29572270aa0a3e4770a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a90e2e98ad715e71e96640ef796a0ca3516c2cb742be29572270aa0a3e4770a", kill_on_drop: false }`
[INFO] [stdout] 5a90e2e98ad715e71e96640ef796a0ca3516c2cb742be29572270aa0a3e4770a
