[INFO] cloning repository https://github.com/brianmacdonald/lodestone [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/brianmacdonald/lodestone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbrianmacdonald%2Flodestone", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbrianmacdonald%2Flodestone'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 94e2a10695d072fc561a8d36421a31eff05552c1 [INFO] building brianmacdonald/lodestone against try#9b5e8b16bd1c4acf4cf8e6880368314cf021a987+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbrianmacdonald%2Flodestone" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/brianmacdonald/lodestone on toolchain 9b5e8b16bd1c4acf4cf8e6880368314cf021a987 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/brianmacdonald/lodestone [INFO] finished tweaking git repo https://github.com/brianmacdonald/lodestone [INFO] tweaked toml for git repo https://github.com/brianmacdonald/lodestone written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/brianmacdonald/lodestone already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a704f61f71edbb50dfac0a2b7ace303e946bdbd4a97f69039851cdb2e57a6b59 [INFO] running `Command { std: "docker" "start" "-a" "a704f61f71edbb50dfac0a2b7ace303e946bdbd4a97f69039851cdb2e57a6b59", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a704f61f71edbb50dfac0a2b7ace303e946bdbd4a97f69039851cdb2e57a6b59", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a704f61f71edbb50dfac0a2b7ace303e946bdbd4a97f69039851cdb2e57a6b59", kill_on_drop: false }` [INFO] [stdout] a704f61f71edbb50dfac0a2b7ace303e946bdbd4a97f69039851cdb2e57a6b59 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+9b5e8b16bd1c4acf4cf8e6880368314cf021a987" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f1bb4831841293ad28a5fe5c50933c502271a0d2b3995ee62222fd4d3dfff3b4 [INFO] running `Command { std: "docker" "start" "-a" "f1bb4831841293ad28a5fe5c50933c502271a0d2b3995ee62222fd4d3dfff3b4", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Compiling lodestone v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/parser.rs:97:64 [INFO] [stdout] | [INFO] [stdout] 97 | return self.parse_infix_expression(expression);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/parser.rs:100:64 [INFO] [stdout] | [INFO] [stdout] 100 | return self.parse_infix_expression(expression);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::ast::NodeKind` [INFO] [stdout] --> src/object.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::ast::NodeKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast.rs:304:30 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn as_any(&self) -> &Any { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 304 | pub fn as_any(&self) -> &dyn Any { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/evaluator.rs:499:5 [INFO] [stdout] | [INFO] [stdout] 483 | / match left { [INFO] [stdout] 484 | | ObjectKind::StringObj{value: l_value, ..} => { [INFO] [stdout] 485 | | match right { [INFO] [stdout] 486 | | ObjectKind::StringObj{value: r_value, ..} => { [INFO] [stdout] ... | [INFO] [stdout] 498 | | } [INFO] [stdout] | |_____- any code following this `match` expression is unreachable, as all arms diverge [INFO] [stdout] 499 | panic!("Non-valid string input."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/repl.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let mut program = p.parse_program(); [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: unreachable pattern [INFO] [stdout] --> src/ast.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/ast.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 29 | NodeKind::ExpressionNode{expressionKind} => { [INFO] [stdout] | ---------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 32 | NodeKind::StatementNode{statementKind} => { [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 35 | NodeKind::ProgramNode{statements} => { [INFO] [stdout] | --------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 42 | _ => { [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ast.rs:68:47 [INFO] [stdout] | [INFO] [stdout] 68 | ExpressionKind::Identifier{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operator` [INFO] [stdout] --> src/ast.rs:71:53 [INFO] [stdout] | [INFO] [stdout] 71 | ExpressionKind::PrefixExpression{token, operator, right} => { [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `operator: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/ast.rs:71:63 [INFO] [stdout] | [INFO] [stdout] 71 | ExpressionKind::PrefixExpression{token, operator, right} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/ast.rs:74:52 [INFO] [stdout] | [INFO] [stdout] 74 | ExpressionKind::InfixExpression{token, left, operator, right} => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operator` [INFO] [stdout] --> src/ast.rs:74:58 [INFO] [stdout] | [INFO] [stdout] 74 | ExpressionKind::InfixExpression{token, left, operator, right} => { [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `operator: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/ast.rs:74:68 [INFO] [stdout] | [INFO] [stdout] 74 | ExpressionKind::InfixExpression{token, left, operator, right} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `condition` [INFO] [stdout] --> src/ast.rs:77:49 [INFO] [stdout] | [INFO] [stdout] 77 | ExpressionKind::IfExpression{token, condition, consequence, alternative} => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `condition: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `consequence` [INFO] [stdout] --> src/ast.rs:77:60 [INFO] [stdout] | [INFO] [stdout] 77 | ExpressionKind::IfExpression{token, condition, consequence, alternative} => { [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `consequence: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alternative` [INFO] [stdout] --> src/ast.rs:77:73 [INFO] [stdout] | [INFO] [stdout] 77 | ExpressionKind::IfExpression{token, condition, consequence, alternative} => { [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `alternative: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ast.rs:80:54 [INFO] [stdout] | [INFO] [stdout] 80 | ExpressionKind::BooleanExpression{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parameters` [INFO] [stdout] --> src/ast.rs:83:52 [INFO] [stdout] | [INFO] [stdout] 83 | ExpressionKind::FunctionLiteral{token, parameters, body} => { [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `parameters: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/ast.rs:83:64 [INFO] [stdout] | [INFO] [stdout] 83 | ExpressionKind::FunctionLiteral{token, parameters, body} => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `body: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `function` [INFO] [stdout] --> src/ast.rs:86:51 [INFO] [stdout] | [INFO] [stdout] 86 | ExpressionKind::CallExpression{token, function, arguments} => { [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `function: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arguments` [INFO] [stdout] --> src/ast.rs:86:61 [INFO] [stdout] | [INFO] [stdout] 86 | ExpressionKind::CallExpression{token, function, arguments} => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `arguments: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ast.rs:89:50 [INFO] [stdout] | [INFO] [stdout] 89 | ExpressionKind::StringLiteral{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ast.rs:92:51 [INFO] [stdout] | [INFO] [stdout] 92 | ExpressionKind::IntegerLiteral{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `condition` [INFO] [stdout] --> src/ast.rs:95:49 [INFO] [stdout] | [INFO] [stdout] 95 | ExpressionKind::WhileLiteral{token, condition, consequence} => { [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `condition: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `consequence` [INFO] [stdout] --> src/ast.rs:95:60 [INFO] [stdout] | [INFO] [stdout] 95 | ExpressionKind::WhileLiteral{token, condition, consequence} => { [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `consequence: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `elements` [INFO] [stdout] --> src/ast.rs:98:49 [INFO] [stdout] | [INFO] [stdout] 98 | ExpressionKind::ArrayLiteral{token, elements} => { [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `elements: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `left` [INFO] [stdout] --> src/ast.rs:101:52 [INFO] [stdout] | [INFO] [stdout] 101 | ExpressionKind::IndexExpression{token, left, index} => { [INFO] [stdout] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/ast.rs:101:58 [INFO] [stdout] | [INFO] [stdout] 101 | ExpressionKind::IndexExpression{token, left, index} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `index: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:108:40 [INFO] [stdout] | [INFO] [stdout] 108 | ExpressionKind::Identifier{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:111:46 [INFO] [stdout] | [INFO] [stdout] 111 | ExpressionKind::PrefixExpression{token, operator, right} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:123:45 [INFO] [stdout] | [INFO] [stdout] 123 | ExpressionKind::InfixExpression{token, left, operator, right} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ast.rs:143:54 [INFO] [stdout] | [INFO] [stdout] 143 | ExpressionKind::BooleanExpression{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:146:42 [INFO] [stdout] | [INFO] [stdout] 146 | ExpressionKind::IfExpression{token, condition, consequence, alternative} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:183:44 [INFO] [stdout] | [INFO] [stdout] 183 | ExpressionKind::CallExpression{token, function, arguments} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:196:43 [INFO] [stdout] | [INFO] [stdout] 196 | ExpressionKind::StringLiteral{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ast.rs:199:51 [INFO] [stdout] | [INFO] [stdout] 199 | ExpressionKind::IntegerLiteral{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:211:42 [INFO] [stdout] | [INFO] [stdout] 211 | ExpressionKind::ArrayLiteral{token, elements} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:223:45 [INFO] [stdout] | [INFO] [stdout] 223 | ExpressionKind::IndexExpression{token, left, index} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:284:48 [INFO] [stdout] | [INFO] [stdout] 284 | StatementKind::ExpressionStatement{token, expression} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/ast.rs:294:43 [INFO] [stdout] | [INFO] [stdout] 294 | StatementKind::BlockStatement{token, statements} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/evaluator.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/evaluator.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 12 | NodeKind::ProgramNode{statements} => { [INFO] [stdout] | --------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 15 | NodeKind::StatementNode{statementKind} => { [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 72 | NodeKind::ExpressionNode{expressionKind} => { [INFO] [stdout] | ---------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 164 | _ => { [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/evaluator.rs:67:17 [INFO] [stdout] | [INFO] [stdout] 67 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/evaluator.rs:67:17 [INFO] [stdout] | [INFO] [stdout] 17 | StatementKind::LetStatement{token, name, value} => { [INFO] [stdout] | ----------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 38 | StatementKind::ReturnStatement{return_value: return_value, ..} => { [INFO] [stdout] | -------------------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 54 | StatementKind::ExpressionStatement{token, expression} => { [INFO] [stdout] | ----------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 64 | StatementKind::BlockStatement{..} => { [INFO] [stdout] | --------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 67 | _ => { [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:17:45 [INFO] [stdout] | [INFO] [stdout] 17 | StatementKind::LetStatement{token, name, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:27:68 [INFO] [stdout] | [INFO] [stdout] 27 | ... ExpressionKind::Identifier{token, value: name_value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:54:52 [INFO] [stdout] | [INFO] [stdout] 54 | StatementKind::ExpressionStatement{token, expression} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:77:50 [INFO] [stdout] | [INFO] [stdout] 77 | ExpressionKind::PrefixExpression{token, operator, right} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:121:51 [INFO] [stdout] | [INFO] [stdout] 121 | ExpressionKind::BooleanExpression{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:127:49 [INFO] [stdout] | [INFO] [stdout] 127 | ExpressionKind::FunctionLiteral{token, parameters, body} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:156:48 [INFO] [stdout] | [INFO] [stdout] 156 | ExpressionKind::IntegerLiteral{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: internal compiler error: compiler/rustc_mir_build/src/builder/scope.rs:1724:17: cannot unwind from goto -> bb299 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/scope.rs:1724:17: [INFO] [stderr] Box [INFO] [stderr] stack backtrace: [INFO] [stderr] 0: 0x7b7b46d81caa - ::fmt::h636462e57d5ef1e1 [INFO] [stderr] 1: 0x7b7b47413cbc - core::fmt::write::h067060808ac50eb9 [INFO] [stderr] 2: 0x7b7b48328e11 - std::io::Write::write_fmt::h4674fa2ed7c0dfdd [INFO] [stderr] 3: 0x7b7b46d81b02 - std::sys::backtrace::BacktraceLock::print::h0c77148acfb0b5e9 [INFO] [stderr] 4: 0x7b7b46d83ffa - std::panicking::default_hook::{{closure}}::h30daa8e7c6ccb09d [INFO] [stderr] 5: 0x7b7b46d83e43 - std::panicking::default_hook::h25f21dc0f2064615 [INFO] [stderr] 6: 0x7b7b45eeff28 - std[b36e883d67eb0403]::panicking::update_hook::>::{closure#0} [INFO] [stderr] 7: 0x7b7b46d847b8 - std::panicking::rust_panic_with_hook::hc98438687e833605 [INFO] [stderr] 8: 0x7b7b45f2a341 - std[b36e883d67eb0403]::panicking::begin_panic::::{closure#0} [INFO] [stderr] 9: 0x7b7b45f1f526 - std[b36e883d67eb0403]::sys::backtrace::__rust_end_short_backtrace::::{closure#0}, !> [INFO] [stderr] 10: 0x7b7b45f1f50d - std[b36e883d67eb0403]::panicking::begin_panic:: [INFO] [stderr] 11: 0x7b7b45f342a1 - ::emit_producing_guarantee [INFO] [stderr] 12: 0x7b7b46484fdc - ::span_bug:: [INFO] [stderr] 13: 0x7b7b4650a897 - rustc_middle[8ad6e8ce52578819]::util::bug::opt_span_bug_fmt::::{closure#0} [INFO] [stderr] 14: 0x7b7b464f006a - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} [INFO] [stderr] 15: 0x7b7b464efefb - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> [INFO] [stderr] 16: 0x7b7b44934437 - rustc_middle[8ad6e8ce52578819]::util::bug::span_bug_fmt:: [INFO] [stderr] 17: 0x7b7b47dd541b - ::build_unwind_tree [INFO] [stderr] 18: 0x7b7b47dcd7cd - rustc_mir_build[73684a27b88b946a]::builder::mir_build [INFO] [stderr] 19: 0x7b7b47407714 - rustc_mir_transform[857cd804783fef4d]::mir_built [INFO] [stderr] 20: 0x7b7b474076d7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 21: 0x7b7b476953d1 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 22: 0x7b7b47694f8d - rustc_query_impl[1e55094a59e290f4]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 23: 0x7b7b44467185 - rustc_mir_build[73684a27b88b946a]::check_unsafety::check_unsafety [INFO] [stderr] 24: 0x7b7b47ce98a7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 25: 0x7b7b47ce9b69 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 26: 0x7b7b47ce97d1 - rustc_query_impl[1e55094a59e290f4]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 27: 0x7b7b4789bd32 - rustc_interface[b59e7ee7606ca029]::passes::run_required_analyses [INFO] [stderr] 28: 0x7b7b4832cc9e - rustc_interface[b59e7ee7606ca029]::passes::analysis [INFO] [stderr] 29: 0x7b7b4832cc6f - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 30: 0x7b7b4837b355 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 31: 0x7b7b4837b08e - rustc_query_impl[1e55094a59e290f4]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 32: 0x7b7b483701de - rustc_interface[b59e7ee7606ca029]::passes::create_and_enter_global_ctxt::, rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} [INFO] [stderr] 33: 0x7b7b483dff51 - rustc_interface[b59e7ee7606ca029]::interface::run_compiler::<(), rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}>::{closure#1} [INFO] [stderr] 34: 0x7b7b482f5087 - std[b36e883d67eb0403]::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> [INFO] [stderr] 35: 0x7b7b482f551c - <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[303105738bd0c2ae]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stderr] 36: 0x7b7b482f6aef - std::sys::pal::unix::thread::Thread::new::thread_start::ha554cc4ba6335b05 [INFO] [stderr] 37: 0x7b7b49a29ac3 - [INFO] [stderr] 38: 0x7b7b49abaa04 - clone [INFO] [stderr] 39: 0x0 - [INFO] [stderr] [INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md [INFO] [stderr] [INFO] [stderr] note: please make sure that you have updated to the latest nightly [INFO] [stderr] [INFO] [stderr] warning: the ICE couldn't be written to `/opt/rustwide/workdir/rustc-ice-2024-12-31T23_01_45-9.txt`: Read-only file system (os error 30) [INFO] [stderr] [INFO] [stderr] note: rustc 1.85.0-nightly (9b5e8b16b 2024-12-19) running on x86_64-unknown-linux-gnu [INFO] [stderr] [INFO] [stderr] note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 [INFO] [stderr] [INFO] [stderr] note: some of the compiler flags provided by cargo are hidden [INFO] [stderr] [INFO] [stderr] query stack during panic: [INFO] [stderr] #0 [mir_built] building MIR for `evaluator::eval` [INFO] [stderr] #1 [check_unsafety] unsafety-checking `evaluator::eval` [INFO] [stderr] #2 [analysis] running analysis passes on this crate [INFO] [stderr] end of query stack [INFO] [stdout] error: internal compiler error: compiler/rustc_mir_build/src/builder/scope.rs:1724:17: cannot unwind from goto -> bb78 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/scope.rs:1724:17: [INFO] [stderr] Box [INFO] [stderr] stack backtrace: [INFO] [stderr] 0: 0x7b7b46d81caa - ::fmt::h636462e57d5ef1e1 [INFO] [stderr] 1: 0x7b7b47413cbc - core::fmt::write::h067060808ac50eb9 [INFO] [stderr] 2: 0x7b7b48328e11 - std::io::Write::write_fmt::h4674fa2ed7c0dfdd [INFO] [stderr] 3: 0x7b7b46d81b02 - std::sys::backtrace::BacktraceLock::print::h0c77148acfb0b5e9 [INFO] [stderr] 4: 0x7b7b46d83ffa - std::panicking::default_hook::{{closure}}::h30daa8e7c6ccb09d [INFO] [stderr] 5: 0x7b7b46d83e43 - std::panicking::default_hook::h25f21dc0f2064615 [INFO] [stderr] 6: 0x7b7b45eeff28 - std[b36e883d67eb0403]::panicking::update_hook::>::{closure#0} [INFO] [stderr] 7: 0x7b7b46d847b8 - std::panicking::rust_panic_with_hook::hc98438687e833605 [INFO] [stderr] 8: 0x7b7b45f2a341 - std[b36e883d67eb0403]::panicking::begin_panic::::{closure#0} [INFO] [stderr] 9: 0x7b7b45f1f526 - std[b36e883d67eb0403]::sys::backtrace::__rust_end_short_backtrace::::{closure#0}, !> [INFO] [stderr] 10: 0x7b7b45f1f50d - std[b36e883d67eb0403]::panicking::begin_panic:: [INFO] [stderr] 11: 0x7b7b45f342a1 - ::emit_producing_guarantee [INFO] [stderr] 12: 0x7b7b46484fdc - ::span_bug:: [INFO] [stderr] 13: 0x7b7b4650a897 - rustc_middle[8ad6e8ce52578819]::util::bug::opt_span_bug_fmt::::{closure#0} [INFO] [stderr] 14: 0x7b7b464f006a - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} [INFO] [stderr] 15: 0x7b7b464efefb - rustc_middle[8ad6e8ce52578819]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> [INFO] [stderr] 16: 0x7b7b44934437 - rustc_middle[8ad6e8ce52578819]::util::bug::span_bug_fmt:: [INFO] [stderr] 17: 0x7b7b47dd541b - ::build_unwind_tree [INFO] [stderr] 18: 0x7b7b47dcd7cd - rustc_mir_build[73684a27b88b946a]::builder::mir_build [INFO] [stderr] 19: 0x7b7b47407714 - rustc_mir_transform[857cd804783fef4d]::mir_built [INFO] [stderr] 20: 0x7b7b474076d7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 21: 0x7b7b476953d1 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 22: 0x7b7b47694f8d - rustc_query_impl[1e55094a59e290f4]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 23: 0x7b7b44467185 - rustc_mir_build[73684a27b88b946a]::check_unsafety::check_unsafety [INFO] [stderr] 24: 0x7b7b47ce98a7 - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 25: 0x7b7b47ce9b69 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::, rustc_query_system[67781f9dc633c543]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 26: 0x7b7b47ce97d1 - rustc_query_impl[1e55094a59e290f4]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 27: 0x7b7b4789bd32 - rustc_interface[b59e7ee7606ca029]::passes::run_required_analyses [INFO] [stderr] 28: 0x7b7b4832cc9e - rustc_interface[b59e7ee7606ca029]::passes::analysis [INFO] [stderr] 29: 0x7b7b4832cc6f - rustc_query_impl[1e55094a59e290f4]::plumbing::__rust_begin_short_backtrace::> [INFO] [stderr] 30: 0x7b7b4837b355 - rustc_query_system[67781f9dc633c543]::query::plumbing::try_execute_query::>, false, false, false>, rustc_query_impl[1e55094a59e290f4]::plumbing::QueryCtxt, false> [INFO] [stderr] 31: 0x7b7b4837b08e - rustc_query_impl[1e55094a59e290f4]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace [INFO] [stderr] 32: 0x7b7b483701de - rustc_interface[b59e7ee7606ca029]::passes::create_and_enter_global_ctxt::, rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} [INFO] [stderr] 33: 0x7b7b483dff51 - rustc_interface[b59e7ee7606ca029]::interface::run_compiler::<(), rustc_driver_impl[be5855d19ccc8b6c]::run_compiler::{closure#0}>::{closure#1} [INFO] [stderr] 34: 0x7b7b482f5087 - std[b36e883d67eb0403]::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> [INFO] [stderr] 35: 0x7b7b482f551c - <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[303105738bd0c2ae]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stderr] 36: 0x7b7b482f6aef - std::sys::pal::unix::thread::Thread::new::thread_start::ha554cc4ba6335b05 [INFO] [stderr] 37: 0x7b7b49a29ac3 - [INFO] [stderr] 38: 0x7b7b49abaa04 - clone [INFO] [stderr] 39: 0x0 - [INFO] [stderr] [INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md [INFO] [stderr] [INFO] [stderr] note: please make sure that you have updated to the latest nightly [INFO] [stderr] [INFO] [stderr] warning: the ICE couldn't be written to `/opt/rustwide/workdir/rustc-ice-2024-12-31T23_01_45-9.txt`: Read-only file system (os error 30) [INFO] [stderr] [INFO] [stderr] note: rustc 1.85.0-nightly (9b5e8b16b 2024-12-19) running on x86_64-unknown-linux-gnu [INFO] [stderr] [INFO] [stderr] note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 [INFO] [stderr] [INFO] [stderr] note: some of the compiler flags provided by cargo are hidden [INFO] [stderr] [INFO] [stderr] query stack during panic: [INFO] [stderr] #0 [mir_built] building MIR for `evaluator::eval_infix_expression` [INFO] [stderr] #1 [check_unsafety] unsafety-checking `evaluator::eval_infix_expression` [INFO] [stderr] #2 [analysis] running analysis passes on this crate [INFO] [stderr] end of query stack [INFO] [stdout] warning: unused variable: `slots` [INFO] [stdout] --> src/evaluator.rs:303:29 [INFO] [stdout] | [INFO] [stdout] 303 | ObjectKind::Integer{slots, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `slots: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/evaluator.rs:303:36 [INFO] [stdout] | [INFO] [stdout] 303 | ObjectKind::Integer{slots, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lslots` [INFO] [stdout] --> src/evaluator.rs:316:36 [INFO] [stdout] | [INFO] [stdout] 316 | ObjectKind::Integer{slots: lslots, value: lvalue} => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_lslots` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rslots` [INFO] [stdout] --> src/evaluator.rs:318:44 [INFO] [stdout] | [INFO] [stdout] 318 | ObjectKind::Integer{slots: rslots, value: rvalue} => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rslots` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:360:38 [INFO] [stdout] | [INFO] [stdout] 360 | ExpressionKind::IfExpression{token, condition, consequence, alternative} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:400:36 [INFO] [stdout] | [INFO] [stdout] 400 | ExpressionKind::Identifier{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/evaluator.rs:449:40 [INFO] [stdout] | [INFO] [stdout] 449 | ExpressionKind::Identifier{token, value} => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peek_token` [INFO] [stdout] --> src/parser.rs:281:13 [INFO] [stdout] | [INFO] [stdout] 281 | let peek_token = self.peek_token.clone(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_peek_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser.rs:282:13 [INFO] [stdout] | [INFO] [stdout] 282 | let mut prefix = self.prefix_parse_call(cur_token.clone()); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `lodestone` (bin "lodestone"); 58 warnings emitted [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/9b5e8b16bd1c4acf4cf8e6880368314cf021a987/bin/rustc --crate-name lodestone --edition=2015 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=59ea797e99cfc9ec -C extra-filename=-4c32c8c19ba0ad75 --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --cap-lints=forbid -Dtail-expr-drop-order` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "f1bb4831841293ad28a5fe5c50933c502271a0d2b3995ee62222fd4d3dfff3b4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1bb4831841293ad28a5fe5c50933c502271a0d2b3995ee62222fd4d3dfff3b4", kill_on_drop: false }` [INFO] [stdout] f1bb4831841293ad28a5fe5c50933c502271a0d2b3995ee62222fd4d3dfff3b4