[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#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F1uf3%2Fcdecl" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/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-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/1uf3/cdecl on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a00382d8c6663b002afdfa723128cdc354e65fa36494e15fcadc1ea596f57e26
[INFO] running `Command { std: "docker" "start" "-a" "a00382d8c6663b002afdfa723128cdc354e65fa36494e15fcadc1ea596f57e26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a00382d8c6663b002afdfa723128cdc354e65fa36494e15fcadc1ea596f57e26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a00382d8c6663b002afdfa723128cdc354e65fa36494e15fcadc1ea596f57e26", kill_on_drop: false }`
[INFO] [stdout] a00382d8c6663b002afdfa723128cdc354e65fa36494e15fcadc1ea596f57e26
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3c51df5036e8766f798f7dfacd3fb56648993bf0c3b8df0e72bcb90ad4e13072
[INFO] running `Command { std: "docker" "start" "-a" "3c51df5036e8766f798f7dfacd3fb56648993bf0c3b8df0e72bcb90ad4e13072", kill_on_drop: false }`
[INFO] [stderr]    Compiling cdecl v0.1.0 (/opt/rustwide/workdir)
[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)]` on by default
[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)]` 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)]` 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: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/lexer.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |                       ^^^^     ----- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for 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.19s
[INFO] running `Command { std: "docker" "inspect" "3c51df5036e8766f798f7dfacd3fb56648993bf0c3b8df0e72bcb90ad4e13072", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c51df5036e8766f798f7dfacd3fb56648993bf0c3b8df0e72bcb90ad4e13072", kill_on_drop: false }`
[INFO] [stdout] 3c51df5036e8766f798f7dfacd3fb56648993bf0c3b8df0e72bcb90ad4e13072
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4c55c01780e15cbb0341f810c39c36e71621d7a280a9fb4a6962f2c8c6761e61
[INFO] running `Command { std: "docker" "start" "-a" "4c55c01780e15cbb0341f810c39c36e71621d7a280a9fb4a6962f2c8c6761e61", kill_on_drop: false }`
[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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[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)]` 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)]` 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: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/lexer.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |                       ^^^^     ----- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer<'_> {
[INFO] [stdout]    |                                     ++++
[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)]` on by default
[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)]` 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)]` 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: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/lexer.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stdout]    |                       ^^^^     ----- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for 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 2.44s
[INFO] running `Command { std: "docker" "inspect" "4c55c01780e15cbb0341f810c39c36e71621d7a280a9fb4a6962f2c8c6761e61", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c55c01780e15cbb0341f810c39c36e71621d7a280a9fb4a6962f2c8c6761e61", kill_on_drop: false }`
[INFO] [stdout] 4c55c01780e15cbb0341f810c39c36e71621d7a280a9fb4a6962f2c8c6761e61
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 735eda58539a6b6958efcdaaa0bcad997ad68e3696a595c13fb1f8526c2c0d2a
[INFO] running `Command { std: "docker" "start" "-a" "735eda58539a6b6958efcdaaa0bcad997ad68e3696a595c13fb1f8526c2c0d2a", kill_on_drop: false }`
[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)]` on by default
[INFO] [stderr] 
[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)]` 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)]` 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: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/lexer.rs:33:23
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn new(input: &str) -> Lexer {
[INFO] [stderr]    |                       ^^^^     ----- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                       |
[INFO] [stderr]    |                       this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for 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 1 suggestion)
[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)]` 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-70118c2fda9f95b8)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test lexer::tests::test_tokenize_complex_struct ... 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_char_pointer ... ok
[INFO] [stdout] test tokenizer::test::test_tokenize_complex_struct_function ... ok
[INFO] [stdout] test lexer::tests::test_tokenize_complex_char_pointer ... 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_number ... 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" "735eda58539a6b6958efcdaaa0bcad997ad68e3696a595c13fb1f8526c2c0d2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "735eda58539a6b6958efcdaaa0bcad997ad68e3696a595c13fb1f8526c2c0d2a", kill_on_drop: false }`
[INFO] [stdout] 735eda58539a6b6958efcdaaa0bcad997ad68e3696a595c13fb1f8526c2c0d2a
