[INFO] cloning repository https://github.com/Kosyness/Fort500 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kosyness/Fort500" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKosyness%2FFort500", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKosyness%2FFort500'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a393f90cdeab925f510b17fd1b0493c325d1bd0d [INFO] testing Kosyness/Fort500 against try#5bc97a20e5cc382ae6d19f727a9e73eeb2734548 for pr-99093 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKosyness%2FFort500" "/workspace/builds/worker-2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Kosyness/Fort500 on toolchain 5bc97a20e5cc382ae6d19f727a9e73eeb2734548 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+5bc97a20e5cc382ae6d19f727a9e73eeb2734548" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Kosyness/Fort500 [INFO] finished tweaking git repo https://github.com/Kosyness/Fort500 [INFO] tweaked toml for git repo https://github.com/Kosyness/Fort500 written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/Kosyness/Fort500 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+5bc97a20e5cc382ae6d19f727a9e73eeb2734548" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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:5873ed620acfc3295992aedd9294443d62a478a48ba243bc5e6c4f5abaffa05f" "/opt/rustwide/cargo-home/bin/cargo" "+5bc97a20e5cc382ae6d19f727a9e73eeb2734548" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f2fc3b697353a62550b51e7c3e255a1002eaee6251939185f5e7cf697c029fd0 [INFO] running `Command { std: "docker" "start" "-a" "f2fc3b697353a62550b51e7c3e255a1002eaee6251939185f5e7cf697c029fd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f2fc3b697353a62550b51e7c3e255a1002eaee6251939185f5e7cf697c029fd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2fc3b697353a62550b51e7c3e255a1002eaee6251939185f5e7cf697c029fd0", kill_on_drop: false }` [INFO] [stdout] f2fc3b697353a62550b51e7c3e255a1002eaee6251939185f5e7cf697c029fd0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "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:5873ed620acfc3295992aedd9294443d62a478a48ba243bc5e6c4f5abaffa05f" "/opt/rustwide/cargo-home/bin/cargo" "+5bc97a20e5cc382ae6d19f727a9e73eeb2734548" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 226cf7b66e6214471da3ceea89862e8130b83b4ba06e6bce86d2f9d6fe019f1c [INFO] running `Command { std: "docker" "start" "-a" "226cf7b66e6214471da3ceea89862e8130b83b4ba06e6bce86d2f9d6fe019f1c", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling proc-macro2 v1.0.28 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.74 [INFO] [stderr] Compiling libc v0.2.99 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling serde_derive v1.0.127 [INFO] [stderr] Compiling serde v1.0.127 [INFO] [stderr] Compiling lexical-core v0.7.6 [INFO] [stderr] Compiling bitflags v1.3.1 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling once_cell v1.8.0 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling radium v0.5.3 [INFO] [stderr] Compiling serde_json v1.0.66 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling strsim v0.9.3 [INFO] [stderr] Compiling serde v0.8.23 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling tap v1.0.1 [INFO] [stderr] Compiling wyz v0.2.0 [INFO] [stderr] Compiling funty v1.1.0 [INFO] [stderr] Compiling linked-hash-map v0.5.4 [INFO] [stderr] Compiling itoa v0.4.7 [INFO] [stderr] Compiling smallvec v1.6.1 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling unicode-segmentation v1.8.0 [INFO] [stderr] Compiling termcolor v1.1.2 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling fixedbitset v0.2.0 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling bytes v1.0.1 [INFO] [stderr] Compiling rust-ini v0.13.0 [INFO] [stderr] Compiling pin-project-lite v0.2.7 [INFO] [stderr] Compiling humansize v1.1.1 [INFO] [stderr] Compiling askama_escape v0.10.1 [INFO] [stderr] Compiling lazy_static v0.2.11 [INFO] [stderr] Compiling ansi_term v0.12.1 [INFO] [stderr] Compiling dtoa v0.4.8 [INFO] [stderr] Compiling unicode-width v0.1.8 [INFO] [stderr] Compiling anyhow v1.0.43 [INFO] [stderr] Compiling strum v0.21.0 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling truthy v1.1.0 [INFO] [stderr] Compiling read_input v0.8.6 [INFO] [stderr] Compiling instant v0.1.10 [INFO] [stderr] Compiling lexical-util v0.8.1 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling lock_api v0.4.4 [INFO] [stderr] Compiling ahash v0.7.4 [INFO] [stderr] Compiling nom v6.2.1 [INFO] [stderr] Compiling nom v5.1.2 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling num-bigint v0.4.0 [INFO] [stderr] Compiling tokio v1.10.0 [INFO] [stderr] Compiling tint v1.0.1 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Compiling pad v0.1.6 [INFO] [stderr] Compiling lexical-write-integer v0.8.0 [INFO] [stderr] Compiling lexical-parse-integer v0.8.0 [INFO] [stderr] Compiling bitvec v0.19.5 [INFO] [stderr] Compiling aho-corasick v0.7.15 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling lexical-parse-float v0.8.0 [INFO] [stderr] Compiling lexical-write-float v0.8.0 [INFO] [stderr] Compiling getrandom v0.2.3 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling parking_lot_core v0.8.3 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling mio v0.7.13 [INFO] [stderr] Compiling signal-hook-registry v1.4.0 [INFO] [stderr] Compiling dirs-sys v0.3.6 [INFO] [stderr] Compiling serde_test v0.8.23 [INFO] [stderr] Compiling colored v2.0.0 [INFO] [stderr] Compiling parking_lot v0.11.1 [INFO] [stderr] Compiling directories v3.0.2 [INFO] [stderr] Compiling regex v1.4.6 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling ordered-float v1.1.1 [INFO] [stderr] Compiling linked-hash-map v0.3.0 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling lexical-core v0.8.0 [INFO] [stderr] Compiling lexical v6.0.0 [INFO] [stderr] Compiling petgraph v0.5.1 [INFO] [stderr] Compiling serde-hjson v0.9.1 [INFO] [stderr] Compiling env_logger v0.9.0 [INFO] [stderr] Compiling lexical v5.2.2 [INFO] [stderr] Compiling darling_core v0.10.2 [INFO] [stderr] Compiling darling_macro v0.10.2 [INFO] [stderr] Compiling tokio-macros v1.3.0 [INFO] [stderr] Compiling strum_macros v0.21.1 [INFO] [stderr] Compiling derive-new v0.5.9 [INFO] [stderr] Compiling darling v0.10.2 [INFO] [stderr] Compiling log-derive v0.4.1 [INFO] [stderr] Compiling toml v0.5.8 [INFO] [stderr] Compiling serde-value v0.6.0 [INFO] [stderr] Compiling serde_yaml v0.8.20 [INFO] [stderr] Compiling askama_shared v0.11.1 [INFO] [stderr] Compiling config v0.10.1 [INFO] [stderr] Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer) [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> lexer/src/lib.rs:179:21 [INFO] [stdout] | [INFO] [stdout] 178 | todo!("handle backslash"); [INFO] [stdout] | ------------------------- any code following this expression is unreachable [INFO] [stdout] 179 | true [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `type_` is never read [INFO] [stdout] --> lexer/src/lib.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | type_ = Some(Type::Positive); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> lexer/src/lib.rs:189:35 [INFO] [stdout] | [INFO] [stdout] 189 | fn handle_e_number(&mut self, input: String) -> LexerResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_first` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:257:18 [INFO] [stdout] | [INFO] [stdout] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_first` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_second` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:257:33 [INFO] [stdout] | [INFO] [stdout] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_second` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_first` is never read [INFO] [stdout] --> lexer/src/lib.rs:262:21 [INFO] [stdout] | [INFO] [stdout] 262 | has_first = false; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_second` is never read [INFO] [stdout] --> lexer/src/lib.rs:277:17 [INFO] [stdout] | [INFO] [stdout] 277 | has_second = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_first` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:324:18 [INFO] [stdout] | [INFO] [stdout] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_first` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_second` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:324:33 [INFO] [stdout] | [INFO] [stdout] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_second` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `second` [INFO] [stdout] --> lexer/src/lib.rs:325:21 [INFO] [stdout] | [INFO] [stdout] 325 | let (first, second) = { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_first` is never read [INFO] [stdout] --> lexer/src/lib.rs:329:21 [INFO] [stdout] | [INFO] [stdout] 329 | has_first = false; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_second` is never read [INFO] [stdout] --> lexer/src/lib.rs:344:17 [INFO] [stdout] | [INFO] [stdout] 344 | has_second = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `original`, `chars` and `current_pos` are never read [INFO] [stdout] --> lexer/src/lib.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct StringInput<'chars> { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 47 | original: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | chars: Peekable>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | current_pos: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] = note: `StringInput` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `original` is never read [INFO] [stdout] --> lexer/src/lib.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct Lexer<'chars> { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 68 | input: Peekable>, [INFO] [stdout] 69 | original: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lexer` 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: associated function `read_until_with_count` is never used [INFO] [stdout] --> lexer/src/lib.rs:516:8 [INFO] [stdout] | [INFO] [stdout] 516 | fn read_until_with_count(&mut self, character: char, count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `read_until_not` is never used [INFO] [stdout] --> lexer/src/lib.rs:535:8 [INFO] [stdout] | [INFO] [stdout] 535 | fn read_until_not(&mut self, character: char) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `into_word` is never used [INFO] [stdout] --> lexer/src/token.rs:488:8 [INFO] [stdout] | [INFO] [stdout] 488 | fn into_word(self) -> Word { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ptree v0.3.2 [INFO] [stderr] Compiling parser v0.1.0 (/opt/rustwide/workdir/parser) [INFO] [stdout] warning: unused import: `LexerResult` [INFO] [stdout] --> parser/src/cursor.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use lexer::{Lexer, LexerResult, TokenError, TokenSpan, token::{Identifier, Token, Word}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BinOp` [INFO] [stdout] --> parser/src/lib.rs:6:42 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{TokenSpan, token::{AssignOp, BinOp, Identifier, Word}, token::{Keyword, Token}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_tree` [INFO] [stdout] --> parser/src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use ptree::{print_tree, TreeBuilder}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/src/lib.rs:1166:37 [INFO] [stdout] | [INFO] [stdout] 1166 | Some(TokenSpan { token: t, span: _ }) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> parser/src/lib.rs:1224:13 [INFO] [stdout] | [INFO] [stdout] 1224 | let id = match cursor.peek() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> parser/src/lib.rs:1225:66 [INFO] [stdout] | [INFO] [stdout] 1225 | Some(TokenSpan { token: Token::Word(Word::Identifier(id)), ..}) => Some(ID(cursor.next().unwrap())), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `declarations` [INFO] [stdout] --> parser/src/lib.rs:1231:13 [INFO] [stdout] | [INFO] [stdout] 1231 | let declarations = VarDeclarations::parse(cursor)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_declarations` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `parse` is never used [INFO] [stdout] --> parser/src/lib.rs:1221:8 [INFO] [stdout] | [INFO] [stdout] 1221 | fn parse(cursor: &mut Cursor) -> ParseResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `parse` is never used [INFO] [stdout] --> parser/src/lib.rs:1335:8 [INFO] [stdout] | [INFO] [stdout] 1335 | fn parse(cursor: &mut Cursor) -> ParseResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 17 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 9 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling askama_derive v0.10.5 [INFO] [stderr] Compiling askama v0.10.5 [INFO] [stderr] Compiling runtime v0.1.0 (/opt/rustwide/workdir/runtime) [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`, `any::Any`, `default` [INFO] [stdout] --> runtime/src/lib.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{any::Any, borrow::{Borrow, BorrowMut}, default, fmt::Debug, io::Write, net::{TcpListener, TcpStream}, ops::DerefMut, sync::{Arc... [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lazy_static::__Deref` [INFO] [stdout] --> runtime/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use lazy_static::__Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, `warn` [INFO] [stdout] --> runtime/src/lib.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logfn_inputs` [INFO] [stdout] --> runtime/src/lib.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use log_derive::{logfn, logfn_inputs}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Identifier`, `Lexer`, `Span` [INFO] [stdout] --> runtime/src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | token::{Identifier, Token, Word}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | Lexer, Span, TokenError, TokenSpan, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DeclarationType` [INFO] [stdout] --> runtime/src/lib.rs:14:83 [INFO] [stdout] | [INFO] [stdout] 14 | cursor::Cursor, Assignment, BasicVarDeclaration, Body, Constant, Declaration, DeclarationType, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::TcpSocket` [INFO] [stdout] --> runtime/src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use tokio::net::TcpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `borrow::Borrow`, `cell::RefCell`, `rc::Rc` [INFO] [stdout] --> runtime/src/scope.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Borrow, cell::RefCell, rc::Rc, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> runtime/src/scope.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::variable::{Value, Variable}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `warn` [INFO] [stdout] --> runtime/src/scope.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{ trace, debug, warn, info, error }; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Chain`, `Context`, `Error as AnyError`, `bail` [INFO] [stdout] --> runtime/src/lib.rs:26:14 [INFO] [stdout] | [INFO] [stdout] 26 | use anyhow::{bail, Chain, Context, Error as AnyError}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Map` [INFO] [stdout] --> runtime/src/lib.rs:29:34 [INFO] [stdout] | [INFO] [stdout] 29 | use variable::{CallableFunction, Map, Value, Variable}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> runtime/src/lib.rs:351:21 [INFO] [stdout] | [INFO] [stdout] 351 | return match self.scopes.get(c.0.token.value()) { [INFO] [stdout] | ______________________^______- [INFO] [stdout] | | _____________________| [INFO] [stdout] | || [INFO] [stdout] 352 | || Some(v) => return Ok(v), [INFO] [stdout] 353 | || None => { [INFO] [stdout] 354 | || return Err(RuntimeError::ReferenceError(format!( [INFO] [stdout] ... || [INFO] [stdout] 358 | || } [INFO] [stdout] 359 | || } [INFO] [stdout] | || ^ [INFO] [stdout] | ||_____________________| [INFO] [stdout] | |______________________unreachable expression [INFO] [stdout] | any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> runtime/src/lib.rs:498:38 [INFO] [stdout] | [INFO] [stdout] 498 | ParsedVariable::Callable(c) => unreachable!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> runtime/src/lib.rs:567:41 [INFO] [stdout] | [INFO] [stdout] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stdout] | ^^ help: try ignoring the field: `id: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dimensions` [INFO] [stdout] --> runtime/src/lib.rs:567:45 [INFO] [stdout] | [INFO] [stdout] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `dimensions: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> runtime/src/variable.rs:86:29 [INFO] [stdout] | [INFO] [stdout] 86 | Value::Function(f) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> runtime/src/variable.rs:87:27 [INFO] [stdout] | [INFO] [stdout] 87 | Value::Native(n) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> runtime/src/variable.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut var = match var.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut var = match var.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | let mut stream = match stream.deref_mut() { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | let mut map = match map.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `set_with_mutex` is never used [INFO] [stdout] --> runtime/src/scope.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) fn set_with_mutex(&mut self, variable: Arc>) -> Result<(), SetError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / runtime.add_function("server_create", |_, args| { [INFO] [stdout] 45 | | if args.len() != 1 { [INFO] [stdout] 46 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 47 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 72 | | Ok(Variable::arc(None, Value::Native(Box::new(server)))) [INFO] [stdout] 73 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / runtime.add_function("server_accept", |_, args| { [INFO] [stdout] 76 | | if args.len() != 1 { [INFO] [stdout] 77 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 78 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 108 | | Ok(Variable::arc(None, Value::Map(map))) [INFO] [stdout] 109 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | / runtime.add_function("server_send", |_, args| { [INFO] [stdout] 112 | | if args.len() != 2 { [INFO] [stdout] 113 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 114 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 167 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stdout] 168 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | stream.write(response.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | / runtime.add_function("map", |_, _| { [INFO] [stdout] 171 | | Ok(Variable::arc(None, Value::Map(HashMap::default()))) [INFO] [stdout] 172 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | / runtime.add_function("read_file", |_, args| { [INFO] [stdout] 176 | | if args.len() != 1 { [INFO] [stdout] 177 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 178 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 195 | | Ok(Variable::arc(None, Value::String(result))) [INFO] [stdout] 196 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | / runtime.add_function("map_get", |_, args| { [INFO] [stdout] 199 | | if args.len() != 2 { [INFO] [stdout] 200 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 201 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 229 | | }) [INFO] [stdout] 230 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | / runtime.add_function("map_set", |_, args| { [INFO] [stdout] 233 | | if args.len() != 3 { [INFO] [stdout] 234 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 235 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 264 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stdout] 265 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:377:9 [INFO] [stdout] | [INFO] [stdout] 377 | / self.scopes.set(Variable::new( [INFO] [stdout] 378 | | Some(identifier.to_string()), [INFO] [stdout] 379 | | Arc::new(Mutex::new(Value::Function(FunctionValue::Native(function)))), [INFO] [stdout] 380 | | )); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | self.handle_labeled_statement(statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | self.handle_statement(&statement.statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:456:13 [INFO] [stdout] | [INFO] [stdout] 456 | self.handle_body(&statement.body); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling fort500 v0.1.0 (/opt/rustwide/workdir/fort500) [INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, `process::exit` [INFO] [stdout] --> fort500/src/main.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs, process::exit, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RuntimeError`, `RuntimeResult`, `Truthy` [INFO] [stdout] --> fort500/src/main.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use runtime::{Runtime, RuntimeError, RuntimeResult, variable::{HashMap, Truthy, Value, Variable}}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> fort500/src/main.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{ error, warn, info, }; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `runtime` [INFO] [stdout] --> fort500/src/main.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | fn init_runtime(runtime: &mut Runtime) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runtime` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> fort500/src/main.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | runtime.scopes.set(Variable::with_value(Some("my_map".to_string()), Value::Map(m))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> fort500/src/main.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | runtime.eval(fs::read_to_string(input).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> fort500/src/main.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | runtime.eval_program(program); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 7 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 57.58s [INFO] running `Command { std: "docker" "inspect" "226cf7b66e6214471da3ceea89862e8130b83b4ba06e6bce86d2f9d6fe019f1c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "226cf7b66e6214471da3ceea89862e8130b83b4ba06e6bce86d2f9d6fe019f1c", kill_on_drop: false }` [INFO] [stdout] 226cf7b66e6214471da3ceea89862e8130b83b4ba06e6bce86d2f9d6fe019f1c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "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:5873ed620acfc3295992aedd9294443d62a478a48ba243bc5e6c4f5abaffa05f" "/opt/rustwide/cargo-home/bin/cargo" "+5bc97a20e5cc382ae6d19f727a9e73eeb2734548" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 31bfa01c6ac809db5faeb4ea51aaabbeef4f2ebf84ec65ece234e5e5bbbc6de1 [INFO] running `Command { std: "docker" "start" "-a" "31bfa01c6ac809db5faeb4ea51aaabbeef4f2ebf84ec65ece234e5e5bbbc6de1", kill_on_drop: false }` [INFO] [stderr] Compiling semver v1.0.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.5 [INFO] [stderr] Compiling crossbeam-epoch v0.9.5 [INFO] [stderr] Compiling rayon-core v1.9.1 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling plotters-backend v0.3.2 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling half v1.7.1 [INFO] [stderr] Compiling oorandom v11.1.3 [INFO] [stderr] Compiling memoffset v0.6.4 [INFO] [stderr] Compiling rayon v1.5.1 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling csv-core v0.1.10 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> lexer/src/lib.rs:179:21 [INFO] [stdout] | [INFO] [stdout] 178 | todo!("handle backslash"); [INFO] [stdout] | ------------------------- any code following this expression is unreachable [INFO] [stdout] 179 | true [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `type_` is never read [INFO] [stdout] --> lexer/src/lib.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | type_ = Some(Type::Positive); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> lexer/src/lib.rs:189:35 [INFO] [stdout] | [INFO] [stdout] 189 | fn handle_e_number(&mut self, input: String) -> LexerResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_first` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:257:18 [INFO] [stdout] | [INFO] [stdout] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_first` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_second` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:257:33 [INFO] [stdout] | [INFO] [stdout] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_second` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_first` is never read [INFO] [stdout] --> lexer/src/lib.rs:262:21 [INFO] [stdout] | [INFO] [stdout] 262 | has_first = false; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_second` is never read [INFO] [stdout] --> lexer/src/lib.rs:277:17 [INFO] [stdout] | [INFO] [stdout] 277 | has_second = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_first` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:324:18 [INFO] [stdout] | [INFO] [stdout] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_first` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_second` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:324:33 [INFO] [stdout] | [INFO] [stdout] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_second` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `second` [INFO] [stdout] --> lexer/src/lib.rs:325:21 [INFO] [stdout] | [INFO] [stdout] 325 | let (first, second) = { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_first` is never read [INFO] [stdout] --> lexer/src/lib.rs:329:21 [INFO] [stdout] | [INFO] [stdout] 329 | has_first = false; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_second` is never read [INFO] [stdout] --> lexer/src/lib.rs:344:17 [INFO] [stdout] | [INFO] [stdout] 344 | has_second = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `original`, `chars` and `current_pos` are never read [INFO] [stdout] --> lexer/src/lib.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct StringInput<'chars> { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 47 | original: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | chars: Peekable>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | current_pos: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] = note: `StringInput` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `original` is never read [INFO] [stdout] --> lexer/src/lib.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct Lexer<'chars> { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 68 | input: Peekable>, [INFO] [stdout] 69 | original: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lexer` 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: associated function `read_until_with_count` is never used [INFO] [stdout] --> lexer/src/lib.rs:516:8 [INFO] [stdout] | [INFO] [stdout] 516 | fn read_until_with_count(&mut self, character: char, count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `read_until_not` is never used [INFO] [stdout] --> lexer/src/lib.rs:535:8 [INFO] [stdout] | [INFO] [stdout] 535 | fn read_until_not(&mut self, character: char) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `into_word` is never used [INFO] [stdout] --> lexer/src/token.rs:488:8 [INFO] [stdout] | [INFO] [stdout] 488 | fn into_word(self) -> Word { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling lexer v0.1.0 (/opt/rustwide/workdir/lexer) [INFO] [stdout] warning: 17 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LexerResult` [INFO] [stdout] --> parser/src/cursor.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use lexer::{Lexer, LexerResult, TokenError, TokenSpan, token::{Identifier, Token, Word}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BinOp` [INFO] [stdout] --> parser/src/lib.rs:6:42 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{TokenSpan, token::{AssignOp, BinOp, Identifier, Word}, token::{Keyword, Token}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_tree` [INFO] [stdout] --> parser/src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use ptree::{print_tree, TreeBuilder}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/src/lib.rs:1166:37 [INFO] [stdout] | [INFO] [stdout] 1166 | Some(TokenSpan { token: t, span: _ }) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> parser/src/lib.rs:1224:13 [INFO] [stdout] | [INFO] [stdout] 1224 | let id = match cursor.peek() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> parser/src/lib.rs:1225:66 [INFO] [stdout] | [INFO] [stdout] 1225 | Some(TokenSpan { token: Token::Word(Word::Identifier(id)), ..}) => Some(ID(cursor.next().unwrap())), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `declarations` [INFO] [stdout] --> parser/src/lib.rs:1231:13 [INFO] [stdout] | [INFO] [stdout] 1231 | let declarations = VarDeclarations::parse(cursor)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_declarations` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling parser v0.1.0 (/opt/rustwide/workdir/parser) [INFO] [stdout] warning: associated function `parse` is never used [INFO] [stdout] --> parser/src/lib.rs:1221:8 [INFO] [stdout] | [INFO] [stdout] 1221 | fn parse(cursor: &mut Cursor) -> ParseResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `parse` is never used [INFO] [stdout] --> parser/src/lib.rs:1335:8 [INFO] [stdout] | [INFO] [stdout] 1335 | fn parse(cursor: &mut Cursor) -> ParseResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 9 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling itertools v0.10.1 [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`, `any::Any`, `default` [INFO] [stdout] --> runtime/src/lib.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{any::Any, borrow::{Borrow, BorrowMut}, default, fmt::Debug, io::Write, net::{TcpListener, TcpStream}, ops::DerefMut, sync::{Arc... [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lazy_static::__Deref` [INFO] [stdout] --> runtime/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use lazy_static::__Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, `warn` [INFO] [stdout] --> runtime/src/lib.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logfn_inputs` [INFO] [stdout] --> runtime/src/lib.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use log_derive::{logfn, logfn_inputs}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Identifier`, `Lexer`, `Span` [INFO] [stdout] --> runtime/src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | token::{Identifier, Token, Word}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | Lexer, Span, TokenError, TokenSpan, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DeclarationType` [INFO] [stdout] --> runtime/src/lib.rs:14:83 [INFO] [stdout] | [INFO] [stdout] 14 | cursor::Cursor, Assignment, BasicVarDeclaration, Body, Constant, Declaration, DeclarationType, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::TcpSocket` [INFO] [stdout] --> runtime/src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use tokio::net::TcpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `borrow::Borrow`, `cell::RefCell`, `rc::Rc` [INFO] [stdout] --> runtime/src/scope.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Borrow, cell::RefCell, rc::Rc, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> runtime/src/scope.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::variable::{Value, Variable}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `warn` [INFO] [stdout] --> runtime/src/scope.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{ trace, debug, warn, info, error }; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Chain`, `Context`, `Error as AnyError`, `bail` [INFO] [stdout] --> runtime/src/lib.rs:26:14 [INFO] [stdout] | [INFO] [stdout] 26 | use anyhow::{bail, Chain, Context, Error as AnyError}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Map` [INFO] [stdout] --> runtime/src/lib.rs:29:34 [INFO] [stdout] | [INFO] [stdout] 29 | use variable::{CallableFunction, Map, Value, Variable}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> runtime/src/lib.rs:351:21 [INFO] [stdout] | [INFO] [stdout] 351 | return match self.scopes.get(c.0.token.value()) { [INFO] [stdout] | ______________________^______- [INFO] [stdout] | | _____________________| [INFO] [stdout] | || [INFO] [stdout] 352 | || Some(v) => return Ok(v), [INFO] [stdout] 353 | || None => { [INFO] [stdout] 354 | || return Err(RuntimeError::ReferenceError(format!( [INFO] [stdout] ... || [INFO] [stdout] 358 | || } [INFO] [stdout] 359 | || } [INFO] [stdout] | || ^ [INFO] [stdout] | ||_____________________| [INFO] [stdout] | |______________________unreachable expression [INFO] [stdout] | any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> runtime/src/lib.rs:498:38 [INFO] [stdout] | [INFO] [stdout] 498 | ParsedVariable::Callable(c) => unreachable!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> runtime/src/lib.rs:567:41 [INFO] [stdout] | [INFO] [stdout] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stdout] | ^^ help: try ignoring the field: `id: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dimensions` [INFO] [stdout] --> runtime/src/lib.rs:567:45 [INFO] [stdout] | [INFO] [stdout] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `dimensions: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> runtime/src/variable.rs:86:29 [INFO] [stdout] | [INFO] [stdout] 86 | Value::Function(f) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> runtime/src/variable.rs:87:27 [INFO] [stdout] | [INFO] [stdout] 87 | Value::Native(n) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> runtime/src/variable.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut var = match var.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut var = match var.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | let mut stream = match stream.deref_mut() { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | let mut map = match map.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `set_with_mutex` is never used [INFO] [stdout] --> runtime/src/scope.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) fn set_with_mutex(&mut self, variable: Arc>) -> Result<(), SetError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / runtime.add_function("server_create", |_, args| { [INFO] [stdout] 45 | | if args.len() != 1 { [INFO] [stdout] 46 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 47 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 72 | | Ok(Variable::arc(None, Value::Native(Box::new(server)))) [INFO] [stdout] 73 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / runtime.add_function("server_accept", |_, args| { [INFO] [stdout] 76 | | if args.len() != 1 { [INFO] [stdout] 77 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 78 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 108 | | Ok(Variable::arc(None, Value::Map(map))) [INFO] [stdout] 109 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | / runtime.add_function("server_send", |_, args| { [INFO] [stdout] 112 | | if args.len() != 2 { [INFO] [stdout] 113 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 114 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 167 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stdout] 168 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | stream.write(response.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | / runtime.add_function("map", |_, _| { [INFO] [stdout] 171 | | Ok(Variable::arc(None, Value::Map(HashMap::default()))) [INFO] [stdout] 172 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | / runtime.add_function("read_file", |_, args| { [INFO] [stdout] 176 | | if args.len() != 1 { [INFO] [stdout] 177 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 178 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 195 | | Ok(Variable::arc(None, Value::String(result))) [INFO] [stdout] 196 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | / runtime.add_function("map_get", |_, args| { [INFO] [stdout] 199 | | if args.len() != 2 { [INFO] [stdout] 200 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 201 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 229 | | }) [INFO] [stdout] 230 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | / runtime.add_function("map_set", |_, args| { [INFO] [stdout] 233 | | if args.len() != 3 { [INFO] [stdout] 234 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 235 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 264 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stdout] 265 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:377:9 [INFO] [stdout] | [INFO] [stdout] 377 | / self.scopes.set(Variable::new( [INFO] [stdout] 378 | | Some(identifier.to_string()), [INFO] [stdout] 379 | | Arc::new(Mutex::new(Value::Function(FunctionValue::Native(function)))), [INFO] [stdout] 380 | | )); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | self.handle_labeled_statement(statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | self.handle_statement(&statement.statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:456:13 [INFO] [stdout] | [INFO] [stdout] 456 | self.handle_body(&statement.body); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling walkdir v2.3.2 [INFO] [stderr] Compiling clap v2.33.3 [INFO] [stderr] Compiling fort500 v0.1.0 (/opt/rustwide/workdir/fort500) [INFO] [stdout] warning: unused import: `LexerResult` [INFO] [stdout] --> parser/src/cursor.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use lexer::{Lexer, LexerResult, TokenError, TokenSpan, token::{Identifier, Token, Word}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BinOp` [INFO] [stdout] --> parser/src/lib.rs:6:42 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{TokenSpan, token::{AssignOp, BinOp, Identifier, Word}, token::{Keyword, Token}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> lexer/src/lib.rs:179:21 [INFO] [stdout] | [INFO] [stdout] 178 | todo!("handle backslash"); [INFO] [stdout] | ------------------------- any code following this expression is unreachable [INFO] [stdout] 179 | true [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, `process::exit` [INFO] [stdout] --> fort500/src/main.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs, process::exit, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RuntimeError`, `RuntimeResult`, `Truthy` [INFO] [stdout] --> fort500/src/main.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use runtime::{Runtime, RuntimeError, RuntimeResult, variable::{HashMap, Truthy, Value, Variable}}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> fort500/src/main.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{ error, warn, info, }; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `runtime` [INFO] [stdout] --> fort500/src/main.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | fn init_runtime(runtime: &mut Runtime) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runtime` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> fort500/src/main.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | runtime.scopes.set(Variable::with_value(Some("my_map".to_string()), Value::Map(m))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> fort500/src/main.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | runtime.eval(fs::read_to_string(input).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> fort500/src/main.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | runtime.eval_program(program); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling bstr v0.2.15 [INFO] [stderr] Compiling plotters-svg v0.3.1 [INFO] [stdout] warning: value assigned to `type_` is never read [INFO] [stdout] --> lexer/src/lib.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | type_ = Some(Type::Positive); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> lexer/src/lib.rs:189:35 [INFO] [stdout] | [INFO] [stdout] 189 | fn handle_e_number(&mut self, input: String) -> LexerResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_first` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:257:18 [INFO] [stdout] | [INFO] [stdout] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_first` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_second` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:257:33 [INFO] [stdout] | [INFO] [stdout] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_second` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_first` is never read [INFO] [stdout] --> lexer/src/lib.rs:262:21 [INFO] [stdout] | [INFO] [stdout] 262 | has_first = false; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_second` is never read [INFO] [stdout] --> lexer/src/lib.rs:277:17 [INFO] [stdout] | [INFO] [stdout] 277 | has_second = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_first` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:324:18 [INFO] [stdout] | [INFO] [stdout] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_first` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_second` is assigned to, but never used [INFO] [stdout] --> lexer/src/lib.rs:324:33 [INFO] [stdout] | [INFO] [stdout] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_second` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `second` [INFO] [stdout] --> lexer/src/lib.rs:325:21 [INFO] [stdout] | [INFO] [stdout] 325 | let (first, second) = { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_first` is never read [INFO] [stdout] --> lexer/src/lib.rs:329:21 [INFO] [stdout] | [INFO] [stdout] 329 | has_first = false; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_second` is never read [INFO] [stdout] --> lexer/src/lib.rs:344:17 [INFO] [stdout] | [INFO] [stdout] 344 | has_second = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> lexer/src/lib.rs:564:13 [INFO] [stdout] | [INFO] [stdout] 564 | let s = serde_json::to_string(&lexer.lex()).unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling serde_cbor v0.11.2 [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> parser/src/lib.rs:1166:37 [INFO] [stdout] | [INFO] [stdout] 1166 | Some(TokenSpan { token: t, span: _ }) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> parser/src/lib.rs:1224:13 [INFO] [stdout] | [INFO] [stdout] 1224 | let id = match cursor.peek() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> parser/src/lib.rs:1225:66 [INFO] [stdout] | [INFO] [stdout] 1225 | Some(TokenSpan { token: Token::Word(Word::Identifier(id)), ..}) => Some(ID(cursor.next().unwrap())), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `declarations` [INFO] [stdout] --> parser/src/lib.rs:1231:13 [INFO] [stdout] | [INFO] [stdout] 1231 | let declarations = VarDeclarations::parse(cursor)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_declarations` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `original`, `chars` and `current_pos` are never read [INFO] [stdout] --> lexer/src/lib.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct StringInput<'chars> { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 47 | original: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | chars: Peekable>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | current_pos: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] = note: `StringInput` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `original` is never read [INFO] [stdout] --> lexer/src/lib.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct Lexer<'chars> { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 68 | input: Peekable>, [INFO] [stdout] 69 | original: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lexer` 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: associated function `read_until_with_count` is never used [INFO] [stdout] --> lexer/src/lib.rs:516:8 [INFO] [stdout] | [INFO] [stdout] 516 | fn read_until_with_count(&mut self, character: char, count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `read_until_not` is never used [INFO] [stdout] --> lexer/src/lib.rs:535:8 [INFO] [stdout] | [INFO] [stdout] 535 | fn read_until_not(&mut self, character: char) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `into_word` is never used [INFO] [stdout] --> lexer/src/token.rs:488:8 [INFO] [stdout] | [INFO] [stdout] 488 | fn into_word(self) -> Word { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling crossbeam-channel v0.5.1 [INFO] [stderr] Compiling plotters v0.3.1 [INFO] [stdout] warning: 7 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `parse` is never used [INFO] [stdout] --> parser/src/lib.rs:1221:8 [INFO] [stdout] | [INFO] [stdout] 1221 | fn parse(cursor: &mut Cursor) -> ParseResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.1 [INFO] [stderr] Compiling csv v1.1.6 [INFO] [stderr] Compiling cast v0.2.7 [INFO] [stderr] Compiling criterion-plot v0.4.4 [INFO] [stdout] warning: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 7 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling criterion v0.3.5 [INFO] [stderr] Compiling runtime v0.1.0 (/opt/rustwide/workdir/runtime) [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`, `any::Any`, `default` [INFO] [stdout] --> runtime/src/lib.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{any::Any, borrow::{Borrow, BorrowMut}, default, fmt::Debug, io::Write, net::{TcpListener, TcpStream}, ops::DerefMut, sync::{Arc... [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^ ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lazy_static::__Deref` [INFO] [stdout] --> runtime/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use lazy_static::__Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, `warn` [INFO] [stdout] --> runtime/src/lib.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logfn_inputs` [INFO] [stdout] --> runtime/src/lib.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use log_derive::{logfn, logfn_inputs}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Identifier`, `Lexer`, `Span` [INFO] [stdout] --> runtime/src/lib.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | token::{Identifier, Token, Word}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | Lexer, Span, TokenError, TokenSpan, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DeclarationType` [INFO] [stdout] --> runtime/src/lib.rs:14:83 [INFO] [stdout] | [INFO] [stdout] 14 | cursor::Cursor, Assignment, BasicVarDeclaration, Body, Constant, Declaration, DeclarationType, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::TcpSocket` [INFO] [stdout] --> runtime/src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use tokio::net::TcpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `borrow::Borrow`, `cell::RefCell`, `rc::Rc` [INFO] [stdout] --> runtime/src/scope.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Borrow, cell::RefCell, rc::Rc, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> runtime/src/scope.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::variable::{Value, Variable}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `warn` [INFO] [stdout] --> runtime/src/scope.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{ trace, debug, warn, info, error }; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Chain`, `Context`, `Error as AnyError`, `bail` [INFO] [stdout] --> runtime/src/lib.rs:26:14 [INFO] [stdout] | [INFO] [stdout] 26 | use anyhow::{bail, Chain, Context, Error as AnyError}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Map` [INFO] [stdout] --> runtime/src/lib.rs:29:34 [INFO] [stdout] | [INFO] [stdout] 29 | use variable::{CallableFunction, Map, Value, Variable}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> runtime/src/lib.rs:351:21 [INFO] [stdout] | [INFO] [stdout] 351 | return match self.scopes.get(c.0.token.value()) { [INFO] [stdout] | ______________________^______- [INFO] [stdout] | | _____________________| [INFO] [stdout] | || [INFO] [stdout] 352 | || Some(v) => return Ok(v), [INFO] [stdout] 353 | || None => { [INFO] [stdout] 354 | || return Err(RuntimeError::ReferenceError(format!( [INFO] [stdout] ... || [INFO] [stdout] 358 | || } [INFO] [stdout] 359 | || } [INFO] [stdout] | || ^ [INFO] [stdout] | ||_____________________| [INFO] [stdout] | |______________________unreachable expression [INFO] [stdout] | any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `runtime` [INFO] [stdout] --> runtime/src/lib.rs:578:13 [INFO] [stdout] | [INFO] [stdout] 578 | let mut runtime = Runtime::default(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runtime` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> runtime/src/lib.rs:498:38 [INFO] [stdout] | [INFO] [stdout] 498 | ParsedVariable::Callable(c) => unreachable!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> runtime/src/lib.rs:567:41 [INFO] [stdout] | [INFO] [stdout] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stdout] | ^^ help: try ignoring the field: `id: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dimensions` [INFO] [stdout] --> runtime/src/lib.rs:567:45 [INFO] [stdout] | [INFO] [stdout] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `dimensions: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scopes` [INFO] [stdout] --> runtime/src/scope.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut scopes = ScopeManager::default(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scopes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> runtime/src/variable.rs:86:29 [INFO] [stdout] | [INFO] [stdout] 86 | Value::Function(f) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> runtime/src/variable.rs:87:27 [INFO] [stdout] | [INFO] [stdout] 87 | Value::Native(n) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> runtime/src/variable.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut var = match var.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | let mut var = match var.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | let mut stream = match stream.deref_mut() { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | let mut map = match map.deref_mut() { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/scope.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let mut scopes = ScopeManager::default(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> runtime/src/lib.rs:578:9 [INFO] [stdout] | [INFO] [stdout] 578 | let mut runtime = Runtime::default(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `set_with_mutex` is never used [INFO] [stdout] --> runtime/src/scope.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) fn set_with_mutex(&mut self, variable: Arc>) -> Result<(), SetError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / runtime.add_function("server_create", |_, args| { [INFO] [stdout] 45 | | if args.len() != 1 { [INFO] [stdout] 46 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 47 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 72 | | Ok(Variable::arc(None, Value::Native(Box::new(server)))) [INFO] [stdout] 73 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / runtime.add_function("server_accept", |_, args| { [INFO] [stdout] 76 | | if args.len() != 1 { [INFO] [stdout] 77 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 78 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 108 | | Ok(Variable::arc(None, Value::Map(map))) [INFO] [stdout] 109 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | / runtime.add_function("server_send", |_, args| { [INFO] [stdout] 112 | | if args.len() != 2 { [INFO] [stdout] 113 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 114 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 167 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stdout] 168 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | stream.write(response.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | / runtime.add_function("map", |_, _| { [INFO] [stdout] 171 | | Ok(Variable::arc(None, Value::Map(HashMap::default()))) [INFO] [stdout] 172 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | / runtime.add_function("read_file", |_, args| { [INFO] [stdout] 176 | | if args.len() != 1 { [INFO] [stdout] 177 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 178 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 195 | | Ok(Variable::arc(None, Value::String(result))) [INFO] [stdout] 196 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | / runtime.add_function("map_get", |_, args| { [INFO] [stdout] 199 | | if args.len() != 2 { [INFO] [stdout] 200 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 201 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 229 | | }) [INFO] [stdout] 230 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | / runtime.add_function("map_set", |_, args| { [INFO] [stdout] 233 | | if args.len() != 3 { [INFO] [stdout] 234 | | return Err(RuntimeError::RuntimeError( [INFO] [stdout] 235 | | "NotEnoughArguments".into(), [INFO] [stdout] ... | [INFO] [stdout] 264 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stdout] 265 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:377:9 [INFO] [stdout] | [INFO] [stdout] 377 | / self.scopes.set(Variable::new( [INFO] [stdout] 378 | | Some(identifier.to_string()), [INFO] [stdout] 379 | | Arc::new(Mutex::new(Value::Function(FunctionValue::Native(function)))), [INFO] [stdout] 380 | | )); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | self.handle_labeled_statement(statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | self.handle_statement(&statement.statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> runtime/src/lib.rs:456:13 [INFO] [stdout] | [INFO] [stdout] 456 | self.handle_body(&statement.body); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 40 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 15.55s [INFO] running `Command { std: "docker" "inspect" "31bfa01c6ac809db5faeb4ea51aaabbeef4f2ebf84ec65ece234e5e5bbbc6de1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "31bfa01c6ac809db5faeb4ea51aaabbeef4f2ebf84ec65ece234e5e5bbbc6de1", kill_on_drop: false }` [INFO] [stdout] 31bfa01c6ac809db5faeb4ea51aaabbeef4f2ebf84ec65ece234e5e5bbbc6de1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "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:5873ed620acfc3295992aedd9294443d62a478a48ba243bc5e6c4f5abaffa05f" "/opt/rustwide/cargo-home/bin/cargo" "+5bc97a20e5cc382ae6d19f727a9e73eeb2734548" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 59d819f92f53356e205bba18ecb8ae589f404d7d70062e5cc22b727eac162ff8 [INFO] running `Command { std: "docker" "start" "-a" "59d819f92f53356e205bba18ecb8ae589f404d7d70062e5cc22b727eac162ff8", kill_on_drop: false }` [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> lexer/src/lib.rs:179:21 [INFO] [stderr] | [INFO] [stderr] 178 | todo!("handle backslash"); [INFO] [stderr] | ------------------------- any code following this expression is unreachable [INFO] [stderr] 179 | true [INFO] [stderr] | ^^^^ unreachable expression [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `type_` is never read [INFO] [stderr] --> lexer/src/lib.rs:232:13 [INFO] [stderr] | [INFO] [stderr] 232 | type_ = Some(Type::Positive); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> lexer/src/lib.rs:189:35 [INFO] [stderr] | [INFO] [stderr] 189 | fn handle_e_number(&mut self, input: String) -> LexerResult { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable `has_first` is assigned to, but never used [INFO] [stderr] --> lexer/src/lib.rs:257:18 [INFO] [stderr] | [INFO] [stderr] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_has_first` instead [INFO] [stderr] [INFO] [stderr] warning: variable `has_second` is assigned to, but never used [INFO] [stderr] --> lexer/src/lib.rs:257:33 [INFO] [stderr] | [INFO] [stderr] 257 | let (mut has_first, mut has_second) = (true, true); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_has_second` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `has_first` is never read [INFO] [stderr] --> lexer/src/lib.rs:262:21 [INFO] [stderr] | [INFO] [stderr] 262 | has_first = false; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `has_second` is never read [INFO] [stderr] --> lexer/src/lib.rs:277:17 [INFO] [stderr] | [INFO] [stderr] 277 | has_second = false; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: variable `has_first` is assigned to, but never used [INFO] [stderr] --> lexer/src/lib.rs:324:18 [INFO] [stderr] | [INFO] [stderr] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_has_first` instead [INFO] [stderr] [INFO] [stderr] warning: variable `has_second` is assigned to, but never used [INFO] [stderr] --> lexer/src/lib.rs:324:33 [INFO] [stderr] | [INFO] [stderr] 324 | let (mut has_first, mut has_second) = (true, true); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_has_second` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `second` [INFO] [stderr] --> lexer/src/lib.rs:325:21 [INFO] [stderr] | [INFO] [stderr] 325 | let (first, second) = { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `has_first` is never read [INFO] [stderr] --> lexer/src/lib.rs:329:21 [INFO] [stderr] | [INFO] [stderr] 329 | has_first = false; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `has_second` is never read [INFO] [stderr] --> lexer/src/lib.rs:344:17 [INFO] [stderr] | [INFO] [stderr] 344 | has_second = false; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: fields `original`, `chars` and `current_pos` are never read [INFO] [stderr] --> lexer/src/lib.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 46 | pub struct StringInput<'chars> { [INFO] [stderr] | ----------- fields in this struct [INFO] [stderr] 47 | original: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 48 | chars: Peekable>, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 49 | current_pos: usize, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] = note: `StringInput` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `original` is never read [INFO] [stderr] --> lexer/src/lib.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 67 | pub struct Lexer<'chars> { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] 68 | input: Peekable>, [INFO] [stderr] 69 | original: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Lexer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `read_until_with_count` is never used [INFO] [stderr] --> lexer/src/lib.rs:516:8 [INFO] [stderr] | [INFO] [stderr] 516 | fn read_until_with_count(&mut self, character: char, count: usize) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `read_until_not` is never used [INFO] [stderr] --> lexer/src/lib.rs:535:8 [INFO] [stderr] | [INFO] [stderr] 535 | fn read_until_not(&mut self, character: char) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `into_word` is never used [INFO] [stderr] --> lexer/src/token.rs:488:8 [INFO] [stderr] | [INFO] [stderr] 488 | fn into_word(self) -> Word { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> lexer/src/lib.rs:564:13 [INFO] [stderr] | [INFO] [stderr] 564 | let s = serde_json::to_string(&lexer.lex()).unwrap(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: `lexer` (lib) generated 17 warnings [INFO] [stderr] warning: `lexer` (lib test) generated 18 warnings (17 duplicates) [INFO] [stderr] warning: unused import: `LexerResult` [INFO] [stderr] --> parser/src/cursor.rs:1:20 [INFO] [stderr] | [INFO] [stderr] 1 | use lexer::{Lexer, LexerResult, TokenError, TokenSpan, token::{Identifier, Token, Word}}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `BinOp` [INFO] [stderr] --> parser/src/lib.rs:6:42 [INFO] [stderr] | [INFO] [stderr] 6 | use lexer::{TokenSpan, token::{AssignOp, BinOp, Identifier, Word}, token::{Keyword, Token}}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `print_tree` [INFO] [stderr] --> parser/src/lib.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | use ptree::{print_tree, TreeBuilder}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> parser/src/lib.rs:1166:37 [INFO] [stderr] | [INFO] [stderr] 1166 | Some(TokenSpan { token: t, span: _ }) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> parser/src/lib.rs:1224:13 [INFO] [stderr] | [INFO] [stderr] 1224 | let id = match cursor.peek() { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> parser/src/lib.rs:1225:66 [INFO] [stderr] | [INFO] [stderr] 1225 | Some(TokenSpan { token: Token::Word(Word::Identifier(id)), ..}) => Some(ID(cursor.next().unwrap())), [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `declarations` [INFO] [stderr] --> parser/src/lib.rs:1231:13 [INFO] [stderr] | [INFO] [stderr] 1231 | let declarations = VarDeclarations::parse(cursor)?; [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_declarations` [INFO] [stderr] [INFO] [stderr] warning: associated function `parse` is never used [INFO] [stderr] --> parser/src/lib.rs:1221:8 [INFO] [stderr] | [INFO] [stderr] 1221 | fn parse(cursor: &mut Cursor) -> ParseResult { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function `parse` is never used [INFO] [stderr] --> parser/src/lib.rs:1335:8 [INFO] [stderr] | [INFO] [stderr] 1335 | fn parse(cursor: &mut Cursor) -> ParseResult { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `parser` (lib) generated 9 warnings [INFO] [stderr] warning: `parser` (lib test) generated 7 warnings (7 duplicates) [INFO] [stderr] warning: unused imports: `BorrowMut`, `Borrow`, `any::Any`, `default` [INFO] [stderr] --> runtime/src/lib.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{any::Any, borrow::{Borrow, BorrowMut}, default, fmt::Debug, io::Write, net::{TcpListener, TcpStream}, ops::DerefMut, sync::{Arc... [INFO] [stderr] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^ ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `lazy_static::__Deref` [INFO] [stderr] --> runtime/src/lib.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use lazy_static::__Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `error`, `info`, `warn` [INFO] [stderr] --> runtime/src/lib.rs:6:11 [INFO] [stderr] | [INFO] [stderr] 6 | use log::{error, info, trace, warn}; [INFO] [stderr] | ^^^^^ ^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `logfn_inputs` [INFO] [stderr] --> runtime/src/lib.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | use log_derive::{logfn, logfn_inputs}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Identifier`, `Lexer`, `Span` [INFO] [stderr] --> runtime/src/lib.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | token::{Identifier, Token, Word}, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 11 | Lexer, Span, TokenError, TokenSpan, [INFO] [stderr] | ^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DeclarationType` [INFO] [stderr] --> runtime/src/lib.rs:14:83 [INFO] [stderr] | [INFO] [stderr] 14 | cursor::Cursor, Assignment, BasicVarDeclaration, Body, Constant, Declaration, DeclarationType, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio::net::TcpSocket` [INFO] [stderr] --> runtime/src/lib.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use tokio::net::TcpSocket; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `borrow::Borrow`, `cell::RefCell`, `rc::Rc` [INFO] [stderr] --> runtime/src/scope.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{borrow::Borrow, cell::RefCell, rc::Rc, sync::{Arc, Mutex}}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Value` [INFO] [stderr] --> runtime/src/scope.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::variable::{Value, Variable}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `debug`, `error`, `info`, `warn` [INFO] [stderr] --> runtime/src/scope.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | use log::{ trace, debug, warn, info, error }; [INFO] [stderr] | ^^^^^ ^^^^ ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Chain`, `Context`, `Error as AnyError`, `bail` [INFO] [stderr] --> runtime/src/lib.rs:26:14 [INFO] [stderr] | [INFO] [stderr] 26 | use anyhow::{bail, Chain, Context, Error as AnyError}; [INFO] [stderr] | ^^^^ ^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Map` [INFO] [stderr] --> runtime/src/lib.rs:29:34 [INFO] [stderr] | [INFO] [stderr] 29 | use variable::{CallableFunction, Map, Value, Variable}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> runtime/src/lib.rs:351:21 [INFO] [stderr] | [INFO] [stderr] 351 | return match self.scopes.get(c.0.token.value()) { [INFO] [stderr] | ______________________^______- [INFO] [stderr] | | _____________________| [INFO] [stderr] | || [INFO] [stderr] 352 | || Some(v) => return Ok(v), [INFO] [stderr] 353 | || None => { [INFO] [stderr] 354 | || return Err(RuntimeError::ReferenceError(format!( [INFO] [stderr] ... || [INFO] [stderr] 358 | || } [INFO] [stderr] 359 | || } [INFO] [stderr] | || ^ [INFO] [stderr] | ||_____________________| [INFO] [stderr] | |______________________unreachable expression [INFO] [stderr] | any code following this `match` expression is unreachable, as all arms diverge [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> runtime/src/lib.rs:498:38 [INFO] [stderr] | [INFO] [stderr] 498 | ParsedVariable::Callable(c) => unreachable!(), [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> runtime/src/lib.rs:567:41 [INFO] [stderr] | [INFO] [stderr] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stderr] | ^^ help: try ignoring the field: `id: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dimensions` [INFO] [stderr] --> runtime/src/lib.rs:567:45 [INFO] [stderr] | [INFO] [stderr] 567 | VarDeclaration::Array { id, dimensions } => todo!(), [INFO] [stderr] | ^^^^^^^^^^ help: try ignoring the field: `dimensions: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> runtime/src/variable.rs:86:29 [INFO] [stderr] | [INFO] [stderr] 86 | Value::Function(f) => todo!(), [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> runtime/src/variable.rs:87:27 [INFO] [stderr] | [INFO] [stderr] 87 | Value::Native(n) => true, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> runtime/src/variable.rs:102:19 [INFO] [stderr] | [INFO] [stderr] 102 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> runtime/src/lib.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | let mut var = match var.deref_mut() { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> runtime/src/lib.rs:124:17 [INFO] [stderr] | [INFO] [stderr] 124 | let mut var = match var.deref_mut() { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> runtime/src/lib.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | let mut stream = match stream.deref_mut() { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> runtime/src/lib.rs:245:17 [INFO] [stderr] | [INFO] [stderr] 245 | let mut map = match map.deref_mut() { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: associated function `set_with_mutex` is never used [INFO] [stderr] --> runtime/src/scope.rs:67:19 [INFO] [stderr] | [INFO] [stderr] 67 | pub(crate) fn set_with_mutex(&mut self, variable: Arc>) -> Result<(), SetError> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / runtime.add_function("server_create", |_, args| { [INFO] [stderr] 45 | | if args.len() != 1 { [INFO] [stderr] 46 | | return Err(RuntimeError::RuntimeError( [INFO] [stderr] 47 | | "NotEnoughArguments".into(), [INFO] [stderr] ... | [INFO] [stderr] 72 | | Ok(Variable::arc(None, Value::Native(Box::new(server)))) [INFO] [stderr] 73 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | / runtime.add_function("server_accept", |_, args| { [INFO] [stderr] 76 | | if args.len() != 1 { [INFO] [stderr] 77 | | return Err(RuntimeError::RuntimeError( [INFO] [stderr] 78 | | "NotEnoughArguments".into(), [INFO] [stderr] ... | [INFO] [stderr] 108 | | Ok(Variable::arc(None, Value::Map(map))) [INFO] [stderr] 109 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | / runtime.add_function("server_send", |_, args| { [INFO] [stderr] 112 | | if args.len() != 2 { [INFO] [stderr] 113 | | return Err(RuntimeError::RuntimeError( [INFO] [stderr] 114 | | "NotEnoughArguments".into(), [INFO] [stderr] ... | [INFO] [stderr] 167 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stderr] 168 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | stream.write(response.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | / runtime.add_function("map", |_, _| { [INFO] [stderr] 171 | | Ok(Variable::arc(None, Value::Map(HashMap::default()))) [INFO] [stderr] 172 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | / runtime.add_function("read_file", |_, args| { [INFO] [stderr] 176 | | if args.len() != 1 { [INFO] [stderr] 177 | | return Err(RuntimeError::RuntimeError( [INFO] [stderr] 178 | | "NotEnoughArguments".into(), [INFO] [stderr] ... | [INFO] [stderr] 195 | | Ok(Variable::arc(None, Value::String(result))) [INFO] [stderr] 196 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | / runtime.add_function("map_get", |_, args| { [INFO] [stderr] 199 | | if args.len() != 2 { [INFO] [stderr] 200 | | return Err(RuntimeError::RuntimeError( [INFO] [stderr] 201 | | "NotEnoughArguments".into(), [INFO] [stderr] ... | [INFO] [stderr] 229 | | }) [INFO] [stderr] 230 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:232:9 [INFO] [stderr] | [INFO] [stderr] 232 | / runtime.add_function("map_set", |_, args| { [INFO] [stderr] 233 | | if args.len() != 3 { [INFO] [stderr] 234 | | return Err(RuntimeError::RuntimeError( [INFO] [stderr] 235 | | "NotEnoughArguments".into(), [INFO] [stderr] ... | [INFO] [stderr] 264 | | Ok(Variable::arc(None, Value::Undefined)) [INFO] [stderr] 265 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:377:9 [INFO] [stderr] | [INFO] [stderr] 377 | / self.scopes.set(Variable::new( [INFO] [stderr] 378 | | Some(identifier.to_string()), [INFO] [stderr] 379 | | Arc::new(Mutex::new(Value::Function(FunctionValue::Native(function)))), [INFO] [stderr] 380 | | )); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:424:13 [INFO] [stderr] | [INFO] [stderr] 424 | self.handle_labeled_statement(statement); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:432:9 [INFO] [stderr] | [INFO] [stderr] 432 | self.handle_statement(&statement.statement); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> runtime/src/lib.rs:456:13 [INFO] [stderr] | [INFO] [stderr] 456 | self.handle_body(&statement.body); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused variable: `runtime` [INFO] [stderr] --> runtime/src/lib.rs:578:13 [INFO] [stderr] | [INFO] [stderr] 578 | let mut runtime = Runtime::default(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runtime` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> runtime/src/lib.rs:498:38 [INFO] [stderr] | [INFO] [stderr] 498 | ParsedVariable::Callable(c) => unreachable!(), [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `scopes` [INFO] [stderr] --> runtime/src/scope.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | let mut scopes = ScopeManager::default(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scopes` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> runtime/src/scope.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | let mut scopes = ScopeManager::default(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> runtime/src/lib.rs:578:9 [INFO] [stderr] | [INFO] [stderr] 578 | let mut runtime = Runtime::default(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: `runtime` (lib) generated 36 warnings [INFO] [stderr] warning: `runtime` (lib test) generated 40 warnings (35 duplicates) [INFO] [stderr] warning: unused imports: `Arc`, `Mutex`, `process::exit` [INFO] [stderr] --> fort500/src/main.rs:1:20 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{env, fs, process::exit, sync::{Arc, Mutex}}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RuntimeError`, `RuntimeResult`, `Truthy` [INFO] [stderr] --> fort500/src/main.rs:6:24 [INFO] [stderr] | [INFO] [stderr] 6 | use runtime::{Runtime, RuntimeError, RuntimeResult, variable::{HashMap, Truthy, Value, Variable}}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `info`, `warn` [INFO] [stderr] --> fort500/src/main.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | use log::{ error, warn, info, }; [INFO] [stderr] | ^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `runtime` [INFO] [stderr] --> fort500/src/main.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | fn init_runtime(runtime: &mut Runtime) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_runtime` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> fort500/src/main.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | runtime.scopes.set(Variable::with_value(Some("my_map".to_string()), Value::Map(m))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> fort500/src/main.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | runtime.eval(fs::read_to_string(input).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> fort500/src/main.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | runtime.eval_program(program); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `fort500` (bin "fort500" test) generated 7 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/fort500-0bb8d4c4246110a8) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lexer-b84b742917582e84) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test token::tokens::invalid_identifier ... ok [INFO] [stdout] test lexer_tests::lexer ... ok [INFO] [stdout] test token::tokens::basic_tests ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- token::tokens::basic_tests stdout ---- [INFO] [stdout] thread 'token::tokens::basic_tests' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `Ok(Word(Identifier(Identifier(".true"))))`, [INFO] [stdout] right: `Err(PossibleToken)`', lexer/src/token.rs:205:13 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55a6764c6cb0 - std::backtrace_rs::backtrace::libunwind::trace::h552106febb15e17e [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 1: 0x55a6764c6cb0 - std::backtrace_rs::backtrace::trace_unsynchronized::hf7774f161cb6a040 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55a6764c6cb0 - std::sys_common::backtrace::_print_fmt::h0c305f5052d81630 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/sys_common/backtrace.rs:66:5 [INFO] [stdout] 3: 0x55a6764c6cb0 - ::fmt::h64b3e0a8deb0a611 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/sys_common/backtrace.rs:45:22 [INFO] [stdout] 4: 0x55a6764eb7ec - core::fmt::write::h8f671d0f7992fdc6 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/fmt/mod.rs:1198:17 [INFO] [stdout] 5: 0x55a6764c33b5 - std::io::Write::write_fmt::hd208f914b48a2290 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/io/mod.rs:1672:15 [INFO] [stdout] 6: 0x55a6764c86f1 - std::sys_common::backtrace::_print::h9fa97aca0ed3f804 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/sys_common/backtrace.rs:48:5 [INFO] [stdout] 7: 0x55a6764c86f1 - std::sys_common::backtrace::print::haab86c3a36d9a53e [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/sys_common/backtrace.rs:35:9 [INFO] [stdout] 8: 0x55a6764c86f1 - std::panicking::default_hook::{{closure}}::h97ac82ba40b3820b [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:295:22 [INFO] [stdout] 9: 0x55a6764c8346 - std::panicking::default_hook::h3a2e40383cd02365 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:311:9 [INFO] [stdout] 10: 0x55a6764c8d93 - std::panicking::rust_panic_with_hook::h91242c0d4adecfe2 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:698:17 [INFO] [stdout] 11: 0x55a6764c8c87 - std::panicking::begin_panic_handler::{{closure}}::h627cf56a9a0a9517 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:588:13 [INFO] [stdout] 12: 0x55a6764c7184 - std::sys_common::backtrace::__rust_end_short_backtrace::hf13451d299824903 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/sys_common/backtrace.rs:138:18 [INFO] [stdout] 13: 0x55a6764c89b2 - rust_begin_unwind [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:584:5 [INFO] [stdout] 14: 0x55a6761c1303 - core::panicking::panic_fmt::ha6799a5d9621aa13 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/panicking.rs:142:14 [INFO] [stdout] 15: 0x55a6764ea048 - core::panicking::assert_failed_inner::h06a9ad83c1bddedb [INFO] [stdout] 16: 0x55a6761e5f7a - core::panicking::assert_failed::hf3e95d066ae8cf27 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/panicking.rs:181:5 [INFO] [stdout] 17: 0x55a6761cefef - lexer::token::tokens::basic_tests::{{closure}}::ha29c65db25fcb1fe [INFO] [stdout] at /opt/rustwide/workdir/lexer/src/token.rs:205:13 [INFO] [stdout] 18: 0x55a6761ce03c - as core::future::future::Future>::poll::ha698ee1e8d6a35de [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/future/mod.rs:91:19 [INFO] [stdout] 19: 0x55a6761e80ca - as core::future::future::Future>::poll::h4719199e087fe77a [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/future/future.rs:124:9 [INFO] [stdout] 20: 0x55a6761d2140 - tokio::runtime::basic_scheduler::Inner

