[INFO] fetching crate kotoba-query-engine 0.1.22...
[INFO] testing kotoba-query-engine-0.1.22 against 1.90.0 for beta-1.91-3
[INFO] extracting crate kotoba-query-engine 0.1.22 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate kotoba-query-engine 0.1.22
[INFO] finished tweaking crates.io crate kotoba-query-engine 0.1.22
[INFO] tweaked toml for crates.io crate kotoba-query-engine 0.1.22 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate kotoba-query-engine 0.1.22 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate kotoba-query-engine 0.1.22 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.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d07862a7e88aa51f6cc85fc99fc268703d9d05b067ff8ffbc35b9210db528fcb
[INFO] running `Command { std: "docker" "start" "-a" "d07862a7e88aa51f6cc85fc99fc268703d9d05b067ff8ffbc35b9210db528fcb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d07862a7e88aa51f6cc85fc99fc268703d9d05b067ff8ffbc35b9210db528fcb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d07862a7e88aa51f6cc85fc99fc268703d9d05b067ff8ffbc35b9210db528fcb", kill_on_drop: false }`
[INFO] [stdout] d07862a7e88aa51f6cc85fc99fc268703d9d05b067ff8ffbc35b9210db528fcb
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8f22bd9b513c7c7992d33e2c2d64ca7ab1c4f0aad9796434e73c3875e1333f92
[INFO] running `Command { std: "docker" "start" "-a" "8f22bd9b513c7c7992d33e2c2d64ca7ab1c4f0aad9796434e73c3875e1333f92", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.225
[INFO] [stderr]    Compiling serde v1.0.225
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling cc v1.2.38
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling clap_builder v4.5.47
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling constant_time_eq v0.3.1
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling tempfile v3.22.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling fraction v0.13.1
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling fancy-regex v0.11.0
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling iso8601 v0.6.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.225
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling pest v2.8.2
[INFO] [stderr]    Compiling kotoba-errors v0.1.2
[INFO] [stderr]    Compiling clap v4.5.47
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.3
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling pest_meta v2.8.2
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling pest_generator v2.8.2
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling pest_derive v2.8.2
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling kotoba-storage v0.1.22
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling jsonschema v0.17.1
[INFO] [stderr]    Compiling kotoba-core v0.1.22
[INFO] [stderr]    Compiling kotoba-query-engine v0.1.22 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `pest::Parser`
[INFO] [stdout]  --> src/parser.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pest::Parser;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/planner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/planner.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexManagerPort` and `ProjectionPort`
[INFO] [stdout]   --> src/planner.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{ProjectionPort, IndexManagerPort};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/executor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/executor.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/executor.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | use futures::stream::{self, StreamExt};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexManagerPort` and `ProjectionPort`
[INFO] [stdout]   --> src/executor.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::{ProjectionPort, IndexManagerPort};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/optimizer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::IndexManagerPort`
[INFO] [stdout]   --> src/optimizer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::IndexManagerPort;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/planner.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 |         for (property, _) in &vertex_pattern.properties {
[INFO] [stdout]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/planner.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut index_candidates: Vec<String> = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]    --> src/planner.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 |         for (property, _) in &edge_pattern.properties {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/planner.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut index_candidates: Vec<String> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/executor.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         context: crate::QueryContext,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scan_plan`
[INFO] [stdout]    --> src/executor.rs:107:41
[INFO] [stdout]     |
[INFO] [stdout] 107 |     async fn execute_vertex_scan(&self, scan_plan: VertexScanPlan) -> Result<Vec<Vec<Value>>> {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scan_plan`
[INFO] [stdout]    --> src/executor.rs:131:39
[INFO] [stdout]     |
[INFO] [stdout] 131 |     async fn execute_edge_scan(&self, scan_plan: EdgeScanPlan) -> Result<Vec<Value>> {
[INFO] [stdout]     |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sort_plan`
[INFO] [stdout]    --> src/executor.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         sort_plan: SortPlan,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sort_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/executor.rs:213:35
[INFO] [stdout]     |
[INFO] [stdout] 213 |             ExecutionResult::Rows(mut rows) => {
[INFO] [stdout]     |                                   ----^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]    --> src/executor.rs:230:21
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 let end = start + limit_clause.count as usize;
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/optimizer.rs:71:36
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 QueryClause::Match(mut match_clause) => {
[INFO] [stdout]    |                                    ----^^^^^^^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]   --> src/executor.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 | use futures::stream::{self, StreamExt};
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]    --> src/parser.rs:200:33
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn build_boolean_expression(pair: pest::iterators::Pair<Rule>) -> Result<BooleanExpression> {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]    --> src/parser.rs:256:25
[INFO] [stdout]     |
[INFO] [stdout] 256 |     fn build_properties(pair: pest::iterators::Pair<Rule>) -> Result<HashMap<String, ValueExpression>> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]   --> src/planner.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct QueryPlanner<T: KeyValueStore> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 17 |     storage: Arc<T>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `vertex_to_json_value` and `edge_to_json_value` are never used
[INFO] [stdout]   --> src/executor.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<T: KeyValueStore + 'static> QueryExecutor<T> {
[INFO] [stdout]    | ------------------------------------------------- methods in this implementation
[INFO] [stdout] 24 |     /// Convert Vertex to serde_json::Value
[INFO] [stdout] 25 |     fn vertex_to_json_value(&self, vertex: Vertex) -> serde_json::Value {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn edge_to_json_value(&self, edge: Edge) -> serde_json::Value {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/executor.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 309 | pub struct StatementExecutor<T: KeyValueStore> {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 310 |     storage: Arc<T>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]   --> src/optimizer.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct QueryOptimizer<T: KeyValueStore> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 16 |     storage: Arc<T>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/optimizer.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct CostEstimator<T: KeyValueStore> {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 121 |     storage: Arc<T>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/optimizer.rs:200:5
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub struct StatisticsManager<T: KeyValueStore> {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 200 |     storage: Arc<T>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.67s
[INFO] running `Command { std: "docker" "inspect" "8f22bd9b513c7c7992d33e2c2d64ca7ab1c4f0aad9796434e73c3875e1333f92", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f22bd9b513c7c7992d33e2c2d64ca7ab1c4f0aad9796434e73c3875e1333f92", kill_on_drop: false }`
[INFO] [stdout] 8f22bd9b513c7c7992d33e2c2d64ca7ab1c4f0aad9796434e73c3875e1333f92
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1b03908b25b8dae77dada1fcb0ea8629f1f3c37195141fb2b5e2ca66ec33c516
[INFO] running `Command { std: "docker" "start" "-a" "1b03908b25b8dae77dada1fcb0ea8629f1f3c37195141fb2b5e2ca66ec33c516", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `pest::Parser`
[INFO] [stdout]  --> src/parser.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pest::Parser;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/planner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/planner.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling kotoba-query-engine v0.1.22 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `IndexManagerPort` and `ProjectionPort`
[INFO] [stdout]   --> src/planner.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{ProjectionPort, IndexManagerPort};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/executor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/executor.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/executor.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | use futures::stream::{self, StreamExt};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexManagerPort` and `ProjectionPort`
[INFO] [stdout]   --> src/executor.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::{ProjectionPort, IndexManagerPort};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/optimizer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::IndexManagerPort`
[INFO] [stdout]   --> src/optimizer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::IndexManagerPort;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/planner.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 |         for (property, _) in &vertex_pattern.properties {
[INFO] [stdout]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/planner.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut index_candidates: Vec<String> = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]    --> src/planner.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 |         for (property, _) in &edge_pattern.properties {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/planner.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut index_candidates: Vec<String> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/executor.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         context: crate::QueryContext,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scan_plan`
[INFO] [stdout]    --> src/executor.rs:107:41
[INFO] [stdout]     |
[INFO] [stdout] 107 |     async fn execute_vertex_scan(&self, scan_plan: VertexScanPlan) -> Result<Vec<Vec<Value>>> {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scan_plan`
[INFO] [stdout]    --> src/executor.rs:131:39
[INFO] [stdout]     |
[INFO] [stdout] 131 |     async fn execute_edge_scan(&self, scan_plan: EdgeScanPlan) -> Result<Vec<Value>> {
[INFO] [stdout]     |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sort_plan`
[INFO] [stdout]    --> src/executor.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         sort_plan: SortPlan,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sort_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/executor.rs:213:35
[INFO] [stdout]     |
[INFO] [stdout] 213 |             ExecutionResult::Rows(mut rows) => {
[INFO] [stdout]     |                                   ----^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]    --> src/executor.rs:230:21
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 let end = start + limit_clause.count as usize;
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/optimizer.rs:71:36
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 QueryClause::Match(mut match_clause) => {
[INFO] [stdout]    |                                    ----^^^^^^^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]   --> src/executor.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 | use futures::stream::{self, StreamExt};
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]    --> src/parser.rs:200:33
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn build_boolean_expression(pair: pest::iterators::Pair<Rule>) -> Result<BooleanExpression> {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]    --> src/parser.rs:256:25
[INFO] [stdout]     |
[INFO] [stdout] 256 |     fn build_properties(pair: pest::iterators::Pair<Rule>) -> Result<HashMap<String, ValueExpression>> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]   --> src/planner.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct QueryPlanner<T: KeyValueStore> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 17 |     storage: Arc<T>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `vertex_to_json_value` and `edge_to_json_value` are never used
[INFO] [stdout]   --> src/executor.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<T: KeyValueStore + 'static> QueryExecutor<T> {
[INFO] [stdout]    | ------------------------------------------------- methods in this implementation
[INFO] [stdout] 24 |     /// Convert Vertex to serde_json::Value
[INFO] [stdout] 25 |     fn vertex_to_json_value(&self, vertex: Vertex) -> serde_json::Value {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn edge_to_json_value(&self, edge: Edge) -> serde_json::Value {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/executor.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 309 | pub struct StatementExecutor<T: KeyValueStore> {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 310 |     storage: Arc<T>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]   --> src/optimizer.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct QueryOptimizer<T: KeyValueStore> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 16 |     storage: Arc<T>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/optimizer.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct CostEstimator<T: KeyValueStore> {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 121 |     storage: Arc<T>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage` is never read
[INFO] [stdout]    --> src/optimizer.rs:200:5
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub struct StatisticsManager<T: KeyValueStore> {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 200 |     storage: Arc<T>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pest::Parser`
[INFO] [stdout]  --> src/parser.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use pest::Parser;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/parser.rs:298:9
[INFO] [stdout]     |
[INFO] [stdout] 298 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/planner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/planner.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexManagerPort` and `ProjectionPort`
[INFO] [stdout]   --> src/planner.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{ProjectionPort, IndexManagerPort};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/planner.rs:275:9
[INFO] [stdout]     |
[INFO] [stdout] 275 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/executor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/executor.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/executor.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | use futures::stream::{self, StreamExt};
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexManagerPort` and `ProjectionPort`
[INFO] [stdout]   --> src/executor.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::{ProjectionPort, IndexManagerPort};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/executor.rs:378:9
[INFO] [stdout]     |
[INFO] [stdout] 378 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/optimizer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::IndexManagerPort`
[INFO] [stdout]   --> src/optimizer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::IndexManagerPort;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/optimizer.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/planner.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 |         for (property, _) in &vertex_pattern.properties {
[INFO] [stdout]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/planner.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut index_candidates: Vec<String> = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]    --> src/planner.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 |         for (property, _) in &edge_pattern.properties {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/planner.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut index_candidates: Vec<String> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/executor.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         context: crate::QueryContext,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scan_plan`
[INFO] [stdout]    --> src/executor.rs:107:41
[INFO] [stdout]     |
[INFO] [stdout] 107 |     async fn execute_vertex_scan(&self, scan_plan: VertexScanPlan) -> Result<Vec<Vec<Value>>> {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scan_plan`
[INFO] [stdout]    --> src/executor.rs:131:39
[INFO] [stdout]     |
[INFO] [stdout] 131 |     async fn execute_edge_scan(&self, scan_plan: EdgeScanPlan) -> Result<Vec<Value>> {
[INFO] [stdout]     |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sort_plan`
[INFO] [stdout]    --> src/executor.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         sort_plan: SortPlan,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sort_plan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/executor.rs:213:35
[INFO] [stdout]     |
[INFO] [stdout] 213 |             ExecutionResult::Rows(mut rows) => {
[INFO] [stdout]     |                                   ----^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]    --> src/executor.rs:230:21
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 let end = start + limit_clause.count as usize;
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/optimizer.rs:71:36
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 QueryClause::Match(mut match_clause) => {
[INFO] [stdout]    |                                    ----^^^^^^^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `QueryContext: serde::Serialize` is not satisfied
[INFO] [stdout]     --> src/lib.rs:320:49
[INFO] [stdout]      |
[INFO] [stdout]  320 |         let json_result = serde_json::to_string(&context);
[INFO] [stdout]      |                           --------------------- ^^^^^^^^ the trait `Serialize` is not implemented for `QueryContext`
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Serialize)]` to your `QueryContext` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Serialize`:
[INFO] [stdout]                &'a T
[INFO] [stdout]                &'a mut T
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]                (T0, T1, T2, T3, T4)
[INFO] [stdout]              and 317 others
[INFO] [stdout] note: required by a bound in `serde_json::to_string`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.145/src/ser.rs:2247:17
[INFO] [stdout]      |
[INFO] [stdout] 2245 | pub fn to_string<T>(value: &T) -> Result<String>
[INFO] [stdout]      |        --------- required by a bound in this function
[INFO] [stdout] 2246 | where
[INFO] [stdout] 2247 |     T: ?Sized + Serialize,
[INFO] [stdout]      |                 ^^^^^^^^^ required by this bound in `to_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `QueryContext: serde::Deserialize<'de>` is not satisfied
[INFO] [stdout]     --> src/lib.rs:329:69
[INFO] [stdout]      |
[INFO] [stdout]  329 |         let deserialized_result: serde_json::Result<QueryContext> = serde_json::from_str(&json_str);
[INFO] [stdout]      |                                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `QueryContext`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `QueryContext` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]              and 320 others
[INFO] [stdout] note: required by a bound in `serde_json::from_str`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.145/src/de.rs:2699:8
[INFO] [stdout]      |
[INFO] [stdout] 2697 | pub fn from_str<'a, T>(s: &'a str) -> Result<T>
[INFO] [stdout]      |        -------- required by a bound in this function
[INFO] [stdout] 2698 | where
[INFO] [stdout] 2699 |     T: de::Deserialize<'a>,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found type alias `VertexId`
[INFO] [stdout]    --> src/lib.rs:392:25
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let vertex_id = VertexId("test_vertex".to_string());
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to use `:` for type annotation
[INFO] [stdout]     |
[INFO] [stdout] 392 -         let vertex_id = VertexId("test_vertex".to_string());
[INFO] [stdout] 392 +         let vertex_id: VertexId("test_vertex".to_string());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `default` found for struct `types::PathPattern` in the current scope
[INFO] [stdout]    --> src/lib.rs:410:36
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let pattern = PathPattern::default();
[INFO] [stdout]     |                                    ^^^^^^^ function or associated item not found in `types::PathPattern`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types.rs:78:1
[INFO] [stdout]     |
[INFO] [stdout]  78 | pub struct PathPattern {
[INFO] [stdout]     | ---------------------- function or associated item `default` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `default`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found type alias `VertexId`
[INFO] [stdout]    --> src/lib.rs:508:25
[INFO] [stdout]     |
[INFO] [stdout] 508 |         let vertex_id = VertexId("test".to_string());
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to use `:` for type annotation
[INFO] [stdout]     |
[INFO] [stdout] 508 -         let vertex_id = VertexId("test".to_string());
[INFO] [stdout] 508 +         let vertex_id: VertexId("test".to_string());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found type alias `EdgeId`
[INFO] [stdout]    --> src/lib.rs:511:23
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let edge_id = EdgeId("test_edge".to_string());
[INFO] [stdout]     |                       ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to use `:` for type annotation
[INFO] [stdout]     |
[INFO] [stdout] 511 -         let edge_id = EdgeId("test_edge".to_string());
[INFO] [stdout] 511 +         let edge_id: EdgeId("test_edge".to_string());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]   --> src/executor.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 | use futures::stream::{self, StreamExt};
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]    --> src/parser.rs:200:33
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn build_boolean_expression(pair: pest::iterators::Pair<Rule>) -> Result<BooleanExpression> {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]    --> src/parser.rs:256:25
[INFO] [stdout]     |
[INFO] [stdout] 256 |     fn build_properties(pair: pest::iterators::Pair<Rule>) -> Result<HashMap<String, ValueExpression>> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/lib.rs:153:29
[INFO] [stdout]     |
[INFO] [stdout] 153 |         async fn put(&self, key: &[u8], value: &[u8]) -> anyhow::Result<()> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/lib.rs:153:41
[INFO] [stdout]     |
[INFO] [stdout] 153 |         async fn put(&self, key: &[u8], value: &[u8]) -> anyhow::Result<()> {
[INFO] [stdout]     |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/lib.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 |         async fn get(&self, key: &[u8]) -> anyhow::Result<Option<Vec<u8>>> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/lib.rs:161:32
[INFO] [stdout]     |
[INFO] [stdout] 161 |         async fn delete(&self, key: &[u8]) -> anyhow::Result<()> {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]    --> src/lib.rs:165:30
[INFO] [stdout]     |
[INFO] [stdout] 165 |         async fn scan(&self, prefix: &[u8]) -> anyhow::Result<Vec<(Vec<u8>, Vec<u8>)>> {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engine`
[INFO] [stdout]    --> src/lib.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let engine = GqlQueryEngine::new(mock_storage);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_engine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context1`
[INFO] [stdout]    --> src/lib.rs:569:13
[INFO] [stdout]     |
[INFO] [stdout] 569 |         let context1 = QueryContext {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context2`
[INFO] [stdout]    --> src/lib.rs:576:13
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let context2 = QueryContext {
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0423, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kotoba-query-engine` (lib test) due to 6 previous errors; 36 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1b03908b25b8dae77dada1fcb0ea8629f1f3c37195141fb2b5e2ca66ec33c516", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b03908b25b8dae77dada1fcb0ea8629f1f3c37195141fb2b5e2ca66ec33c516", kill_on_drop: false }`
[INFO] [stdout] 1b03908b25b8dae77dada1fcb0ea8629f1f3c37195141fb2b5e2ca66ec33c516
