[INFO] cloning repository https://github.com/pqnelson/f77
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pqnelson/f77" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpqnelson%2Ff77", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpqnelson%2Ff77'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a6cfa1f4b826ec94d60809fd2fbde7862cf75e01
[INFO] testing pqnelson/f77 against beta-2025-09-21 for beta-1.91-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpqnelson%2Ff77" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pqnelson/f77
[INFO] finished tweaking git repo https://github.com/pqnelson/f77
[INFO] tweaked toml for git repo https://github.com/pqnelson/f77 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pqnelson/f77 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pqnelson/f77 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2573e468b1628a87390563049c6d202e224a91f5ed083c989f79564fc3beb891
[INFO] running `Command { std: "docker" "start" "-a" "2573e468b1628a87390563049c6d202e224a91f5ed083c989f79564fc3beb891", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2573e468b1628a87390563049c6d202e224a91f5ed083c989f79564fc3beb891", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2573e468b1628a87390563049c6d202e224a91f5ed083c989f79564fc3beb891", kill_on_drop: false }`
[INFO] [stdout] 2573e468b1628a87390563049c6d202e224a91f5ed083c989f79564fc3beb891
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e2be5766028fca507a68f691684585f51b60bed241cc93d6a3a346a00b67b3df
[INFO] running `Command { std: "docker" "start" "-a" "e2be5766028fca507a68f691684585f51b60bed241cc93d6a3a346a00b67b3df", kill_on_drop: false }`
[INFO] [stderr]    Compiling f77 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Type`
[INFO] [stdout]   --> src/ast.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Type,
[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: `super::*`
[INFO] [stdout]    --> src/ast.rs:417:13
[INFO] [stdout]     |
[INFO] [stdout] 417 |         use super::*;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:410:57
[INFO] [stdout]     |
[INFO] [stdout] 410 |         matches!(self, ProgramUnit::<E>::Program {name: the_name, ..})
[INFO] [stdout]     |                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:411:65
[INFO] [stdout]     |
[INFO] [stdout] 411 |             || matches!(self, ProgramUnit::<E>::Function {name: the_name, ..})
[INFO] [stdout]     |                                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:412:67
[INFO] [stdout]     |
[INFO] [stdout] 412 |             || matches!(self, ProgramUnit::<E>::Subroutine {name: the_name, ..})
[INFO] [stdout]     |                                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:409:28
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn is_named(&self, the_name: &str) -> bool {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/parser.rs:423:25
[INFO] [stdout]     |
[INFO] [stdout] 423 |                         other => {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/parser.rs:460:25
[INFO] [stdout]     |
[INFO] [stdout] 460 |                         other => {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]    --> src/parser.rs:786:33
[INFO] [stdout]     |
[INFO] [stdout] 786 |                 TokenType::Type(kind) => {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BaseType` is never used
[INFO] [stdout]   --> src/lexer.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum BaseType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenType` is never used
[INFO] [stdout]   --> src/lexer.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum TokenType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_continuation` and `is_label` are never used
[INFO] [stdout]   --> src/lexer.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl TokenType {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 75 |     pub fn is_continuation(&mut self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn is_label(&mut self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]    --> src/lexer.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct Token {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/lexer.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl Token {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 165 |     pub fn new(t: TokenType, l: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_keyword_token` is never used
[INFO] [stdout]    --> src/lexer.rs:173:4
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn get_keyword_token(ident: &[char]) -> Result<TokenType, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lexer` is never constructed
[INFO] [stdout]    --> src/lexer.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub struct Lexer {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_letter` is never used
[INFO] [stdout]    --> src/lexer.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn is_letter(ch: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `implies` is never used
[INFO] [stdout]    --> src/lexer.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn implies(antecedent: bool, consequent: bool) -> bool {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_id_start` is never used
[INFO] [stdout]    --> src/lexer.rs:234:4
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn is_id_start(c: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_identifier` is never used
[INFO] [stdout]    --> src/lexer.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn is_identifier(c: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_sign` is never used
[INFO] [stdout]    --> src/lexer.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn is_sign(c: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_exponent` is never used
[INFO] [stdout]    --> src/lexer.rs:246:4
[INFO] [stdout]     |
[INFO] [stdout] 246 | fn is_exponent(c: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lexer.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl Lexer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 251 |     // INVARIANT: 1 <= Lexer.offset 
[INFO] [stdout] 252 |     pub fn new(input : Vec<char>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn line_number(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn is_finished(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn read_char(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn skipping_whitespace(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn is_comment(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn try_label(&mut self) -> Option<TokenType> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     fn is_continuation(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn skip_rest_of_line(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn skipping_comment(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     fn peek(&mut self) -> char {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn peek_next(&mut self) -> char {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn lex_number(&mut self) -> TokenType {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     fn read_identifier(&mut self) -> Vec<char> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     fn lex_string(&mut self) -> TokenType {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn next_token_type(&mut self) -> TokenType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 554 |     pub fn next_token(&mut self) -> Token {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BinOp` is never used
[INFO] [stdout]   --> src/parse_tree.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum BinOp {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_to_binop` is never used
[INFO] [stdout]   --> src/parse_tree.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn token_to_binop(token: Token) -> BinOp {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UnOp` is never used
[INFO] [stdout]   --> src/parse_tree.rs:61:10
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub enum UnOp {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_to_unary_op` is never used
[INFO] [stdout]   --> src/parse_tree.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn token_to_unary_op(token: Token) -> UnOp {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]    --> src/parse_tree.rs:127:10
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub enum Expr {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Command` is never used
[INFO] [stdout]    --> src/parse_tree.rs:153:10
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub enum Command<E: std::cmp::PartialEq> {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Statement` is never constructed
[INFO] [stdout]    --> src/parse_tree.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct Statement<E: std::cmp::PartialEq> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_continue`, `is_end`, `is_stop`, and `is_return` are never used
[INFO] [stdout]    --> src/parse_tree.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout] 196 | impl<E: std::cmp::PartialEq> Statement<E> {
[INFO] [stdout]     | ----------------------------------------- methods in this implementation
[INFO] [stdout] 197 |     pub fn is_continue(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn is_end(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn is_stop(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn is_return(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]    --> src/parse_tree.rs:224:10
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub enum Type {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ArrayIndex` is never used
[INFO] [stdout]    --> src/parse_tree.rs:247:10
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub type ArrayIndex = isize;
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArraySpec` is never used
[INFO] [stdout]    --> src/parse_tree.rs:263:10
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub enum ArraySpec<E: std::cmp::PartialEq> {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rank` is never used
[INFO] [stdout]    --> src/parse_tree.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | impl<E: std::cmp::PartialEq> ArraySpec<E> {
[INFO] [stdout]     | ----------------------------------------- method in this implementation
[INFO] [stdout] 272 |     pub fn rank(self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VarDeclaration` is never constructed
[INFO] [stdout]    --> src/parse_tree.rs:300:12
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub struct VarDeclaration<E: std::cmp::PartialEq> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Specification` is never used
[INFO] [stdout]    --> src/parse_tree.rs:310:10
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub enum Specification<E: std::cmp::PartialEq> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name_collides_with` and `has_name` are never used
[INFO] [stdout]    --> src/parse_tree.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | impl<E: std::cmp::PartialEq> Specification<E> {
[INFO] [stdout]     | --------------------------------------------- methods in this implementation
[INFO] [stdout] 316 |     pub fn name_collides_with(&self, other: &VarDeclaration<E>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn has_name(&self, other_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rank` is never used
[INFO] [stdout]    --> src/parse_tree.rs:359:12
[INFO] [stdout]     |
[INFO] [stdout] 358 | impl<E: std::cmp::PartialEq> VarDeclaration<E> {
[INFO] [stdout]     | ---------------------------------------------- method in this implementation
[INFO] [stdout] 359 |     pub fn rank(self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProgramUnit` is never used
[INFO] [stdout]    --> src/parse_tree.rs:365:10
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub enum ProgramUnit<E: std::cmp::PartialEq> {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProgramUnitKind` is never used
[INFO] [stdout]    --> src/parse_tree.rs:388:10
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub enum ProgramUnitKind {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `kind`, `is_empty`, `is_named`, `get_name`, and `shares_name` are never used
[INFO] [stdout]    --> src/parse_tree.rs:396:12
[INFO] [stdout]     |
[INFO] [stdout] 395 | impl<E: std::cmp::PartialEq> ProgramUnit<E> {
[INFO] [stdout]     | ------------------------------------------- methods in this implementation
[INFO] [stdout] 396 |     pub fn kind(&self) -> ProgramUnitKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn is_named(&self, the_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn get_name(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn shares_name(&self, other: &ProgramUnit<E>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]    --> src/parse_tree.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 450 | pub struct Program<E: std::cmp::PartialEq> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `has_unit_sharing_name`, `index_for`, `subroutine_index`, and `push` are never used
[INFO] [stdout]    --> src/parse_tree.rs:457:12
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl<E: std::cmp::PartialEq> Program<E> {
[INFO] [stdout]     | --------------------------------------- associated items in this implementation
[INFO] [stdout] 457 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     pub fn has_unit_sharing_name(&self, unit: &ProgramUnit<E>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn index_for(&self, name: &str) -> Option<(usize,ProgramUnitKind)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn subroutine_index(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn push(&mut self, unit: ProgramUnit<E>) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Parser {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONTINUATIONS` is never used
[INFO] [stdout]   --> src/parser.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const MAX_CONTINUATIONS : i16 = 19;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/parser.rs:43:12
[INFO] [stdout]      |
[INFO] [stdout]   42 | impl Parser {
[INFO] [stdout]      | ----------- associated items in this implementation
[INFO] [stdout]   43 |     pub fn new(scanner: Lexer) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]   60 |     fn reset_continuation_count(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   65 |     fn inc_continuation_count(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   79 |     fn is_finished(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   94 |     fn next_token(&mut self) -> Token {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  113 |     fn populate_current(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  119 |     fn peek(&mut self) -> &Option<Token> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  124 |     fn push_back(&mut self, token: Token) {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  128 |     fn advance(&mut self) -> Token {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  139 |     fn matches(&mut self, types: &[TokenType]) -> bool {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  151 |     fn check(&mut self, token_type: TokenType) -> bool {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  158 |     fn consume(&mut self, expected: TokenType, msg: &str) {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  178 |     fn is_at_next_statement(&mut self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  193 |     fn synchronize(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  212 |     pub fn parse_all(&mut self) -> Program<Expr> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  223 |     fn program_unit(&mut self) -> ProgramUnit<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  270 |     fn specification(&mut self) -> Vec<Specification<Expr>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  313 |     fn parameter_spec(&mut self) -> Vec<(String, Expr)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  369 |     fn determine_type(&mut self) -> Type {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  486 |     fn type_declarations(&mut self) -> Vec<VarDeclaration<Expr>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  542 |     fn array_spec(&mut self) -> ArraySpec<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  631 |     fn assumed_shape(&mut self, mut indices: Vec<Option<Expr>>) -> ArraySpec<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  661 |     fn explicit_shape_or_assumed_size(&mut self, mut indices: Vec<(Option<Expr>,Expr)>) -> ArraySpec<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  736 |     fn dummy_args(&mut self) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  758 |     fn determine_type_from_spec(&mut self, var_name: &String, spec: &Vec<Specification<Expr>>)
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  779 |     fn function(&mut self) -> ProgramUnit<Expr> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  842 |     fn subroutine(&mut self) -> ProgramUnit<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  878 |     fn program(&mut self) -> ProgramUnit<Expr> {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  911 |     fn io_list(&mut self) -> Vec<Expr> {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  925 |     fn read(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  947 |     fn write(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  975 |     fn goto_statement(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1000 |     fn continue_statement(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1083 |     fn if_construct(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1109 |     fn end_if(&mut self, label: Option<i32>, test: Expr, true_branch: Vec<Statement<Expr>>, false_branch: Vec<Statement<Expr>>) -> Statem...
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1136 |     fn block_if(&mut self, label: Option<i32>, test: Expr) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1184 |     fn arithmetic_if(&mut self, label: Option<i32>, test: Expr) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1215 |     fn if_statement(&mut self, label: Option<i32>, test: Expr) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1242 |     fn block_do_construct(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1267 |     fn loop_control(&mut self) -> (Expr, Expr, Expr, Option<Expr>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1296 |     fn label_do_statement(&mut self, label: Option<i32>, target: i32) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1337 |     fn nonlabel_do_statement(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1388 |     fn call_subroutine(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1427 |     fn assignment_or_expr(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1456 |     fn statement_label(&mut self) -> Option<i32> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1479 |     fn illegal_statement(&mut self, label: Option<i32>) -> Statement<Expr> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1507 |     pub fn statement(&mut self) -> Statement<Expr> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1548 |     pub fn expr(&mut self) -> Expr {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1557 |     fn level_5_expr(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1570 |     fn equiv_operand(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1583 |     fn or_operand(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1596 |     fn and_operand(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1611 |     fn level_4_expr(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1627 |     fn level_3_expr(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1642 |     fn mult_operand(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1658 |     fn add_operand(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1673 |     fn level_2_expr(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1693 |     fn level_1_expr(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1701 |     fn subscript(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1714 |     fn section_triplet_tail(&mut self) -> Option<(Option<Box<Expr>>,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1751 |     fn section_subscript(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1773 |     fn array_section_or_fn_call(&mut self, identifier: String) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1804 |     fn named_data_ref(&mut self, identifier: Token) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1831 |     fn intrinsic_real_conversion(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1848 |     fn primary(&mut self) -> Expr {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/ast.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Expr {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `var_index` is never used
[INFO] [stdout]   --> src/ast.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn var_index<E: std::cmp::PartialEq>(name: &str,
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fn_index` is never used
[INFO] [stdout]   --> src/ast.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn fn_index<E: std::cmp::PartialEq>(name: &str,
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expr` is never used
[INFO] [stdout]   --> src/ast.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn expr<E1: std::cmp::PartialEq,E2: std::cmp::PartialEq>(program: &Program<E1>, spec: &Vec<Specification<E2>>, e: &parse_tree::Expr) ...
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `array_spec` is never used
[INFO] [stdout]    --> src/ast.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 |     fn array_spec(program: &Program<parse_tree::Expr>,
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `specification` is never used
[INFO] [stdout]    --> src/ast.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 217 |     fn specification(program: &Program<parse_tree::Expr>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `statement` is never used
[INFO] [stdout]    --> src/ast.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn statement(program: &Program<parse_tree::Expr>,
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `program_unit` is never used
[INFO] [stdout]    --> src/ast.rs:340:12
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn program_unit(program: &Program<parse_tree::Expr>,
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `program` is never used
[INFO] [stdout]    --> src/ast.rs:398:12
[INFO] [stdout]     |
[INFO] [stdout] 398 |     pub fn program(src: Program<parse_tree::Expr>) -> Program<super::Expr> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.64s
[INFO] running `Command { std: "docker" "inspect" "e2be5766028fca507a68f691684585f51b60bed241cc93d6a3a346a00b67b3df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2be5766028fca507a68f691684585f51b60bed241cc93d6a3a346a00b67b3df", kill_on_drop: false }`
[INFO] [stdout] e2be5766028fca507a68f691684585f51b60bed241cc93d6a3a346a00b67b3df
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e578995b258e6e7399d9d43ede3fcd640864f1d8fc9c8b481338c8df3cb7c434
[INFO] running `Command { std: "docker" "start" "-a" "e578995b258e6e7399d9d43ede3fcd640864f1d8fc9c8b481338c8df3cb7c434", kill_on_drop: false }`
[INFO] [stderr]    Compiling f77 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:410:57
[INFO] [stdout]     |
[INFO] [stdout] 410 |         matches!(self, ProgramUnit::<E>::Program {name: the_name, ..})
[INFO] [stdout]     |                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:411:65
[INFO] [stdout]     |
[INFO] [stdout] 411 |             || matches!(self, ProgramUnit::<E>::Function {name: the_name, ..})
[INFO] [stdout]     |                                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:412:67
[INFO] [stdout]     |
[INFO] [stdout] 412 |             || matches!(self, ProgramUnit::<E>::Subroutine {name: the_name, ..})
[INFO] [stdout]     |                                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_name`
[INFO] [stdout]    --> src/parse_tree.rs:409:28
[INFO] [stdout]     |
[INFO] [stdout] 409 |     pub fn is_named(&self, the_name: &str) -> bool {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/parser.rs:423:25
[INFO] [stdout]     |
[INFO] [stdout] 423 |                         other => {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/parser.rs:460:25
[INFO] [stdout]     |
[INFO] [stdout] 460 |                         other => {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]    --> src/parser.rs:786:33
[INFO] [stdout]     |
[INFO] [stdout] 786 |                 TokenType::Type(kind) => {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_label` is never used
[INFO] [stdout]   --> src/lexer.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl TokenType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn is_label(&mut self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_letter` is never used
[INFO] [stdout]    --> src/lexer.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn is_letter(ch: char) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Float32`, `Int32`, `Logical`, and `ArrayElement` are never constructed
[INFO] [stdout]    --> src/parse_tree.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub enum Expr {
[INFO] [stdout]     |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 130 |     Float32(f32),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 131 |     Float64(f64),
[INFO] [stdout] 132 |     Int32(i32),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 133 |     Int64(i64),
[INFO] [stdout] 134 |     Logical(bool),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     ArrayElement(String, Vec<Expr>), // e.g., "MYARRAY(3,65,2)"
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `External` is never constructed
[INFO] [stdout]    --> src/parse_tree.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub enum Type {
[INFO] [stdout]     |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 233 |     External   = 0x40,  // 0b0100_0000 function reference
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Type` 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: type alias `ArrayIndex` is never used
[INFO] [stdout]    --> src/parse_tree.rs:247:10
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub type ArrayIndex = isize;
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rank` is never used
[INFO] [stdout]    --> src/parse_tree.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | impl<E: std::cmp::PartialEq> ArraySpec<E> {
[INFO] [stdout]     | ----------------------------------------- method in this implementation
[INFO] [stdout] 272 |     pub fn rank(self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rank` is never used
[INFO] [stdout]    --> src/parse_tree.rs:359:12
[INFO] [stdout]     |
[INFO] [stdout] 358 | impl<E: std::cmp::PartialEq> VarDeclaration<E> {
[INFO] [stdout]     | ---------------------------------------------- method in this implementation
[INFO] [stdout] 359 |     pub fn rank(self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/parse_tree.rs:405:12
[INFO] [stdout]     |
[INFO] [stdout] 395 | impl<E: std::cmp::PartialEq> ProgramUnit<E> {
[INFO] [stdout]     | ------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_panicking` is never read
[INFO] [stdout]   --> src/parser.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Parser {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     is_panicking: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push_back`, `is_at_next_statement`, and `synchronize` are never used
[INFO] [stdout]    --> src/parser.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn push_back(&mut self, token: Token) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn is_at_next_statement(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     fn synchronize(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Subroutine` and `Grouping` are never constructed
[INFO] [stdout]   --> src/ast.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     Subroutine(usize), // for "call subroutine" statements
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Grouping(Box<Expr>),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.75s
[INFO] running `Command { std: "docker" "inspect" "e578995b258e6e7399d9d43ede3fcd640864f1d8fc9c8b481338c8df3cb7c434", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e578995b258e6e7399d9d43ede3fcd640864f1d8fc9c8b481338c8df3cb7c434", kill_on_drop: false }`
[INFO] [stdout] e578995b258e6e7399d9d43ede3fcd640864f1d8fc9c8b481338c8df3cb7c434
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 75c55a47048e98c57726b8fab7d2699ffb9b32b32c44b0b488e96a1d9373ba2b
[INFO] running `Command { std: "docker" "start" "-a" "75c55a47048e98c57726b8fab7d2699ffb9b32b32c44b0b488e96a1d9373ba2b", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `the_name`
[INFO] [stderr]    --> src/parse_tree.rs:410:57
[INFO] [stderr]     |
[INFO] [stderr] 410 |         matches!(self, ProgramUnit::<E>::Program {name: the_name, ..})
[INFO] [stderr]     |                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `the_name`
[INFO] [stderr]    --> src/parse_tree.rs:411:65
[INFO] [stderr]     |
[INFO] [stderr] 411 |             || matches!(self, ProgramUnit::<E>::Function {name: the_name, ..})
[INFO] [stderr]     |                                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `the_name`
[INFO] [stderr]    --> src/parse_tree.rs:412:67
[INFO] [stderr]     |
[INFO] [stderr] 412 |             || matches!(self, ProgramUnit::<E>::Subroutine {name: the_name, ..})
[INFO] [stderr]     |                                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `the_name`
[INFO] [stderr]    --> src/parse_tree.rs:409:28
[INFO] [stderr]     |
[INFO] [stderr] 409 |     pub fn is_named(&self, the_name: &str) -> bool {
[INFO] [stderr]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/parser.rs:423:25
[INFO] [stderr]     |
[INFO] [stderr] 423 |                         other => {
[INFO] [stderr]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/parser.rs:460:25
[INFO] [stderr]     |
[INFO] [stderr] 460 |                         other => {
[INFO] [stderr]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `kind`
[INFO] [stderr]    --> src/parser.rs:786:33
[INFO] [stderr]     |
[INFO] [stderr] 786 |                 TokenType::Type(kind) => {
[INFO] [stderr]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_label` is never used
[INFO] [stderr]   --> src/lexer.rs:79:12
[INFO] [stderr]    |
[INFO] [stderr] 74 | impl TokenType {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 79 |     pub fn is_label(&mut self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_letter` is never used
[INFO] [stderr]    --> src/lexer.rs:226:4
[INFO] [stderr]     |
[INFO] [stderr] 226 | fn is_letter(ch: char) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Float32`, `Int32`, `Logical`, and `ArrayElement` are never constructed
[INFO] [stderr]    --> src/parse_tree.rs:130:5
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub enum Expr {
[INFO] [stderr]     |          ---- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 130 |     Float32(f32),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 131 |     Float64(f64),
[INFO] [stderr] 132 |     Int32(i32),
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 133 |     Int64(i64),
[INFO] [stderr] 134 |     Logical(bool),
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 146 |     ArrayElement(String, Vec<Expr>), // e.g., "MYARRAY(3,65,2)"
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `External` is never constructed
[INFO] [stderr]    --> src/parse_tree.rs:233:5
[INFO] [stderr]     |
[INFO] [stderr] 224 | pub enum Type {
[INFO] [stderr]     |          ---- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 233 |     External   = 0x40,  // 0b0100_0000 function reference
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ArrayIndex` is never used
[INFO] [stderr]    --> src/parse_tree.rs:247:10
[INFO] [stderr]     |
[INFO] [stderr] 247 | pub type ArrayIndex = isize;
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `rank` is never used
[INFO] [stderr]    --> src/parse_tree.rs:272:12
[INFO] [stderr]     |
[INFO] [stderr] 271 | impl<E: std::cmp::PartialEq> ArraySpec<E> {
[INFO] [stderr]     | ----------------------------------------- method in this implementation
[INFO] [stderr] 272 |     pub fn rank(self) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `rank` is never used
[INFO] [stderr]    --> src/parse_tree.rs:359:12
[INFO] [stderr]     |
[INFO] [stderr] 358 | impl<E: std::cmp::PartialEq> VarDeclaration<E> {
[INFO] [stderr]     | ---------------------------------------------- method in this implementation
[INFO] [stderr] 359 |     pub fn rank(self) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_empty` is never used
[INFO] [stderr]    --> src/parse_tree.rs:405:12
[INFO] [stderr]     |
[INFO] [stderr] 395 | impl<E: std::cmp::PartialEq> ProgramUnit<E> {
[INFO] [stderr]     | ------------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 405 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `is_panicking` is never read
[INFO] [stderr]   --> src/parser.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct Parser {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 21 |     is_panicking: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `push_back`, `is_at_next_statement`, and `synchronize` are never used
[INFO] [stderr]    --> src/parser.rs:124:8
[INFO] [stderr]     |
[INFO] [stderr]  42 | impl Parser {
[INFO] [stderr]     | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 124 |     fn push_back(&mut self, token: Token) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 178 |     fn is_at_next_statement(&mut self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 193 |     fn synchronize(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Subroutine` and `Grouping` are never constructed
[INFO] [stderr]   --> src/ast.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub enum Expr {
[INFO] [stderr]    |          ---- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 26 |     Subroutine(usize), // for "call subroutine" statements
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     Grouping(Box<Expr>),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `f77` (bin "f77" test) generated 18 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/f77-8ddf91abb7347f15)
[INFO] [stdout] 
[INFO] [stdout] running 168 tests
[INFO] [stdout] test ast::disambiguate::tests::subroutine_scale1 ... ok
[INFO] [stdout] test lexer::tests::lex_character_type ... ok
[INFO] [stdout] test lexer::tests::dot_should_start_literal ... ok
[INFO] [stdout] test lexer::tests::lex_comma ... ok
[INFO] [stdout] test lexer::tests::lex_function ... ok
[INFO] [stdout] test lexer::tests::lex_continue ... ok
[INFO] [stdout] test lexer::tests::lex_else ... ok
[INFO] [stdout] test lexer::tests::lex_endif ... ok
[INFO] [stdout] test lexer::tests::lex_eqv ... ok
[INFO] [stdout] test lexer::tests::lex_fn_name ... ok
[INFO] [stdout] test lexer::tests::lex_goto ... ok
[INFO] [stdout] test lexer::tests::lex_gt ... ok
[INFO] [stdout] test lexer::tests::lex_integer_type ... ok
[INFO] [stdout] test lexer::tests::lex_le ... ok
[INFO] [stdout] test lexer::tests::lex_left_paren ... ok
[INFO] [stdout] test lexer::tests::lex_logical_type ... ok
[INFO] [stdout] test lexer::tests::lex_lt ... ok
[INFO] [stdout] test lexer::tests::lex_minus ... ok
[INFO] [stdout] test lexer::tests::lex_neqv ... ok
[INFO] [stdout] test lexer::tests::lex_not ... ok
[INFO] [stdout] test lexer::tests::lex_pi_as_float ... ok
[INFO] [stdout] test lexer::tests::lex_and ... ok
[INFO] [stdout] test lexer::tests::lex_pi_e_minus2_as_float ... ok
[INFO] [stdout] test lexer::tests::lex_pi_e_plus2_as_float ... ok
[INFO] [stdout] test lexer::tests::lex_pi_screaming_e_2_as_float ... ok
[INFO] [stdout] test lexer::tests::lex_pie2_as_float ... ok
[INFO] [stdout] test lexer::tests::lex_plus ... ok
[INFO] [stdout] test lexer::tests::lex_or ... ok
[INFO] [stdout] test lexer::tests::lex_pow ... ok
[INFO] [stdout] test lexer::tests::lex_real_type ... ok
[INFO] [stdout] test lexer::tests::lex_return ... ok
[INFO] [stdout] test lexer::tests::lex_right_paren ... ok
[INFO] [stdout] test lexer::tests::lex_simple_string_with_apostrophe ... ok
[INFO] [stdout] test lexer::tests::lex_star ... ok
[INFO] [stdout] test lexer::tests::lex_simple_string ... ok
[INFO] [stdout] test lexer::tests::lex_stop ... ok
[INFO] [stdout] test lexer::tests::lex_write ... ok
[INFO] [stdout] test lexer::tests::lex_xor ... ok
[INFO] [stdout] test lexer::tests::lexes_param_kw ... ok
[INFO] [stdout] test lexer::tests::lex_true ... ok
[INFO] [stdout] test lexer::tests::lex_subroutine ... ok
[INFO] [stdout] test lexer::tests::should_lex_dot_prefix_invalid ... ok
[INFO] [stdout] test lexer::tests::should_lex_continuation ... ok
[INFO] [stdout] test lexer::tests::should_lex_endif_kw ... ok
[INFO] [stdout] test lexer::tests::should_lex_end_after_comment ... ok
[INFO] [stdout] test lexer::tests::should_lex_grothendieck_prime ... ok
[INFO] [stdout] test lexer::tests::should_lex_if_kw ... ok
[INFO] [stdout] test lexer::tests::should_lex_int_pow_int ... ok
[INFO] [stdout] test lexer::tests::should_lex_label_10 ... ok
[INFO] [stdout] test lexer::tests::lex_concatenation ... ok
[INFO] [stdout] test lexer::tests::should_lex_program_kw ... ok
[INFO] [stdout] test lexer::tests::should_lex_lparen_kw ... ok
[INFO] [stdout] test lexer::tests::should_lex_pi_as_float ... ok
[INFO] [stdout] test lexer::tests::lex_eq ... ok
[INFO] [stdout] test lexer::tests::lex_equal ... ok
[INFO] [stdout] test lexer::tests::lex_geq ... ok
[INFO] [stdout] test lexer::tests::lex_ne ... ok
[INFO] [stdout] test lexer::tests::lex_read ... ok
[INFO] [stdout] test lexer::tests::should_lex_doo ... ok
[INFO] [stdout] test lexer::tests::lex_end ... ok
[INFO] [stdout] test lexer::tests::should_lex_program_name ... ok
[INFO] [stdout] test lexer::tests::should_lex_screaming_program_kw ... ok
[INFO] [stdout] test lexer::tests::should_lex_screaming_true_kw ... ok
[INFO] [stdout] test lexer::tests::should_lex_then_kw ... ok
[INFO] [stdout] test lexer::tests::should_lex_true_kw ... ok
[INFO] [stdout] test lexer::tests::should_match_e_as_exponent ... ok
[INFO] [stdout] test lexer::tests::should_match_label ... ok
[INFO] [stdout] test lexer::tests::should_not_lex_invalid_kw ... ok
[INFO] [stdout] test lexer::tests::should_not_match_f_as_exponent ... ok
[INFO] [stdout] test lexer::tests::lex_false ... ok
[INFO] [stdout] test parse_tree::spec_doesnt_have_name ... ok
[INFO] [stdout] test parse_tree::param_spec_doesnt_have_name ... ok
[INFO] [stdout] test parser::tests::expr::division_is_left_associative ... ok
[INFO] [stdout] test parser::tests::expr::f90_array_section_ex3 ... ok
[INFO] [stdout] test parser::tests::expr::parse_array_section ... ok
[INFO] [stdout] test parser::tests::expr::parse_array_section_with_only_stop_and_stride ... ok
[INFO] [stdout] test parser::tests::expr::parse_array_section_with_only_stride ... ok
[INFO] [stdout] test parser::tests::expr::parse_array_section_without_start ... ok
[INFO] [stdout] test parser::tests::expr::parse_array_section_with_start_and_stop_and_stride ... ok
[INFO] [stdout] test parser::tests::expr::parse_int_pow_int ... ok
[INFO] [stdout] test parser::tests::expr::parse_array_section_without_stop ... ok
[INFO] [stdout] test parser::tests::expr::parse_int_without_sign ... ok
[INFO] [stdout] test parser::tests::expr::parse_level_2_expr_add ... ok
[INFO] [stdout] test parser::tests::expr::parse_iterated_powers ... ok
[INFO] [stdout] test parser::tests::expr::parse_fn_with_args ... ok
[INFO] [stdout] test parser::tests::expr::parse_positive_int ... ok
[INFO] [stdout] test parser::tests::expr::parse_variable ... ok
[INFO] [stdout] test parser::tests::expr::parse_simple_fn_call ... ok
[INFO] [stdout] test parser::tests::expr::subtraction_is_left_associative ... ok
[INFO] [stdout] test parser::tests::expr::parse_negative_int ... ok
[INFO] [stdout] test parser::tests::spec::assumed_size_array_with_lower_bound ... ok
[INFO] [stdout] test parser::tests::expr::parse_array_section_with_only_start_and_stride ... ok
[INFO] [stdout] test parser::tests::spec::explicit_array_spec_with_negative_start ... ok
[INFO] [stdout] test parser::tests::expr::parse_polysyllabic_variable ... ok
[INFO] [stdout] test parser::tests::expr::parse_level_2_expr_subtraction ... ok
[INFO] [stdout] test parser::tests::spec::assumed_size_with_var_param ... ok
[INFO] [stdout] test parser::tests::expr::parse_variable_with_numeric_suffix ... ok
[INFO] [stdout] test parser::tests::spec::f90_standard_parameter_example ... ok
[INFO] [stdout] test parser::tests::spec::malformed_assumed_size_with_var_param ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_multiple_decls ... ok
[INFO] [stdout] test parser::tests::spec::explicit_array_with_var ... ok
[INFO] [stdout] test parser::tests::spec::scalar_and_array_params ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_single_char_decl ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_single_int_decl ... ok
[INFO] [stdout] test parse_tree::spec_has_name ... ok
[INFO] [stdout] test parser::tests::spec::explicit_array_with_lower_bound ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_single_logical_decl ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_single_real_array_decl ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_single_real_rank_2_array_decl ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_single_real_rank_2_assumed_size_array_decl ... ok
[INFO] [stdout] test parser::tests::spec::spec_int4 ... ok
[INFO] [stdout] test parser::tests::spec::spec_int8 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real10 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real1 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real12 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real15 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real11 ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_single_real_decl ... ok
[INFO] [stdout] test parser::tests::spec::spec_real3 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real13 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real16 ... ok
[INFO] [stdout] test parser::tests::spec::should_parse_three_int_decls ... ok
[INFO] [stdout] test parser::tests::spec::spec_real4 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real14 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real5 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real2 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real9 ... ok
[INFO] [stdout] test parser::tests::stmt::assign_constant_to_var ... ok
[INFO] [stdout] test parser::tests::stmt::call_subroutine_with_two_args ... ok
[INFO] [stdout] test parser::tests::spec::spec_real7 ... ok
[INFO] [stdout] test parser::tests::spec::spec_int16 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real8 ... ok
[INFO] [stdout] test parser::tests::spec::spec_real6 ... ok
[INFO] [stdout] test parser::tests::spec::two_colon_indices_in_array_spec ... ok
[INFO] [stdout] test parser::tests::spec::two_assumed_shape_arrays ... ok
[INFO] [stdout] test parser::tests::stmt::call_subroutine_without_args ... ok
[INFO] [stdout] test parser::tests::stmt::call_subroutine_with_one_args ... ok
[INFO] [stdout] test parser::tests::stmt::f77_do_loop_with_negative_stride_example ... ok
[INFO] [stdout] test parser::tests::stmt::f77_do_loop_example ... ok
[INFO] [stdout] test parser::tests::stmt::f77_do_loop_with_stride_example ... ok
[INFO] [stdout] test parser::tests::stmt::if_else_block_statement ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_continue ... ok
[INFO] [stdout] test parser::tests::stmt::f90_do_loop_example ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_continue_with_leading_zeros ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_goto ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_read_three_variable ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_write_one_variable ... ok
[INFO] [stdout] test parser::tests::stmt::unlabeled_continue ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_read_one_variable ... ok
[INFO] [stdout] test parser::tests::stmt::zero_label_continue_is_unlabeled ... ok
[INFO] [stdout] test parser::tests::stmt::if_block_statement ... ok
[INFO] [stdout] test parser::tests::stmt::if_elseif_else_block_statement ... ok
[INFO] [stdout] test lexer::tests::lex_runaway_string - should panic ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_if_statement ... ok
[INFO] [stdout] test lexer::tests::should_lex_dot_prefix_without_dot_suffix_panics - should panic ... ok
[INFO] [stdout] test parser::tests::stmt::should_parse_end_statement ... ok
[INFO] [stdout] test ast::disambiguate::tests::implicit_params_should_panic - should panic ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_write_three_variable ... ok
[INFO] [stdout] test parser::tests::stmt::unlabeled_goto ... ok
[INFO] [stdout] test parser::tests::stmt::labeled_arith_if_example ... ok
[INFO] [stdout] test parser::tests::unit::min1_test ... ok
[INFO] [stdout] test parser::tests::unit::subroutine_scale1 ... ok
[INFO] [stdout] test parser::tests::unit::main_with_only_declarations_test ... ok
[INFO] [stdout] test parser::tests::spec::malformed_array_spec - should panic ... ok
[INFO] [stdout] test parser::tests::unit::real_function_f ... ok
[INFO] [stdout] test parser::tests::unit::function_without_return_panics - should panic ... ok
[INFO] [stdout] test parser::tests::unit::subroutine_without_return_panics - should panic ... ok
[INFO] [stdout] test lexer::tests::lex_slash ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 168 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "75c55a47048e98c57726b8fab7d2699ffb9b32b32c44b0b488e96a1d9373ba2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "75c55a47048e98c57726b8fab7d2699ffb9b32b32c44b0b488e96a1d9373ba2b", kill_on_drop: false }`
[INFO] [stdout] 75c55a47048e98c57726b8fab7d2699ffb9b32b32c44b0b488e96a1d9373ba2b