::block_on::{{closure}}::{{closure}}::h75b207f6daad654c [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/basic_scheduler.rs:208:62 [INFO] [stdout] 21: 0x55a6761d67a0 - tokio::coop::with_budget::{{closure}}::hcea1395a3539c506 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/coop.rs:106:9 [INFO] [stdout] 22: 0x55a6761df3c0 - std::thread::local::LocalKey::try_with::h609571b030578cfe [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/thread/local.rs:445:16 [INFO] [stdout] 23: 0x55a6761de30d - std::thread::local::LocalKey::with::h0f2e7b45cbc256d3 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/thread/local.rs:421:9 [INFO] [stdout] 24: 0x55a6761d0ff8 - tokio::coop::with_budget::h06a461299cf5e4b6 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/coop.rs:99:5 [INFO] [stdout] 25: 0x55a6761d0ff8 - tokio::coop::budget::h40b15df3dd8653ba [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/coop.rs:76:5 [INFO] [stdout] 26: 0x55a6761d0ff8 - tokio::runtime::basic_scheduler::Inner

::block_on::{{closure}}::h3c1b5036767c4a2a [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/basic_scheduler.rs:208:39 [INFO] [stdout] 27: 0x55a6761d3da1 - tokio::runtime::basic_scheduler::enter::{{closure}}::h029449150443d4f4 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/basic_scheduler.rs:302:29 [INFO] [stdout] 28: 0x55a6761e4a17 - tokio::macros::scoped_tls::ScopedKey::set::hd52323ad532431bf [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/macros/scoped_tls.rs:61:9 [INFO] [stdout] 29: 0x55a6761d3d1d - tokio::runtime::basic_scheduler::enter::h7e892825c5d078f3 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/basic_scheduler.rs:302:5 [INFO] [stdout] 30: 0x55a6761d036b - tokio::runtime::basic_scheduler::Inner

::block_on::hf829248e74144c07 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/basic_scheduler.rs:197:9 [INFO] [stdout] 31: 0x55a6761d22fe - tokio::runtime::basic_scheduler::InnerGuard

::block_on::h70bd9142fe12064e [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/basic_scheduler.rs:448:9 [INFO] [stdout] 32: 0x55a6761d2727 - tokio::runtime::basic_scheduler::BasicScheduler

::block_on::h1fea61853aa5b777 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/basic_scheduler.rs:157:24 [INFO] [stdout] 33: 0x55a6761e7e10 - tokio::runtime::Runtime::block_on::h54fcbf8cb681a627 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-1.10.0/src/runtime/mod.rs:450:46 [INFO] [stdout] 34: 0x55a6761ce287 - lexer::token::tokens::basic_tests::h1ea6a9b2cc295208 [INFO] [stdout] at /opt/rustwide/workdir/lexer/src/token.rs:204:9 [INFO] [stdout] 35: 0x55a6761ce16a - lexer::token::tokens::basic_tests::{{closure}}::h56dc9a4bcb5f0871 [INFO] [stdout] at /opt/rustwide/workdir/lexer/src/token.rs:168:11 [INFO] [stdout] 36: 0x55a6761e53ee - core::ops::function::FnOnce::call_once::he745eae5b7d7b6a9 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 37: 0x55a6763cca83 - core::ops::function::FnOnce::call_once::h0f9e5c16f2fad3fe [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 38: 0x55a6763cca83 - test::__rust_begin_short_backtrace::h6b395b12fb47e0c7 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/test/src/lib.rs:572:5 [INFO] [stdout] 39: 0x55a6763cb81c - as core::ops::function::FnOnce>::call_once::h116a04ad1adfbba8 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/alloc/src/boxed.rs:1934:9 [INFO] [stdout] 40: 0x55a6763cb81c - as core::ops::function::FnOnce<()>>::call_once::h237703400c3f95d2 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 41: 0x55a6763cb81c - std::panicking::try::do_call::hb6f7087c5161b13a [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:492:40 [INFO] [stdout] 42: 0x55a6763cb81c - std::panicking::try::h40eb70910e5ec9fc [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:456:19 [INFO] [stdout] 43: 0x55a6763cb81c - std::panic::catch_unwind::h9011aaff4baefe1e [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panic.rs:137:14 [INFO] [stdout] 44: 0x55a6763cb81c - test::run_test_in_process::haab9d5dbf92a97fd [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/test/src/lib.rs:595:18 [INFO] [stdout] 45: 0x55a6763cb81c - test::run_test::run_test_inner::{{closure}}::h431ff305408eb101 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/test/src/lib.rs:489:39 [INFO] [stdout] 46: 0x55a67639745c - test::run_test::run_test_inner::{{closure}}::h1761b84f3aff0780 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/test/src/lib.rs:516:37 [INFO] [stdout] 47: 0x55a67639745c - std::sys_common::backtrace::__rust_begin_short_backtrace::heac1883bddbbfcd9 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/sys_common/backtrace.rs:122:18 [INFO] [stdout] 48: 0x55a67639d46f - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h509e89854d46123e [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/thread/mod.rs:505:17 [INFO] [stdout] 49: 0x55a67639d46f - as core::ops::function::FnOnce<()>>::call_once::h1b05c47dc35673b3 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 50: 0x55a67639d46f - std::panicking::try::do_call::hd58695587ce4c228 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:492:40 [INFO] [stdout] 51: 0x55a67639d46f - std::panicking::try::hc017871f7aa94d61 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panicking.rs:456:19 [INFO] [stdout] 52: 0x55a67639d46f - std::panic::catch_unwind::h38b4473a1f81bb80 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/panic.rs:137:14 [INFO] [stdout] 53: 0x55a67639d46f - std::thread::Builder::spawn_unchecked_::{{closure}}::h361d7687a745025a [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/thread/mod.rs:504:30 [INFO] [stdout] 54: 0x55a67639d46f - core::ops::function::FnOnce::call_once{{vtable.shim}}::h647e812f95f891a3 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 55: 0x55a6764cd443 - as core::ops::function::FnOnce>::call_once::hd2e3a9e0ae7d8026 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/alloc/src/boxed.rs:1934:9 [INFO] [stdout] 56: 0x55a6764cd443 - as core::ops::function::FnOnce>::call_once::h4798a92ee79456cc [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/alloc/src/boxed.rs:1934:9 [INFO] [stdout] 57: 0x55a6764cd443 - std::sys::unix::thread::Thread::new::thread_start::h9be4f412ada0f0f9 [INFO] [stdout] at /rustc/5bc97a20e5cc382ae6d19f727a9e73eeb2734548/library/std/src/sys/unix/thread.rs:108:17 [INFO] [stdout] 58: 0x7f86102a0609 - start_thread [INFO] [stdout] 59: 0x7f8610070133 - clone [INFO] [stdout] 60: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] token::tokens::basic_tests [INFO] [stdout] [INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '-p lexer --lib' [INFO] running `Command { std: "docker" "inspect" "59d819f92f53356e205bba18ecb8ae589f404d7d70062e5cc22b727eac162ff8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "59d819f92f53356e205bba18ecb8ae589f404d7d70062e5cc22b727eac162ff8", kill_on_drop: false }` [INFO] [stdout] 59d819f92f53356e205bba18ecb8ae589f404d7d70062e5cc22b727eac162ff8