[INFO] cloning repository https://github.com/1uf3/cdecl
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/1uf3/cdecl" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F1uf3%2Fcdecl", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F1uf3%2Fcdecl'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 621841d4c35f9a7769da5dfa1803e9a614a1adac
[INFO] testing 1uf3/cdecl against master#1ef7943ee607160a564655b6596f83670ef95df5 for pr-146098-6
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F1uf3%2Fcdecl" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/1uf3/cdecl
[INFO] finished tweaking git repo https://github.com/1uf3/cdecl
[INFO] tweaked toml for git repo https://github.com/1uf3/cdecl written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/1uf3/cdecl on toolchain 1ef7943ee607160a564655b6596f83670ef95df5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/1uf3/cdecl 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" "+1ef7943ee607160a564655b6596f83670ef95df5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2c4a1b1e74d53db5392bf16e1734063792d204c4e73e91585edf052a8d4ff95f
[INFO] running `Command { std: "docker" "start" "-a" "2c4a1b1e74d53db5392bf16e1734063792d204c4e73e91585edf052a8d4ff95f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c4a1b1e74d53db5392bf16e1734063792d204c4e73e91585edf052a8d4ff95f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c4a1b1e74d53db5392bf16e1734063792d204c4e73e91585edf052a8d4ff95f", kill_on_drop: false }`
[INFO] [stdout] 2c4a1b1e74d53db5392bf16e1734063792d204c4e73e91585edf052a8d4ff95f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 360e0ce721578eb54365e33ef44b74b2d83d442f10ee880dfc72ac082feda8bd
[INFO] running `Command { std: "docker" "start" "-a" "360e0ce721578eb54365e33ef44b74b2d83d442f10ee880dfc72ac082feda8bd", kill_on_drop: false }`
[INFO] [stderr]    Compiling cdecl v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tokenizer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut size: i64 = i64::MAX;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/tokenizer.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |             TokenKind::Number(s) => {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/lexer.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lexer` is never constructed
[INFO] [stdout]   --> src/lexer.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Lexer<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LexerError` is never constructed
[INFO] [stdout]   --> src/lexer.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct LexerError {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lexer.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl LexerError {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 25 |     fn new(msg: &str) -> LexerError {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `tokenize`, `next_return_token`, `next_token`, `parse_number_token`, and `parse_string_token` are never used
[INFO] [stdout]   --> src/lexer.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl<'a> Lexer<'a> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn tokenize(&mut self) -> Result<Vec<TokenKind>, LexerError> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn next_return_token(&mut self, token: TokenKind) -> Option<TokenKind> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn next_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn parse_number_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn parse_string_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/tokenizer.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Token {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParserError` is never constructed
[INFO] [stdout]   --> src/tokenizer.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ParserError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tokenizer.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ParserError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn new(msg: &str) -> ParserError {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/tokenizer.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Parser {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tokenizer.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  36 |     pub fn new(kinds: Vec<TokenKind>) -> Parser {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     fn parse_array(&mut self) -> Result<Token, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     fn parse_function(&mut self) -> Result<Token, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn parse(&mut self) -> Result<Vec<Token>, ParserError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn peek(&self) -> Option<&TokenKind> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn peek_expect(&self) -> Result<&TokenKind, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn next(&mut self) -> Option<&TokenKind> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn next_expect(&mut self) -> Result<&TokenKind, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_string` is never used
[INFO] [stdout]    --> src/tokenizer.rs:227:4
[INFO] [stdout]     |
[INFO] [stdout] 227 | fn classify_string(s: &str) -> Token {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lexer.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |                       ^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.33s
[INFO] running `Command { std: "docker" "inspect" "360e0ce721578eb54365e33ef44b74b2d83d442f10ee880dfc72ac082feda8bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "360e0ce721578eb54365e33ef44b74b2d83d442f10ee880dfc72ac082feda8bd", kill_on_drop: false }`
[INFO] [stdout] 360e0ce721578eb54365e33ef44b74b2d83d442f10ee880dfc72ac082feda8bd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7c23c272b1086d347e93995b4537e8395ef1d68107ef1119a2529b87397247bf
[INFO] running `Command { std: "docker" "start" "-a" "7c23c272b1086d347e93995b4537e8395ef1d68107ef1119a2529b87397247bf", kill_on_drop: false }`
[INFO] [stderr]    Compiling cdecl v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tokenizer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut size: i64 = i64::MAX;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/tokenizer.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |             TokenKind::Number(s) => {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/lexer.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lexer` is never constructed
[INFO] [stdout]   --> src/lexer.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Lexer<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LexerError` is never constructed
[INFO] [stdout]   --> src/lexer.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct LexerError {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lexer.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl LexerError {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 25 |     fn new(msg: &str) -> LexerError {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `tokenize`, `next_return_token`, `next_token`, `parse_number_token`, and `parse_string_token` are never used
[INFO] [stdout]   --> src/lexer.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl<'a> Lexer<'a> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn tokenize(&mut self) -> Result<Vec<TokenKind>, LexerError> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn next_return_token(&mut self, token: TokenKind) -> Option<TokenKind> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn next_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn parse_number_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn parse_string_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/tokenizer.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Token {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParserError` is never constructed
[INFO] [stdout]   --> src/tokenizer.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ParserError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tokenizer.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl ParserError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn new(msg: &str) -> ParserError {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/tokenizer.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Parser {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tokenizer.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  36 |     pub fn new(kinds: Vec<TokenKind>) -> Parser {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     fn parse_array(&mut self) -> Result<Token, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     fn parse_function(&mut self) -> Result<Token, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn parse(&mut self) -> Result<Vec<Token>, ParserError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn peek(&self) -> Option<&TokenKind> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn peek_expect(&self) -> Result<&TokenKind, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn next(&mut self) -> Option<&TokenKind> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn next_expect(&mut self) -> Result<&TokenKind, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_string` is never used
[INFO] [stdout]    --> src/tokenizer.rs:227:4
[INFO] [stdout]     |
[INFO] [stdout] 227 | fn classify_string(s: &str) -> Token {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lexer.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |                       ^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tokenizer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut size: i64 = i64::MAX;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/tokenizer.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |             TokenKind::Number(s) => {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `msg` is never read
[INFO] [stdout]   --> src/lexer.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct LexerError {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 21 |     pub msg: String,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerError` has a derived impl for the trait `Debug`, 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 `msg` is never read
[INFO] [stdout]   --> src/tokenizer.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ParserError {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 20 |     pub msg: String,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParserError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lexer.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |                       ^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s
[INFO] running `Command { std: "docker" "inspect" "7c23c272b1086d347e93995b4537e8395ef1d68107ef1119a2529b87397247bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7c23c272b1086d347e93995b4537e8395ef1d68107ef1119a2529b87397247bf", kill_on_drop: false }`
[INFO] [stdout] 7c23c272b1086d347e93995b4537e8395ef1d68107ef1119a2529b87397247bf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dfe6e2d06c3de3b9c25254039f43588b666886b8c8555ad59e01438acf858945
[INFO] running `Command { std: "docker" "start" "-a" "dfe6e2d06c3de3b9c25254039f43588b666886b8c8555ad59e01438acf858945", kill_on_drop: false }`
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/tokenizer.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |         let mut size: i64 = i64::MAX;
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/tokenizer.rs:59:31
[INFO] [stderr]    |
[INFO] [stderr] 59 |             TokenKind::Number(s) => {
[INFO] [stderr]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `TokenKind` is never used
[INFO] [stderr]  --> src/lexer.rs:2:10
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub enum TokenKind {
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Lexer` is never constructed
[INFO] [stderr]   --> src/lexer.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct Lexer<'a> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LexerError` is never constructed
[INFO] [stderr]   --> src/lexer.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub struct LexerError {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/lexer.rs:25:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl LexerError {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 25 |     fn new(msg: &str) -> LexerError {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `tokenize`, `next_return_token`, `next_token`, `parse_number_token`, and `parse_string_token` are never used
[INFO] [stderr]   --> src/lexer.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl<'a> Lexer<'a> {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn tokenize(&mut self) -> Result<Vec<TokenKind>, LexerError> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52 |     fn next_return_token(&mut self, token: TokenKind) -> Option<TokenKind> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     fn next_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 79 |     fn parse_number_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 96 |     fn parse_string_token(&mut self) -> Result<Option<TokenKind>, LexerError> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Token` is never used
[INFO] [stderr]  --> src/tokenizer.rs:6:10
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub enum Token {
[INFO] [stderr]   |          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ParserError` is never constructed
[INFO] [stderr]   --> src/tokenizer.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct ParserError {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/tokenizer.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl ParserError {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] 24 |     pub fn new(msg: &str) -> ParserError {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Parser` is never constructed
[INFO] [stderr]   --> src/tokenizer.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct Parser {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/tokenizer.rs:36:12
[INFO] [stderr]     |
[INFO] [stderr]  35 | impl Parser {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr]  36 |     pub fn new(kinds: Vec<TokenKind>) -> Parser {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  40 |     fn parse_array(&mut self) -> Result<Token, ParserError> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  72 |     fn parse_function(&mut self) -> Result<Token, ParserError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn parse(&mut self) -> Result<Vec<Token>, ParserError> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 207 |     fn peek(&self) -> Option<&TokenKind> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 211 |     fn peek_expect(&self) -> Result<&TokenKind, ParserError> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     fn next(&mut self) -> Option<&TokenKind> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     fn next_expect(&mut self) -> Result<&TokenKind, ParserError> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `classify_string` is never used
[INFO] [stderr]    --> src/tokenizer.rs:227:4
[INFO] [stderr]     |
[INFO] [stderr] 227 | fn classify_string(s: &str) -> Token {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/lexer.rs:33:23
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stderr]    |                       ^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                       |
[INFO] [stderr]    |                       the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn new(input: &str) -> Lexer<'_> {
[INFO] [stderr]    |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `cdecl` (lib) generated 14 warnings (run `cargo fix --lib -p cdecl` to apply 3 suggestions)
[INFO] [stderr] warning: field `msg` is never read
[INFO] [stderr]   --> src/lexer.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub struct LexerError {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] 21 |     pub msg: String,
[INFO] [stderr]    |         ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LexerError` has a derived impl for the trait `Debug`, 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 `msg` is never read
[INFO] [stderr]   --> src/tokenizer.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct ParserError {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 20 |     pub msg: String,
[INFO] [stderr]    |         ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ParserError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `cdecl` (lib test) generated 5 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cdecl-66f3fdad95f64585)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test lexer::tests::test_number ... ok
[INFO] [stdout] test lexer::tests::test_tokenize_complex_char_pointer ... ok
[INFO] [stdout] test lexer::tests::test_tokenize_complex_struct ... ok
[INFO] [stdout] test lexer::tests::test_tokenize_default_main ... ok
[INFO] [stdout] test lexer::tests::test_string ... ok
[INFO] [stdout] test lexer::tests::test_tokenize_default_main_args ... ok
[INFO] [stdout] test tokenizer::test::test_parse_array ... ok
[INFO] [stdout] test tokenizer::test::test_parse_empty_array ... ok
[INFO] [stdout] test tokenizer::test::test_parse_empty_function ... ok
[INFO] [stdout] test tokenizer::test::test_parse_function ... ok
[INFO] [stdout] test tokenizer::test::test_tokenize_complex_struct_function ... ok
[INFO] [stdout] test tokenizer::test::test_tokenize_complex_char_pointer ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cdecl
[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] running `Command { std: "docker" "inspect" "dfe6e2d06c3de3b9c25254039f43588b666886b8c8555ad59e01438acf858945", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfe6e2d06c3de3b9c25254039f43588b666886b8c8555ad59e01438acf858945", kill_on_drop: false }`
[INFO] [stdout] dfe6e2d06c3de3b9c25254039f43588b666886b8c8555ad59e01438acf858945
