[INFO] fetching crate velocity_template 0.0.2...
[INFO] testing velocity_template-0.0.2 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-8
[INFO] extracting crate velocity_template 0.0.2 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate velocity_template 0.0.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate velocity_template 0.0.2
[INFO] tweaked toml for crates.io crate velocity_template 0.0.2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate velocity_template 0.0.2 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 63 packages to latest compatible versions
[INFO] [stderr]       Adding evalexpr v12.0.3 (available: v13.0.0)
[INFO] [stderr]       Adding md5 v0.7.0 (available: v0.8.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_logger v0.11.8
[INFO] [stderr]   Downloaded anstyle v1.0.13
[INFO] [stderr]   Downloaded portable-atomic-util v0.2.4
[INFO] [stderr]   Downloaded anstyle-wincon v3.0.11
[INFO] [stderr]   Downloaded anstream v0.6.21
[INFO] [stderr]   Downloaded once_cell_polyfill v1.70.2
[INFO] [stderr]   Downloaded is_terminal_polyfill v1.70.2
[INFO] [stderr]   Downloaded evalexpr v12.0.3
[INFO] [stderr]   Downloaded jiff-static v0.2.16
[INFO] [stderr]   Downloaded jiff v0.2.16
[INFO] [stderr]   Downloaded anstyle-query v1.1.5
[INFO] [stderr]   Downloaded env_filter v0.1.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1c990a838c5d57085a18ae0245c164ae2517fa7e1abb693deac691da2603828a
[INFO] running `Command { std: "docker" "start" "-a" "1c990a838c5d57085a18ae0245c164ae2517fa7e1abb693deac691da2603828a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1c990a838c5d57085a18ae0245c164ae2517fa7e1abb693deac691da2603828a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1c990a838c5d57085a18ae0245c164ae2517fa7e1abb693deac691da2603828a", kill_on_drop: false }`
[INFO] [stdout] 1c990a838c5d57085a18ae0245c164ae2517fa7e1abb693deac691da2603828a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e47298f743d8506ed87ab9196b0a33e2f8fe1ac65c8b5f59148e67a434c2c793
[INFO] running `Command { std: "docker" "start" "-a" "e47298f743d8506ed87ab9196b0a33e2f8fe1ac65c8b5f59148e67a434c2c793", kill_on_drop: false }`
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling jiff v0.2.16
[INFO] [stderr]    Compiling evalexpr v12.0.3
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling velocity_template v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expression::expr_eval`
[INFO] [stdout]  --> src/expression/expression.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expression::expr_eval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::log`
[INFO] [stdout]  --> src/token/token_parse.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log::log;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> src/token/token_parse.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::{Number, Value};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value::String as JsonString`
[INFO] [stdout]  --> src/token/token_parse.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde_json::Value::String as JsonString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/parse/foreach_parse.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserializer`
[INFO] [stdout]  --> src/parse/foreach_parse.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::Deserializer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/expression/expr_eval.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 Err(e) => Err("Result is not a boolean".to_string()),
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/token/token_parse.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let mut captures: Vec<(usize, &str)> = TAGS_PATTERN.find_iter(&template)
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/token/token_parse.rs:316:17
[INFO] [stdout]     |
[INFO] [stdout] 316 |             let mut last_start = first_start+find_char_index(last_text,"\r\n").unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_end`
[INFO] [stdout]    --> src/token/token_parse.rs:347:13
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let first_end = position.first_end;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_start`
[INFO] [stdout]    --> src/token/token_parse.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |         let last_start = position.last_start;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_name`
[INFO] [stdout]    --> src/token/token_parse.rs:350:13
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let first_name = &position.first_name;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_name`
[INFO] [stdout]    --> src/token/token_parse.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let last_name = &position.last_name;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_start` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:445:40
[INFO] [stdout]     |
[INFO] [stdout] 445 |             let mut expression_start = 0;
[INFO] [stdout]     |                                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_end` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:446:38
[INFO] [stdout]     |
[INFO] [stdout] 446 |             let mut expression_end = 0;
[INFO] [stdout]     |                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_name`
[INFO] [stdout]    --> src/token/token_parse.rs:501:9
[INFO] [stdout]     |
[INFO] [stdout] 501 |     let last_name = &position.last_name;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_end`
[INFO] [stdout]    --> src/token/token_parse.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |     let last_end = position.last_end;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_start` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:533:36
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let mut expression_start = 0;
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_end` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:534:34
[INFO] [stdout]     |
[INFO] [stdout] 534 |         let mut expression_end = 0;
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/parse/set_parse.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |             } else if let Ok(string) = v.parse::<String>(){
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parse/set_parse.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut v = variable_parse::normalize_variable_syntax(value.as_str(),context);
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/parse/if_parse.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |             if let IfBranch::If{condition,children,..} = branch {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `first` is never read
[INFO] [stdout]    --> src/parse/foreach_parse.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let mut first = true;
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let mut context_result = object_to_hashmap(obj);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `expression::expression::Token` is more private than the item `expression::expression::parse_position`
[INFO] [stdout]   --> src/expression/expression.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn parse_position(input:&str) ->Result<Vec<Token>,String> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `expression::expression::parse_position` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `expression::expression::Token` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/expression/expression.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | enum Token {
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `expression::expression::Token` is more private than the item `eval_tokens`
[INFO] [stdout]    --> src/expression/expression.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn eval_tokens(tokens:Vec<Token>) -> Result<bool,String> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `eval_tokens` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `expression::expression::Token` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/expression/expression.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | enum Token {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.65s
[INFO] running `Command { std: "docker" "inspect" "e47298f743d8506ed87ab9196b0a33e2f8fe1ac65c8b5f59148e67a434c2c793", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e47298f743d8506ed87ab9196b0a33e2f8fe1ac65c8b5f59148e67a434c2c793", kill_on_drop: false }`
[INFO] [stdout] e47298f743d8506ed87ab9196b0a33e2f8fe1ac65c8b5f59148e67a434c2c793
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b02063402ac6aaf4eea01d30c653764720ba070124855411e7cd9ff29b320192
[INFO] running `Command { std: "docker" "start" "-a" "b02063402ac6aaf4eea01d30c653764720ba070124855411e7cd9ff29b320192", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expression::expr_eval`
[INFO] [stdout]  --> src/expression/expression.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expression::expr_eval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::log`
[INFO] [stdout]  --> src/token/token_parse.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log::log;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> src/token/token_parse.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::{Number, Value};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value::String as JsonString`
[INFO] [stdout]  --> src/token/token_parse.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde_json::Value::String as JsonString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/parse/foreach_parse.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserializer`
[INFO] [stdout]  --> src/parse/foreach_parse.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::Deserializer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/expression/expr_eval.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 Err(e) => Err("Result is not a boolean".to_string()),
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/token/token_parse.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let mut captures: Vec<(usize, &str)> = TAGS_PATTERN.find_iter(&template)
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/token/token_parse.rs:316:17
[INFO] [stdout]     |
[INFO] [stdout] 316 |             let mut last_start = first_start+find_char_index(last_text,"\r\n").unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_end`
[INFO] [stdout]    --> src/token/token_parse.rs:347:13
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let first_end = position.first_end;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_start`
[INFO] [stdout]    --> src/token/token_parse.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |         let last_start = position.last_start;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_name`
[INFO] [stdout]    --> src/token/token_parse.rs:350:13
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let first_name = &position.first_name;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_name`
[INFO] [stdout]    --> src/token/token_parse.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let last_name = &position.last_name;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_start` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:445:40
[INFO] [stdout]     |
[INFO] [stdout] 445 |             let mut expression_start = 0;
[INFO] [stdout]     |                                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_end` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:446:38
[INFO] [stdout]     |
[INFO] [stdout] 446 |             let mut expression_end = 0;
[INFO] [stdout]     |                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_name`
[INFO] [stdout]    --> src/token/token_parse.rs:501:9
[INFO] [stdout]     |
[INFO] [stdout] 501 |     let last_name = &position.last_name;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_end`
[INFO] [stdout]    --> src/token/token_parse.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |     let last_end = position.last_end;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_start` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:533:36
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let mut expression_start = 0;
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_end` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:534:34
[INFO] [stdout]     |
[INFO] [stdout] 534 |         let mut expression_end = 0;
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/parse/set_parse.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |             } else if let Ok(string) = v.parse::<String>(){
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parse/set_parse.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut v = variable_parse::normalize_variable_syntax(value.as_str(),context);
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/parse/if_parse.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |             if let IfBranch::If{condition,children,..} = branch {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `first` is never read
[INFO] [stdout]    --> src/parse/foreach_parse.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let mut first = true;
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let mut context_result = object_to_hashmap(obj);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling velocity_template v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type `expression::expression::Token` is more private than the item `expression::expression::parse_position`
[INFO] [stdout]   --> src/expression/expression.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn parse_position(input:&str) ->Result<Vec<Token>,String> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `expression::expression::parse_position` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `expression::expression::Token` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/expression/expression.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | enum Token {
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `expression::expression::Token` is more private than the item `eval_tokens`
[INFO] [stdout]    --> src/expression/expression.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn eval_tokens(tokens:Vec<Token>) -> Result<bool,String> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `eval_tokens` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `expression::expression::Token` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/expression/expression.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | enum Token {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> tests/test.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `velocity_template::token::token_parse::Tokenizer`
[INFO] [stdout]  --> tests/parse_token_test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use velocity_template::token::token_parse::Tokenizer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> tests/test.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `render_from_object`
[INFO] [stdout]  --> tests/set/set_test.rs:1:52
[INFO] [stdout]   |
[INFO] [stdout] 1 | use velocity_template::{read_file, render_default, render_from_object};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expression::expr_eval`
[INFO] [stdout]  --> src/expression/expression.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expression::expr_eval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::log`
[INFO] [stdout]  --> src/token/token_parse.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log::log;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> src/token/token_parse.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::{Number, Value};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value::String as JsonString`
[INFO] [stdout]  --> src/token/token_parse.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde_json::Value::String as JsonString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/parse/foreach_parse.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserializer`
[INFO] [stdout]  --> src/parse/foreach_parse.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::Deserializer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::log_config`
[INFO] [stdout]  --> tests/parse_token_test.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::log_config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ no `log_config` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `velocity_template::token::token_parse::Tokenizer`
[INFO] [stdout]  --> tests/parse_token_test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use velocity_template::token::token_parse::Tokenizer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> tests/parse_token_test.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     for i in 0..2000{
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> tests/parse_token_test.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     for x in 0..1000  {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> tests/foreach/foreach_test.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let user = User{
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> tests/foreach/foreach_test.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     for x in 0..2  {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/foreach/foreach_test.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     for i in 0..1000{
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> tests/set/set_test.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for x in 0..1  {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `velocity_template` (test "parse_token_test") due to 1 previous error; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `remove_velocity_comments` is never used
[INFO] [stdout]   --> tests/comment/comment_test.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn remove_velocity_comments(template: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/expression/expr_eval.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 Err(e) => Err("Result is not a boolean".to_string()),
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/token/token_parse.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let mut captures: Vec<(usize, &str)> = TAGS_PATTERN.find_iter(&template)
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/token/token_parse.rs:316:17
[INFO] [stdout]     |
[INFO] [stdout] 316 |             let mut last_start = first_start+find_char_index(last_text,"\r\n").unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_end`
[INFO] [stdout]    --> src/token/token_parse.rs:347:13
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let first_end = position.first_end;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_start`
[INFO] [stdout]    --> src/token/token_parse.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |         let last_start = position.last_start;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_name`
[INFO] [stdout]    --> src/token/token_parse.rs:350:13
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let first_name = &position.first_name;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_name`
[INFO] [stdout]    --> src/token/token_parse.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let last_name = &position.last_name;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_start` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:445:40
[INFO] [stdout]     |
[INFO] [stdout] 445 |             let mut expression_start = 0;
[INFO] [stdout]     |                                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_end` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:446:38
[INFO] [stdout]     |
[INFO] [stdout] 446 |             let mut expression_end = 0;
[INFO] [stdout]     |                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_name`
[INFO] [stdout]    --> src/token/token_parse.rs:501:9
[INFO] [stdout]     |
[INFO] [stdout] 501 |     let last_name = &position.last_name;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_end`
[INFO] [stdout]    --> src/token/token_parse.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |     let last_end = position.last_end;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_start` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:533:36
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let mut expression_start = 0;
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expression_end` is never read
[INFO] [stdout]    --> src/token/token_parse.rs:534:34
[INFO] [stdout]     |
[INFO] [stdout] 534 |         let mut expression_end = 0;
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/parse/set_parse.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |             } else if let Ok(string) = v.parse::<String>(){
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parse/set_parse.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut v = variable_parse::normalize_variable_syntax(value.as_str(),context);
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/parse/if_parse.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |             if let IfBranch::If{condition,children,..} = branch {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `first` is never read
[INFO] [stdout]    --> src/parse/foreach_parse.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let mut first = true;
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let mut context_result = object_to_hashmap(obj);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `expression::expression::Token` is more private than the item `expression::expression::parse_position`
[INFO] [stdout]   --> src/expression/expression.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn parse_position(input:&str) ->Result<Vec<Token>,String> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `expression::expression::parse_position` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `expression::expression::Token` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/expression/expression.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | enum Token {
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `expression::expression::Token` is more private than the item `expression::expression::eval_tokens`
[INFO] [stdout]    --> src/expression/expression.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn eval_tokens(tokens:Vec<Token>) -> Result<bool,String> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `expression::expression::eval_tokens` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `expression::expression::Token` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/expression/expression.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | enum Token {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b02063402ac6aaf4eea01d30c653764720ba070124855411e7cd9ff29b320192", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b02063402ac6aaf4eea01d30c653764720ba070124855411e7cd9ff29b320192", kill_on_drop: false }`
[INFO] [stdout] b02063402ac6aaf4eea01d30c653764720ba070124855411e7cd9ff29b320192
