[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] checking pqnelson/f77 against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpqnelson%2Ff77" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/pqnelson/f77 on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-5-tc1/source/Cargo.toml [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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 467caa24ffc5ccedc43b8d71d1c46aa90f30c21aa2b3f8d631142a7e08af4145 [INFO] running `Command { std: "docker" "start" "-a" "467caa24ffc5ccedc43b8d71d1c46aa90f30c21aa2b3f8d631142a7e08af4145", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "467caa24ffc5ccedc43b8d71d1c46aa90f30c21aa2b3f8d631142a7e08af4145", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "467caa24ffc5ccedc43b8d71d1c46aa90f30c21aa2b3f8d631142a7e08af4145", kill_on_drop: false }` [INFO] [stdout] 467caa24ffc5ccedc43b8d71d1c46aa90f30c21aa2b3f8d631142a7e08af4145 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 643aaf6114b56de208eafa60532072179258403711d574df3d49d41239139367 [INFO] running `Command { std: "docker" "start" "-a" "643aaf6114b56de208eafa60532072179258403711d574df3d49d41239139367", kill_on_drop: false }` [INFO] [stderr] Checking 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)]` 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::::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)]` 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::::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::::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: variants `Logical`, `Real`, `Integer`, and `Character` are never constructed [INFO] [stdout] --> src/lexer.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum BaseType { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 13 | Logical = 0x10, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 14 | Real = 0x01, [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | Integer = 0x02, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 16 | Character = 0x20, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BaseType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 32 | // single-character tokens [INFO] [stdout] 33 | LeftParen, RightParen, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] 34 | Comma, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 35 | Minus, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 36 | Plus, [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | Slash, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 38 | Concatenation, // i.e., "//" [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 39 | Star, [INFO] [stdout] | ^^^^ [INFO] [stdout] 40 | Pow, // "**" [INFO] [stdout] | ^^^ [INFO] [stdout] 41 | Equal, // "=" for assignment, do-loop initialization [INFO] [stdout] | ^^^^^ [INFO] [stdout] 42 | Colon, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 43 | [INFO] [stdout] 44 | Continuation(char), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | Identifier(Vec), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 48 | Integer(Vec), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 49 | Label(Vec), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 50 | Float(Vec), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | String(Vec), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 52 | [INFO] [stdout] 53 | Type(BaseType), [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | Program, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 57 | Parameter, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 58 | If, Then, Else, EndIf, [INFO] [stdout] | ^^ ^^^^ ^^^^ ^^^^^ [INFO] [stdout] 59 | Do, [INFO] [stdout] | ^^ [INFO] [stdout] 60 | Continue, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | True, False, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 62 | Stop, End, Function, Return, Subroutine, [INFO] [stdout] | ^^^^ ^^^ ^^^^^^^^ ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] 63 | Less, Leq, Eq, NotEqual, Greater, Geq, [INFO] [stdout] | ^^^^ ^^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^ [INFO] [stdout] 64 | Not, And, Or, Equiv, NotEquiv, Xor, [INFO] [stdout] | ^^^ ^^^ ^^ ^^^^^ ^^^^^^^^ ^^^ [INFO] [stdout] 65 | Goto, Call, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | Write, Read, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | Illegal, Eof [INFO] [stdout] | ^^^^^^^ ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [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: 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 { [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) -> 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 { [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 { [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: multiple variants are never constructed [INFO] [stdout] --> src/parse_tree.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub enum BinOp { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 28 | Plus, Minus, Times, Divide, Power, [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] 29 | // relational operators [INFO] [stdout] 30 | Eq, Ne, Le, Lt, Ge, Gt, [INFO] [stdout] | ^^ ^^ ^^ ^^ ^^ ^^ [INFO] [stdout] 31 | // logical operators [INFO] [stdout] 32 | Eqv, Neqv, And, Or, [INFO] [stdout] | ^^^ ^^^^ ^^^ ^^ [INFO] [stdout] 33 | // string operators [INFO] [stdout] 34 | Concatenate, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinOp` 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: 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: variants `Plus`, `Minus`, and `Not` are never constructed [INFO] [stdout] --> src/parse_tree.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub enum UnOp { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 62 | Plus, Minus, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 63 | Not [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UnOp` 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: 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: multiple variants are never constructed [INFO] [stdout] --> src/parse_tree.rs:129:5 [INFO] [stdout] | [INFO] [stdout] 127 | pub enum Expr { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 128 | // literals [INFO] [stdout] 129 | Character(Vec), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 130 | Float32(f32), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 131 | Float64(f64), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 132 | Int32(i32), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 133 | Int64(i64), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 134 | Logical(bool), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 135 | Variable(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | Section((Option>, Option>, Option>)), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 140 | // composite expressions [INFO] [stdout] 141 | Binary(Box, BinOp, Box), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 142 | Unary(UnOp, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 143 | Grouping(Box), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 144 | NamedDataRef(String, Vec), // function call or array element or array section? [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 145 | FunCall(String, Vec), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 146 | ArrayElement(String, Vec), // e.g., "MYARRAY(3,65,2)" [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 147 | ArraySection(String, Vec), // e.g., "MYARRAY(3:65)" [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 148 | // placeholder, should never be forced to arrive here [INFO] [stdout] 149 | ErrorExpr, [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: multiple variants are never constructed [INFO] [stdout] --> src/parse_tree.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 153 | pub enum Command { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 154 | Continue, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 155 | Goto(i32), [INFO] [stdout] | ^^^^ [INFO] [stdout] 156 | Write(Vec), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 157 | Read(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] 158 | IfBlock {test: E, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | ArithIf {test: E, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | IfStatement {test: E, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 166 | true_branch: Box::>}, [INFO] [stdout] 167 | LabelDo {target_label: i32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | CallSubroutine { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | ExprStatement(E), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 179 | Assignment { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | Stop, [INFO] [stdout] | ^^^^ [INFO] [stdout] 184 | Return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 185 | End, [INFO] [stdout] | ^^^ [INFO] [stdout] 186 | Illegal // should never be reached [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Command` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [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 Statement { [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: multiple variants are never constructed [INFO] [stdout] --> src/parse_tree.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 224 | pub enum Type { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 225 | Logical = 0x10, // 0b0001_0000 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 226 | Real = 0x01, // 0b0000_0001 [INFO] [stdout] | ^^^^ [INFO] [stdout] 227 | Integer = 0x02, // 0b0000_0010 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 228 | Character = 0x20, // 0b0010_0000 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 229 | Real64 = 0x05, // 0b0000_0101 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 230 | Real128 = 0x09, // 0b0000_1001 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 231 | Integer64 = 0x06, // 0b0000_0110 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 232 | Integer128 = 0x0a, // 0b0000_1010 [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: variants `ExplicitShape`, `AssumedShape`, `AssumedSize`, and `Scalar` are never constructed [INFO] [stdout] --> src/parse_tree.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 263 | pub enum ArraySpec { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 264 | ExplicitShape(Vec<(Option, E)>), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 265 | AssumedShape(Vec>), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 266 | // assumed_size_spec stored as AssumedSize(ExplicitShape, Some(lower_bound)) [INFO] [stdout] 267 | AssumedSize(Vec<(Option, E)>, Option), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 268 | Scalar, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ArraySpec` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [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 ArraySpec { [INFO] [stdout] | ----------------------------------------- method in this implementation [INFO] [stdout] 272 | pub fn rank(self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TypeDeclaration` and `Param` are never constructed [INFO] [stdout] --> src/parse_tree.rs:311:5 [INFO] [stdout] | [INFO] [stdout] 310 | pub enum Specification { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 311 | TypeDeclaration (VarDeclaration), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 312 | Param (String, E), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Specification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [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 Specification { [INFO] [stdout] | --------------------------------------------- methods in this implementation [INFO] [stdout] 316 | pub fn name_collides_with(&self, other: &VarDeclaration) -> 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 VarDeclaration { [INFO] [stdout] | ---------------------------------------------- method in this implementation [INFO] [stdout] 359 | pub fn rank(self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Program`, `Function`, `Subroutine`, and `Empty` are never constructed [INFO] [stdout] --> src/parse_tree.rs:366:5 [INFO] [stdout] | [INFO] [stdout] 365 | pub enum ProgramUnit { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 366 | Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | Function { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | Subroutine { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 384 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgramUnit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Program`, `Subroutine`, `Function`, and `Empty` are never constructed [INFO] [stdout] --> src/parse_tree.rs:389:5 [INFO] [stdout] | [INFO] [stdout] 388 | pub enum ProgramUnitKind { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] 389 | Program, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 390 | Subroutine, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 391 | Function, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 392 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgramUnitKind` 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: 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 ProgramUnit { [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) -> bool { [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 Program { [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) -> 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 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 537 | pub fn push(&mut self, unit: ProgramUnit) { [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 { [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 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | fn program_unit(&mut self) -> ProgramUnit { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | fn specification(&mut self) -> Vec> { [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> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 542 | fn array_spec(&mut self) -> ArraySpec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 631 | fn assumed_shape(&mut self, mut indices: Vec>) -> ArraySpec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 661 | fn explicit_shape_or_assumed_size(&mut self, mut indices: Vec<(Option,Expr)>) -> ArraySpec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 736 | fn dummy_args(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 758 | fn determine_type_from_spec(&mut self, var_name: &String, spec: &Vec>) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 779 | fn function(&mut self) -> ProgramUnit { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 842 | fn subroutine(&mut self) -> ProgramUnit { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 878 | fn program(&mut self) -> ProgramUnit { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 911 | fn io_list(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 925 | fn read(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 947 | fn write(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 975 | fn goto_statement(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1000 | fn continue_statement(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1083 | fn if_construct(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1109 | fn end_if(&mut self, label: Option, test: Expr, true_branch: Vec>, false_branch: Vec>) -> Statem... [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1136 | fn block_if(&mut self, label: Option, test: Expr) -> Statement { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1184 | fn arithmetic_if(&mut self, label: Option, test: Expr) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1215 | fn if_statement(&mut self, label: Option, test: Expr) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1242 | fn block_do_construct(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1267 | fn loop_control(&mut self) -> (Expr, Expr, Expr, Option) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1296 | fn label_do_statement(&mut self, label: Option, target: i32) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1337 | fn nonlabel_do_statement(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1388 | fn call_subroutine(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1427 | fn assignment_or_expr(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1456 | fn statement_label(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1479 | fn illegal_statement(&mut self, label: Option) -> Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1507 | pub fn statement(&mut self) -> Statement { [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>, [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: multiple variants are never constructed [INFO] [stdout] --> src/ast.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum Expr { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 18 | // literals [INFO] [stdout] 19 | Character(Vec), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 20 | Float32(f32), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 21 | Float64(f64), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | Int32(i32), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | Int64(i64), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 24 | Logical(bool), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | Variable(usize), // "de Bruijn index" [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 26 | Subroutine(usize), // for "call subroutine" statements [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | Section((Option>, Option>, Option>)), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | Binary(Box, BinOp, Box), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 33 | Unary(UnOp, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 34 | Grouping(Box), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 35 | FunCall(usize, Vec), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | ArrayElement(usize, Vec), // e.g., "MYARRAY(3,65,2)" [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 37 | ArraySection(usize, Vec), // e.g., "MYARRAY(3:65)" [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 38 | ErrorExpr, [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: function `var_index` is never used [INFO] [stdout] --> src/ast.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | fn var_index(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(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(program: &Program, spec: &Vec>, 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, [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, [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, [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, [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) -> Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 52 warnings emitted [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::::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)]` 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::::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::::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)]` 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), // 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 ArraySpec { [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 VarDeclaration { [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 ProgramUnit { [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), [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: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] running `Command { std: "docker" "inspect" "643aaf6114b56de208eafa60532072179258403711d574df3d49d41239139367", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "643aaf6114b56de208eafa60532072179258403711d574df3d49d41239139367", kill_on_drop: false }` [INFO] [stdout] 643aaf6114b56de208eafa60532072179258403711d574df3d49d41239139367