[INFO] cloning repository https://github.com/ales-tsurko/spark-framework
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ales-tsurko/spark-framework" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fales-tsurko%2Fspark-framework", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fales-tsurko%2Fspark-framework'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d2304c4e16e4b09d1aaa58b2a5b6f06b06209c5e
[INFO] checking ales-tsurko/spark-framework against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fales-tsurko%2Fspark-framework" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc1/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/ales-tsurko/spark-framework
[INFO] finished tweaking git repo https://github.com/ales-tsurko/spark-framework
[INFO] tweaked toml for git repo https://github.com/ales-tsurko/spark-framework written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ales-tsurko/spark-framework on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ales-tsurko/spark-framework 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest_derive v2.5.4
[INFO] [stderr]   Downloaded pest v2.5.4
[INFO] [stderr]   Downloaded undo v0.48.0
[INFO] [stderr]   Downloaded pest_meta v2.5.4
[INFO] [stderr]   Downloaded pest_generator v2.5.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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0fb9db0daf5fd58140024a8b6b5e1d3c909012f6bc69f31a70b09dfc7d2044cd
[INFO] running `Command { std: "docker" "start" "-a" "0fb9db0daf5fd58140024a8b6b5e1d3c909012f6bc69f31a70b09dfc7d2044cd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0fb9db0daf5fd58140024a8b6b5e1d3c909012f6bc69f31a70b09dfc7d2044cd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0fb9db0daf5fd58140024a8b6b5e1d3c909012f6bc69f31a70b09dfc7d2044cd", kill_on_drop: false }`
[INFO] [stdout] 0fb9db0daf5fd58140024a8b6b5e1d3c909012f6bc69f31a70b09dfc7d2044cd
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fd4b56fbc996d275b7df34b11d1721ba4b7568b879a40c6f11b41e6c78240abc
[INFO] running `Command { std: "docker" "start" "-a" "fd4b56fbc996d275b7df34b11d1721ba4b7568b879a40c6f11b41e6c78240abc", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.50
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling thiserror v1.0.38
[INFO] [stderr]    Compiling ucd-trie v0.1.5
[INFO] [stderr]    Compiling once_cell v1.17.0
[INFO] [stderr]    Compiling indexmap v1.9.2
[INFO] [stderr]     Checking aho-corasick v0.7.20
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]     Checking regex-syntax v0.6.28
[INFO] [stderr]    Compiling serde_json v1.0.91
[INFO] [stderr]     Checking undo v0.48.0
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]     Checking regex v1.7.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.38
[INFO] [stderr]    Compiling serde_derive v1.0.152
[INFO] [stderr]     Checking pest v2.5.4
[INFO] [stderr]     Checking pest-tools v0.1.0 (/opt/rustwide/workdir/pest-tools)
[INFO] [stderr]    Compiling pest_meta v2.5.4
[INFO] [stderr]    Compiling pest_generator v2.5.4
[INFO] [stderr]    Compiling pest_derive v2.5.4
[INFO] [stderr]     Checking spark-ml v0.1.0 (/opt/rustwide/workdir/spark-ml)
[INFO] [stdout] warning: unused import: `Weak`
[INFO] [stdout]  --> spark-ml/src/parser/value.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::{Rc, Weak};
[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: `Weak`
[INFO] [stdout]  --> spark-ml/src/parser/value.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::{Rc, Weak};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:499:13
[INFO] [stdout]     |
[INFO] [stdout] 499 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:499:13
[INFO] [stdout]     |
[INFO] [stdout] 436 |             Ast::Value(val) => Ok(val.clone()),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 437 |
[INFO] [stdout] 438 |             Ast::Assignment(assignment) => assignment.eval(pair, context),
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] 439 |
[INFO] [stdout] 440 |             Ast::FunctionDef(func) => {
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 446 |             Ast::Node(node) => node.eval(pair, context).map(Value::Node),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 499 |             _ => todo!(),
[INFO] [stdout]     |             ^ ...and 12 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:499:13
[INFO] [stdout]     |
[INFO] [stdout] 499 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:499:13
[INFO] [stdout]     |
[INFO] [stdout] 436 |             Ast::Value(val) => Ok(val.clone()),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 437 |
[INFO] [stdout] 438 |             Ast::Assignment(assignment) => assignment.eval(pair, context),
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] 439 |
[INFO] [stdout] 440 |             Ast::FunctionDef(func) => {
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 446 |             Ast::Node(node) => node.eval(pair, context).map(Value::Node),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 499 |             _ => todo!(),
[INFO] [stdout]     |             ^ ...and 12 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESERVED_WORDS` is never used
[INFO] [stdout]   --> spark-ml/src/parser.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | static RESERVED_WORDS: Lazy<HashSet<&str>> = Lazy::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseResult` is never used
[INFO] [stdout]   --> spark-ml/src/parser.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) type ParseResult<T> = Result<T, Box<Error<Rule>>>;
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `algebraic` and `boolean` are never read
[INFO] [stdout]   --> spark-ml/src/parser.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SparkMLParser {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 30 |     algebraic: PrattParser<Rule>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 31 |     boolean: PrattParser<Rule>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_error` is never used
[INFO] [stdout]   --> spark-ml/src/parser.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn custom_error(pair: &Pair<Rule>, message: &str) -> Box<Error<Rule>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expression` is never used
[INFO] [stdout]   --> spark-ml/src/parser/ast.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) fn parse_expression(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_node` is never used
[INFO] [stdout]   --> spark-ml/src/parser/ast.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn parse_node(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_node_id` is never used
[INFO] [stdout]   --> spark-ml/src/parser/ast.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn parse_node_id(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<NodeIdExpr> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_id` is never used
[INFO] [stdout]   --> spark-ml/src/parser/ast.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn parse_id(pair: Pair<Rule>) -> ParseResult<Id> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_object` is never used
[INFO] [stdout]   --> spark-ml/src/parser/ast.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn parse_object(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_attributes` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn parse_attributes(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Attributes<Ast>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_properties` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn parse_properties(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Vec<Ast>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_assignment` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:158:15
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub(crate) fn parse_assignment(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_assignment_target` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn parse_assignment_target(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_if_expr` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn parse_if_expr(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<If> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_repeat_expr` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:234:4
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn parse_repeat_expr(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_algebraic_expr` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn parse_algebraic_expr(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_boolean_expr` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:271:4
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn parse_boolean_expr(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_comparison` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:296:4
[INFO] [stdout]     |
[INFO] [stdout] 296 | fn parse_comparison(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_call` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:324:4
[INFO] [stdout]     |
[INFO] [stdout] 324 | fn parse_call(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expr_body` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:370:4
[INFO] [stdout]     |
[INFO] [stdout] 370 | fn parse_expr_body(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Body> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_func_def` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:379:15
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub(crate) fn parse_func_def(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_func_args` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:396:4
[INFO] [stdout]     |
[INFO] [stdout] 396 | fn parse_func_args(pair: Pair<Rule>) -> ParseResult<Vec<Id>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string_expr` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:400:4
[INFO] [stdout]     |
[INFO] [stdout] 400 | fn parse_string_expr(pair: Pair<Rule>, parser: &SparkMLParser) -> ParseResult<Ast> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 414 | pub(crate) enum Ast {
[INFO] [stdout]     |                 --- variants in this enum
[INFO] [stdout] 415 |     Node(Rc<Node<NodeIdExpr, Self, PhantomData<Self>, PhantomData<Self>>>),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 416 |     Object(Rc<Object<Self>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 417 |     Assignment(Assignment),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 418 |     Value(Value),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 419 |     StringExpr(Rc<Vec<Self>>),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 420 |     FunctionCall(Id, Vec<Self>),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 421 |     FunctionDef(Function),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 422 |     Variable(Id),
[INFO] [stdout] 423 |     AncestorRef(AncestorRef),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 424 |     If(If),
[INFO] [stdout]     |     ^^
[INFO] [stdout] 425 |     Repeat(Repeat),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 426 |     Algebraic(Algebraic),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 427 |     Boolean(BooleanExpr),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 428 |     List(Rc<Vec<Self>>),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 429 |     ListIndex(ListIndex),
[INFO] [stdout] 430 |     PropertyCall(Box<Self>, Box<Self>),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Ast` 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 items `eval` and `eval_string_expr` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:434:19
[INFO] [stdout]     |
[INFO] [stdout] 433 | impl Ast {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 434 |     pub(crate) fn eval(&self, pair: &Pair<Rule>, context: Context) -> ParseResult<Value> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     fn eval_string_expr(exprs: &[Self], pair: &Pair<Rule>, context: Context) -> ParseResult<Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Id` and `String` are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:525:5
[INFO] [stdout]     |
[INFO] [stdout] 524 | pub(crate) enum NodeIdExpr {
[INFO] [stdout]     |                 ---------- variants in this enum
[INFO] [stdout] 525 |     Id(Id),
[INFO] [stdout]     |     ^^
[INFO] [stdout] 526 |     String(Box<Ast>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NodeIdExpr` 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 items `new` and `eval` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:536:19
[INFO] [stdout]     |
[INFO] [stdout] 535 | impl Assignment {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 536 |     pub(crate) fn new(target: AssignmentTarget, expression: Ast) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 543 |     pub(crate) fn eval(&self, pair: &Pair<Rule>, caller_ctx: Context) -> ParseResult<Value> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Id`, `Ancestor`, `Property`, and `ListIndex` are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:552:5
[INFO] [stdout]     |
[INFO] [stdout] 551 | pub(crate) enum AssignmentTarget {
[INFO] [stdout]     |                 ---------------- variants in this enum
[INFO] [stdout] 552 |     Id(Id),
[INFO] [stdout]     |     ^^
[INFO] [stdout] 553 |     Ancestor(AssignAncestor),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 554 |     Property(AssignProperty),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 555 |     ListIndex(AssignListIndex),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AssignmentTarget` 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: method `assign` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:564:19
[INFO] [stdout]     |
[INFO] [stdout] 563 | impl AssignmentTarget {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 564 |     pub(crate) fn assign(
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `assign` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 588 | impl AssignAncestor {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 589 |     fn new(target: AssignmentTarget) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 595 |     fn assign(
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `assign` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:630:19
[INFO] [stdout]     |
[INFO] [stdout] 629 | impl AssignProperty {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 630 |     pub(crate) fn new(target: AssignmentTarget, property: AssignmentTarget) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 637 |     pub(crate) fn assign(
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `assign`, and `eval_indices` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:673:19
[INFO] [stdout]     |
[INFO] [stdout] 672 | impl AssignListIndex {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 673 |     pub(crate) fn new(target: Id, indices: Vec<Ast>) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 677 |     pub(crate) fn assign(
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 729 |     fn eval_indices(&self, pair: &Pair<Rule>, context: Context) -> ParseResult<Vec<usize>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval` is never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:744:8
[INFO] [stdout]     |
[INFO] [stdout] 743 | impl AncestorRef {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] 744 |     fn eval(&self, pair: &Pair<Rule>, caller_ctx: Context) -> ParseResult<Value> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `eval`, and `parse_else` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:785:8
[INFO] [stdout]     |
[INFO] [stdout] 784 | impl If {
[INFO] [stdout]     | ------- associated items in this implementation
[INFO] [stdout] 785 |     fn new(condition: Ast, body: Body, else_exprs: Vec<Else>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 793 |     fn eval(&self, pair: &Pair<Rule>, caller_ctx: Context) -> ParseResult<Value> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 816 |     fn parse_else(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ElseIf` and `IfElse` are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:847:5
[INFO] [stdout]     |
[INFO] [stdout] 846 | pub(crate) enum Else {
[INFO] [stdout]     |                 ---- variants in this enum
[INFO] [stdout] 847 |     ElseIf(If),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 848 |     IfElse(Body),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Else` 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 items `new` and `eval` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:858:8
[INFO] [stdout]     |
[INFO] [stdout] 857 | impl Repeat {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 858 |     fn new(times: Ast, body: Body) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 865 |     fn eval(&self, pair: &Pair<Rule>, caller_ctx: Context) -> ParseResult<Value> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Neg` and `In` are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:889:5
[INFO] [stdout]     |
[INFO] [stdout] 888 | pub(crate) enum Algebraic {
[INFO] [stdout]     |                 --------- variants in this enum
[INFO] [stdout] 889 |     Neg(Box<Ast>),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 890 |     In(AlgebraicIn),
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Algebraic` 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 items `new_neg`, `new_in`, `eval`, and `eval_num` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:894:19
[INFO] [stdout]     |
[INFO] [stdout] 893 | impl Algebraic {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 894 |     pub(crate) fn new_neg(expr: Ast) -> Self {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 898 |     pub(crate) fn new_in(left: Ast, operator: MathOperator, right: Ast) -> Self {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 906 |     pub(crate) fn eval(&self, pair: &Pair<Rule>, context: Context) -> ParseResult<Value> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 924 |     fn eval_num(&self, expr: &Ast, pair: &Pair<Rule>, context: Context) -> ParseResult<f64> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Add`, `Sub`, `Mul`, `Div`, and `Mod` are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:941:5
[INFO] [stdout]     |
[INFO] [stdout] 940 | pub(crate) enum MathOperator {
[INFO] [stdout]     |                 ------------ variants in this enum
[INFO] [stdout] 941 |     Add,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 942 |     Sub,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 943 |     Mul,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 944 |     Div,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 945 |     Mod,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MathOperator` 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: variants `Not`, `In`, and `Comp` are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:950:5
[INFO] [stdout]     |
[INFO] [stdout] 949 | pub(crate) enum BooleanExpr {
[INFO] [stdout]     |                 ----------- variants in this enum
[INFO] [stdout] 950 |     Not(Box<Ast>),
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 951 |     In(BooleanIn),
[INFO] [stdout]     |     ^^
[INFO] [stdout] 952 |     Comp(Comparison),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BooleanExpr` 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 items `new_not`, `new_in`, `new_comp`, `eval`, and `eval_bool` are never used
[INFO] [stdout]    --> spark-ml/src/parser/ast.rs:956:19
[INFO] [stdout]     |
[INFO] [stdout] 955 | impl BooleanExpr {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 956 |     pub(crate) fn new_not(expr: Ast) -> Self {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 960 |     pub(crate) fn new_in(left: Ast, operator: BoolOperator, right: Ast) -> Self {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 968 |     pub(crate) fn new_comp(left: Ast, operator: CompOperator, right: Ast) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 976 |     pub(crate) fn eval(&self, pair: &Pair<Rule>, context: Context) -> ParseResult<Value> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 992 |     fn eval_bool(&self, expr: &Ast, pair: &Pair<Rule>, context: Context) -> ParseResult<bool> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `And` and `Or` are never constructed
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1009:5
[INFO] [stdout]      |
[INFO] [stdout] 1008 | pub(crate) enum BoolOperator {
[INFO] [stdout]      |                 ------------ variants in this enum
[INFO] [stdout] 1009 |     And,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 1010 |     Or,
[INFO] [stdout]      |     ^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `BoolOperator` 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: method `eval` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1021:8
[INFO] [stdout]      |
[INFO] [stdout] 1020 | impl Comparison {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] 1021 |     fn eval(&self, pair: &Pair<Rule>, context: Context) -> ParseResult<Value> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Lt`, `Gt`, `Eq`, `Neq`, `LtEq`, and `GtEq` are never constructed
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1056:5
[INFO] [stdout]      |
[INFO] [stdout] 1055 | pub(crate) enum CompOperator {
[INFO] [stdout]      |                 ------------ variants in this enum
[INFO] [stdout] 1056 |     Lt,
[INFO] [stdout]      |     ^^
[INFO] [stdout] 1057 |     Gt,
[INFO] [stdout]      |     ^^
[INFO] [stdout] 1058 |     Eq,
[INFO] [stdout]      |     ^^
[INFO] [stdout] 1059 |     Neq,
[INFO] [stdout]      |     ^^^
[INFO] [stdout] 1060 |     LtEq,
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 1061 |     GtEq,
[INFO] [stdout]      |     ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `CompOperator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `eval`, `eval_list`, `eval_tween`, `eval_signal`, and `eval_meta_attrs` are never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1065:19
[INFO] [stdout]      |
[INFO] [stdout] 1064 | impl<T, S> Node<NodeIdExpr, Ast, PhantomData<T>, PhantomData<S>> {
[INFO] [stdout]      | ---------------------------------------------------------------- methods in this implementation
[INFO] [stdout] 1065 |     pub(crate) fn eval(
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1132 |     fn eval_list(&self, attr: Attribute<Value>, pair: &Pair<Rule>) -> ParseResult<Vec<Value>> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1142 |     fn eval_tween(&self, value: &Value, pair: &Pair<Rule>) -> ParseResult<Tween<Value>> {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1149 |     fn eval_signal(&self, value: &Value, pair: &Pair<Rule>) -> ParseResult<Signal> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1156 |     fn eval_meta_attrs(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `eval` and `eval_string_id` are never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1178:19
[INFO] [stdout]      |
[INFO] [stdout] 1177 | impl NodeIdExpr {
[INFO] [stdout]      | --------------- methods in this implementation
[INFO] [stdout] 1178 |     pub(crate) fn eval(&self, pair: &Pair<Rule>, caller_ctx: Context) -> ParseResult<Id> {
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1185 |     fn eval_string_id(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `eval` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1208:19
[INFO] [stdout]      |
[INFO] [stdout] 1207 | impl Tween<Value> {
[INFO] [stdout]      | ----------------- associated function in this implementation
[INFO] [stdout] 1208 |     pub(crate) fn eval(obj: &Object<Value>, pair: &Pair<Rule>) -> ParseResult<Self> {
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `eval` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1276:19
[INFO] [stdout]      |
[INFO] [stdout] 1275 | impl Signal {
[INFO] [stdout]      | ----------- associated function in this implementation
[INFO] [stdout] 1276 |     pub(crate) fn eval(obj: &Object<Value>, pair: &Pair<Rule>) -> ParseResult<Self> {
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1293:19
[INFO] [stdout]      |
[INFO] [stdout] 1292 | impl Object<Ast> {
[INFO] [stdout]      | ---------------- method in this implementation
[INFO] [stdout] 1293 |     pub(crate) fn eval(&self, pair: &Pair<Rule>, context: Context) -> ParseResult<Object<Value>> {
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `call_property` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1309:19
[INFO] [stdout]      |
[INFO] [stdout] 1308 | impl Object<Value> {
[INFO] [stdout]      | ------------------ method in this implementation
[INFO] [stdout] 1309 |     pub(crate) fn call_property(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1358:19
[INFO] [stdout]      |
[INFO] [stdout] 1357 | impl Attributes<Ast> {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] 1358 |     pub(crate) fn eval(
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1374:19
[INFO] [stdout]      |
[INFO] [stdout] 1373 | impl Attribute<Ast> {
[INFO] [stdout]      | ------------------- method in this implementation
[INFO] [stdout] 1374 |     pub(crate) fn eval(
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `eval` are never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1403:19
[INFO] [stdout]      |
[INFO] [stdout] 1402 | impl Function {
[INFO] [stdout]      | ------------- associated items in this implementation
[INFO] [stdout] 1403 |     pub(crate) fn new(name: Id, args: Vec<Id>, body: Body) -> Self {
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1407 |     pub(crate) fn eval(&self, context: Context) -> value::Function {
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_empty`, and `eval` are never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1423:19
[INFO] [stdout]      |
[INFO] [stdout] 1422 | impl Body {
[INFO] [stdout]      | --------- associated items in this implementation
[INFO] [stdout] 1423 |     pub(crate) fn new(expressions: Vec<Ast>) -> Self {
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1429 |     pub(crate) fn is_empty(&self) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1433 |     pub(crate) fn eval(&self, pair: &Pair<Rule>, context: Context) -> ParseResult<Value> {
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval` is never used
[INFO] [stdout]     --> spark-ml/src/parser/ast.rs:1466:19
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl ListIndex {
[INFO] [stdout]      | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1466 |     pub(crate) fn eval(
[INFO] [stdout]      |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `variables` and `functions` are never read
[INFO] [stdout]   --> spark-ml/src/parser/context.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) struct Context {
[INFO] [stdout]    |                   ------- fields in this struct
[INFO] [stdout] 14 |     variables: Table<Value>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 15 |     functions: Table<Function>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Context` 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: multiple associated items are never used
[INFO] [stdout]    --> spark-ml/src/parser/context.rs:30:19
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl Context {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  30 |     pub(crate) fn with_parent(parent: Self) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub(crate) fn parent(&self) -> Option<Self> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub(crate) fn var(&self, id: &Id) -> Option<Value> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub(crate) fn func(&self, id: &Id) -> Option<Function> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub(crate) fn vars(&self) -> &Table<Value> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub(crate) fn funcs(&self) -> &Table<Function> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub(crate) fn add_var(&self, pair: &Pair<Rule>, id: Id, value: Value) -> ParseResult<()> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub(crate) fn add_func(&self, pair: &Pair<Rule>, func_def: Function) -> ParseResult<()> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub(crate) fn find_var_ancestor(&self, id: &Id) -> Option<Self> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) fn has_node(&self, id: &Id) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub(crate) fn add_node(&self, node: Rc<RefCell<Node<Id, Value, Tween<Value>, Signal>>>) {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `recursive`, `table`, and `parent` are never read
[INFO] [stdout]    --> spark-ml/src/parser/context.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub(crate) struct Table<T> {
[INFO] [stdout]     |                   ----- fields in this struct
[INFO] [stdout] 137 |     recursive: Cell<bool>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 138 |     table: Rc<RefCell<HashMap<Id, T>>>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 139 |     parent: Option<Box<Self>>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Table` 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 items `with_parent`, `set_recursive`, and `set_all_recursive` are never used
[INFO] [stdout]    --> spark-ml/src/parser/context.rs:143:19
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl<T> Table<T> {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 143 |     pub(crate) fn with_parent(parent: Self) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub(crate) fn set_recursive(&self, value: bool) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub(crate) fn set_all_recursive(&self, value: bool) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get` and `parent` are never used
[INFO] [stdout]    --> spark-ml/src/parser/context.rs:165:19
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl<T: Clone> Table<T> {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] 164 |     /// Get a value.
[INFO] [stdout] 165 |     pub(crate) fn get(&self, id: &Id) -> Option<T> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub(crate) fn parent(&self) -> Option<Self> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Module` is never constructed
[INFO] [stdout]   --> spark-ml/src/parser/module.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) struct Module {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `EXTENSION`, `from_top_pair`, `parse_top_inner`, `process_func_defs`, and `add_ext_resource` are never used
[INFO] [stdout]    --> spark-ml/src/parser/module.rs:38:22
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Module {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  38 |     pub(crate) const EXTENSION: &'static str = "sprk";
[INFO] [stdout]     |                      ^^^^^^^^^
[INFO] [stdout]  39 |
[INFO] [stdout]  40 |     fn from_top_pair(pair: Pair<Rule>) -> ParseResult<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn parse_top_inner(pairs: Pairs<Rule>) -> ParseResult<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     fn process_func_defs(&mut self, pairs: Vec<Pair<Rule>>) -> ParseResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn add_ext_resource(&mut self, pair: Pair<Rule>) -> ParseResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_incr` is never used
[INFO] [stdout]    --> spark-ml/src/parser/module.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn new_incr() -> Box<dyn FnMut() -> usize> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExtResource` is never used
[INFO] [stdout]    --> spark-ml/src/parser/module.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub(crate) enum ExtResource {
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string_rule` is never used
[INFO] [stdout]    --> spark-ml/src/parser/module.rs:164:19
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl ExtResource {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 164 |     pub(crate) fn from_string_rule(pair: Pair<Rule>) -> ParseResult<Self> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `GdValue` is never constructed
[INFO] [stdout]   --> spark-ml/src/parser/value.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) enum Value {
[INFO] [stdout]    |                 ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     GdValue(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` 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: method `ty_name` is never used
[INFO] [stdout]   --> spark-ml/src/parser/value.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 27 |     pub(crate) fn ty_name(&self) -> &'static str {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_default`, `name`, `class`, `attributes`, and `set_parent` are never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:115:19
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl<I, V, T, S> Node<I, V, T, S> {
[INFO] [stdout]     | --------------------------------- associated items in this implementation
[INFO] [stdout] 115 |     pub(crate) fn new_default(name: I, class: I, attributes: Attributes<V>) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub(crate) fn name(&self) -> &I {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(crate) fn class(&self) -> &I {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub(crate) fn attributes(&self) -> &Attributes<V> {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub(crate) fn set_parent(&mut self, parent: Rc<RefCell<Self>>) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:175:5
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub(crate) enum Transition {
[INFO] [stdout]     |                 ---------- variants in this enum
[INFO] [stdout] 175 |     Back,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 176 |     Bounce,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 177 |     Circ,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 178 |     Cubic,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 179 |     Elastic,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 180 |     Expo,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 181 |     Linear,
[INFO] [stdout] 182 |     Quad,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 183 |     Quart,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 184 |     Quint,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 185 |     Sine,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Transition` 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 `from_str` is never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:195:19
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Transition {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 195 |     pub(crate) fn from_str(s: &str, pair: &Pair<Rule>) -> ParseResult<Self> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `In`, `Out`, and `OutIn` are never constructed
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub(crate) enum Easing {
[INFO] [stdout]     |                 ------ variants in this enum
[INFO] [stdout] 215 |     In,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 216 |     Out,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 217 |     InOut,
[INFO] [stdout] 218 |     OutIn,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Easing` 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 `from_str` is never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:228:19
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl Easing {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 228 |     pub(crate) fn from_str(s: &str, pair: &Pair<Rule>) -> ParseResult<Self> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `context` is never read
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:242:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub(crate) struct Object<T> {
[INFO] [stdout]     |                   ------ field in this struct
[INFO] [stdout] 241 |     attributes: Attributes<T>,
[INFO] [stdout] 242 |     context: Context,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Object` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `attributes`, `body`, and `context` are never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:253:19
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl<T> Object<T> {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 253 |     pub(crate) fn new(attributes: Attributes<T>, body: Body, context: Context) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub(crate) fn attributes(&self) -> &Attributes<T> {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub(crate) fn body(&self) -> &Body {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub(crate) fn context(&self) -> &Context {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `take_required` and `take_optional` are never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:278:19
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl Attributes<Value> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 278 |     pub(crate) fn take_required<T: Into<Key> + ToString>(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub(crate) fn take_optional<T: Into<Key> + ToString>(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `get`, `take`, `extend`, and `table` are never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:342:19
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl<T> Attributes<T> {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 342 |     pub(crate) fn new(table: IndexMap<Key, Attribute<T>>) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub(crate) fn insert<K: Into<Key>>(&mut self, key: K, value: Attribute<T>) {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub(crate) fn get<K: Into<Key>>(&self, key: K) -> Option<&Attribute<T>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub(crate) fn take<K: Into<Key>>(&mut self, key: K) -> Option<Attribute<T>> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub(crate) fn extend(&mut self, other: Self) {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub(crate) fn table(&self) -> &IndexMap<Key, Attribute<T>> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_as_string` and `get_as_number` are never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:415:19
[INFO] [stdout]     |
[INFO] [stdout] 414 | impl Attribute<Value> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 415 |     pub(crate) fn get_as_string(&self, pair: &Pair<Rule>) -> ParseResult<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub(crate) fn get_as_number(&self, pair: &Pair<Rule>) -> ParseResult<f64> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `context` is never read
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:489:5
[INFO] [stdout]     |
[INFO] [stdout] 485 | pub(crate) struct Function {
[INFO] [stdout]     |                   -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 489 |     context: Context,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Function` 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 items `new` and `eval` are never used
[INFO] [stdout]    --> spark-ml/src/parser/value.rs:499:19
[INFO] [stdout]     |
[INFO] [stdout] 498 | impl Function {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 499 |     pub(crate) fn new(name: Id, args: Vec<Id>, body: Body, caller_ctx: Context) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 516 |     pub(crate) fn eval(
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tree v0.1.0 (/opt/rustwide/workdir/spark-ml/tree)
[INFO] [stdout] warning: field `exports_var` is never read
[INFO] [stdout]   --> spark-ml/src/parser/module.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) struct Module {
[INFO] [stdout]    |                   ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     exports_var: HashSet<Id>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking spark-app v0.1.0 (/opt/rustwide/workdir/spark-app)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.22s
[INFO] running `Command { std: "docker" "inspect" "fd4b56fbc996d275b7df34b11d1721ba4b7568b879a40c6f11b41e6c78240abc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd4b56fbc996d275b7df34b11d1721ba4b7568b879a40c6f11b41e6c78240abc", kill_on_drop: false }`
[INFO] [stdout] fd4b56fbc996d275b7df34b11d1721ba4b7568b879a40c6f11b41e6c78240abc
