[INFO] cloning repository https://github.com/jonathan-lemos/meta [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jonathan-lemos/meta" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonathan-lemos%2Fmeta", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonathan-lemos%2Fmeta'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6d07567b21d162f0b44a144bb5da6265867ef3e8 [INFO] checking jonathan-lemos/meta against try#121a90d34197f711021eeb158e7f4184b8be8ceb for pr-140313 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonathan-lemos%2Fmeta" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jonathan-lemos/meta on toolchain 121a90d34197f711021eeb158e7f4184b8be8ceb [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+121a90d34197f711021eeb158e7f4184b8be8ceb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jonathan-lemos/meta [INFO] finished tweaking git repo https://github.com/jonathan-lemos/meta [INFO] tweaked toml for git repo https://github.com/jonathan-lemos/meta written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/jonathan-lemos/meta 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" "+121a90d34197f711021eeb158e7f4184b8be8ceb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition [INFO] [stderr] (in the `xattr` dependency) [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded fancy-regex v0.4.1 [INFO] [stderr] Downloaded libsqlite3-sys v0.9.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+121a90d34197f711021eeb158e7f4184b8be8ceb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 981ef5dd2839c12e15d4f6df8ba2ccff9bdf3ca6817210bfeb083c24b42dda21 [INFO] running `Command { std: "docker" "start" "-a" "981ef5dd2839c12e15d4f6df8ba2ccff9bdf3ca6817210bfeb083c24b42dda21", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "981ef5dd2839c12e15d4f6df8ba2ccff9bdf3ca6817210bfeb083c24b42dda21", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "981ef5dd2839c12e15d4f6df8ba2ccff9bdf3ca6817210bfeb083c24b42dda21", kill_on_drop: false }` [INFO] [stdout] 981ef5dd2839c12e15d4f6df8ba2ccff9bdf3ca6817210bfeb083c24b42dda21 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+121a90d34197f711021eeb158e7f4184b8be8ceb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 094a3329f364eecb1f82008d7545922f4369be806011fa556984c580657727d2 [INFO] running `Command { std: "docker" "start" "-a" "094a3329f364eecb1f82008d7545922f4369be806011fa556984c580657727d2", kill_on_drop: false }` [INFO] [stderr] warning: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition [INFO] [stderr] (in the `xattr` dependency) [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling syn v1.0.48 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling libc v0.2.80 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling serde_derive v1.0.117 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling serde v1.0.117 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling serde_json v1.0.60 [INFO] [stderr] Checking regex-syntax v0.6.21 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking bit-set v0.5.2 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking walkdir v2.3.1 [INFO] [stderr] Checking edit-distance v2.1.0 [INFO] [stderr] Compiling libsqlite3-sys v0.9.1 [INFO] [stderr] Checking aho-corasick v0.7.15 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking term_size v0.3.2 [INFO] [stderr] Checking xattr v0.2.2 [INFO] [stderr] Checking colored v2.0.0 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking regex v1.4.2 [INFO] [stderr] Checking fancy-regex v0.4.1 [INFO] [stderr] Compiling diesel_derives v1.4.1 [INFO] [stderr] Compiling diesel v1.4.5 [INFO] [stderr] Checking toml v0.5.7 [INFO] [stderr] Checking migrations_internals v1.4.1 [INFO] [stderr] Compiling migrations_macros v1.4.2 [INFO] [stderr] Checking diesel_migrations v1.4.0 [INFO] [stderr] Checking meta v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected `;`, found keyword `return` [INFO] [stdout] --> src/cli/args.rs:341:18 [INFO] [stdout] | [INFO] [stdout] 341 | } [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] 342 | return; [INFO] [stdout] | ------ unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found keyword `return` [INFO] [stdout] --> src/cli/args.rs:341:18 [INFO] [stdout] | [INFO] [stdout] 341 | } [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] 342 | return; [INFO] [stdout] | ------ unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found `next` [INFO] [stdout] --> src/cli/lang.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | cur = next [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] 10 | next = iter.next(); [INFO] [stdout] | ---- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found `next` [INFO] [stdout] --> src/cli/lang.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | cur = next [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] 10 | next = iter.next(); [INFO] [stdout] | ---- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `.`, `?`, `}`, or an operator, found `equals_name` [INFO] [stdout] --> src/cli/subcommands/remove.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 13 | flags: vec![HELP_FLAG, QUIET_FLAG, RECURSIVE_FLAG, Flag { [INFO] [stdout] | ---- while parsing this struct [INFO] [stdout] 14 | aliases: vec!["--all", "-a"] [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | expected one of `,`, `.`, `?`, `}`, or an operator [INFO] [stdout] | help: try adding a comma: `,` [INFO] [stdout] 15 | equals_name: None, [INFO] [stdout] | ^^^^^^^^^^^ unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `.`, `?`, `}`, or an operator, found `equals_name` [INFO] [stdout] --> src/cli/subcommands/remove.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 13 | flags: vec![HELP_FLAG, QUIET_FLAG, RECURSIVE_FLAG, Flag { [INFO] [stdout] | ---- while parsing this struct [INFO] [stdout] 14 | aliases: vec!["--all", "-a"] [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | expected one of `,`, `.`, `?`, `}`, or an operator [INFO] [stdout] | help: try adding a comma: `,` [INFO] [stdout] 15 | equals_name: None, [INFO] [stdout] | ^^^^^^^^^^^ unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `crate::cli::query::parse::LexError::NonLexableSequence` [INFO] [stdout] --> src/cli/query/parse.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::cli::query::parse::LexError::NonLexableSequence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `NonLexableSequence` in `cli::query::lex::LexError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `crate::cli::query::parse::LexError::NonLexableSequence` [INFO] [stdout] --> src/cli/query/parse.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::cli::query::parse::LexError::NonLexableSequence; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `NonLexableSequence` in `cli::query::lex::LexError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/cli/query/args.rs:38:6 [INFO] [stdout] | [INFO] [stdout] 38 | impl Args { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 38 | impl Args<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/cli/query/args.rs:73:23 [INFO] [stdout] | [INFO] [stdout] 73 | impl Index for Args { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 73 | impl Index for Args<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/cli/query/args.rs:38:6 [INFO] [stdout] | [INFO] [stdout] 38 | impl Args { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 38 | impl Args<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/cli/query/args.rs:73:23 [INFO] [stdout] | [INFO] [stdout] 73 | impl Index for Args { [INFO] [stdout] | ^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 73 | impl Index for Args<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `NonLexableSequence` in this scope [INFO] [stdout] --> src/cli/query/lex.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | Err(NonLexableSequence) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `NonLexableSequence` in this scope [INFO] [stdout] --> src/cli/query/lex.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | Err(NonLexableSequence) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryFrom` [INFO] [stdout] --> src/cli/query/lex.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::convert::TryFrom; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StrExtensions` and `ToCharIterator` [INFO] [stdout] --> src/cli/query/lex.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::format::str::{ToCharIterator, StrExtensions}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/cli/query/lex.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::LexError::*` [INFO] [stdout] --> src/cli/query/lex.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use self::LexError::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::HexSequenceError::*` [INFO] [stdout] --> src/cli/query/lex.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use self::HexSequenceError::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cli::query::args::ArgsIter` [INFO] [stdout] --> src/cli/query/lex.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::cli::query::args::ArgsIter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cli::query::args::ArgsIter` [INFO] [stdout] --> src/cli/query/lexeme.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::cli::query::args::ArgsIter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/cli/query/lexeme.rs:16:28 [INFO] [stdout] | [INFO] [stdout] 15 | impl<'a> Borrow> for OwnedLexeme { [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 16 | fn borrow(&'a self) -> &Lexeme<'a, 'a> { [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/cli/query/parse.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryFrom` [INFO] [stdout] --> src/cli/query/parse.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::convert::TryFrom; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StrExtensions` and `ToCharIterator` [INFO] [stdout] --> src/cli/query/parse.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::format::str::{ToCharIterator, StrExtensions}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem::take` [INFO] [stdout] --> src/cli/query/parse.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::mem::take; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cli::query::parse::Factor::KeyEqualsValue` [INFO] [stdout] --> src/cli/query/parse.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::cli::query::parse::Factor::KeyEqualsValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lex` [INFO] [stdout] --> src/cli/query/parse.rs:19:40 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::cli::query::lex::{LexError, lex}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Lexeme` [INFO] [stdout] --> src/cli/query/parse.rs:20:58 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::cli::query::lexeme::{LexemeQueue, LexemeKind, Lexeme, EqualityKind, OwnedLexeme}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryFrom` [INFO] [stdout] --> src/cli/query/lex.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::convert::TryFrom; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/cli/query/parse.rs:99:62 [INFO] [stdout] | [INFO] [stdout] 99 | ... return Err(ParseError::UnexpectedEOF(("Expected a ')'. Most likely you forgot to include a closing ')'".to_owned()))) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 99 - return Err(ParseError::UnexpectedEOF(("Expected a ')'. Most likely you forgot to include a closing ')'".to_owned()))) [INFO] [stdout] 99 + return Err(ParseError::UnexpectedEOF("Expected a ')'. Most likely you forgot to include a closing ')'".to_owned())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StrExtensions` and `ToCharIterator` [INFO] [stdout] --> src/cli/query/lex.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::format::str::{ToCharIterator, StrExtensions}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/cli/query/lex.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Range` [INFO] [stdout] --> src/cli/query/args.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Index, Range}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::LexError::*` [INFO] [stdout] --> src/cli/query/lex.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use self::LexError::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::HexSequenceError::*` [INFO] [stdout] --> src/cli/query/lex.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use self::HexSequenceError::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `authors`, `description`, `program_name`, and `version` [INFO] [stdout] --> src/cli/args.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cli::program::{program_name, authors, version, description}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::format::str::StrExtensions` [INFO] [stdout] --> src/cli/args.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::format::str::StrExtensions; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cli::query::args::ArgsIter` [INFO] [stdout] --> src/cli/query/lex.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::cli::query::args::ArgsIter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ArgsIter` [INFO] [stdout] --> src/cli/args.rs:8:37 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::cli::query::args::{Args, ArgsIter}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cli::query::args::ArgsIter` [INFO] [stdout] --> src/cli/query/lexeme.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::cli::query::args::ArgsIter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/cli/query/lexeme.rs:16:28 [INFO] [stdout] | [INFO] [stdout] 15 | impl<'a> Borrow> for OwnedLexeme { [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 16 | fn borrow(&'a self) -> &Lexeme<'a, 'a> { [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Flag` [INFO] [stdout] --> src/cli/subcommands/get.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cli::args::{Flag, HELP_FLAG, Positional, QUIET_FLAG, RECURSIVE_FLAG, Subcommand, FileSelector}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Flag` [INFO] [stdout] --> src/cli/subcommands/list.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cli::args::{Flag, HELP_FLAG, Positional, QUIET_FLAG, RECURSIVE_FLAG, Subcommand}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/cli/query/parse.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/cli/print.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryFrom` [INFO] [stdout] --> src/cli/query/parse.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::convert::TryFrom; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StrExtensions` and `ToCharIterator` [INFO] [stdout] --> src/cli/query/parse.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::format::str::{ToCharIterator, StrExtensions}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem::take` [INFO] [stdout] --> src/cli/query/parse.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::mem::take; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cli::query::parse::Factor::KeyEqualsValue` [INFO] [stdout] --> src/cli/query/parse.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::cli::query::parse::Factor::KeyEqualsValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lex` [INFO] [stdout] --> src/cli/query/parse.rs:19:40 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::cli::query::lex::{LexError, lex}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Lexeme` [INFO] [stdout] --> src/cli/query/parse.rs:20:58 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::cli::query::lexeme::{LexemeQueue, LexemeKind, Lexeme, EqualityKind, OwnedLexeme}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/cli/query/parse.rs:99:62 [INFO] [stdout] | [INFO] [stdout] 99 | ... return Err(ParseError::UnexpectedEOF(("Expected a ')'. Most likely you forgot to include a closing ')'".to_owned()))) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 99 - return Err(ParseError::UnexpectedEOF(("Expected a ')'. Most likely you forgot to include a closing ')'".to_owned()))) [INFO] [stdout] 99 + return Err(ParseError::UnexpectedEOF("Expected a ')'. Most likely you forgot to include a closing ')'".to_owned())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Range` [INFO] [stdout] --> src/cli/query/args.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Index, Range}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `authors`, `description`, `program_name`, and `version` [INFO] [stdout] --> src/cli/args.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cli::program::{program_name, authors, version, description}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::format::str::StrExtensions` [INFO] [stdout] --> src/cli/args.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::format::str::StrExtensions; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ArgsIter` [INFO] [stdout] --> src/cli/args.rs:8:37 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::cli::query::args::{Args, ArgsIter}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Flag` [INFO] [stdout] --> src/cli/subcommands/get.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cli::args::{Flag, HELP_FLAG, Positional, QUIET_FLAG, RECURSIVE_FLAG, Subcommand, FileSelector}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Flag` [INFO] [stdout] --> src/cli/subcommands/list.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::cli::args::{Flag, HELP_FLAG, Positional, QUIET_FLAG, RECURSIVE_FLAG, Subcommand}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/cli/print.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Mul` [INFO] [stdout] --> src/format/str.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Mul; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/format/re.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/filesystem/fs.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DirEntry`, `ReadDir`, and `read_dir` [INFO] [stdout] --> src/filesystem/fs.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{DirEntry, ReadDir, read_dir}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/filesystem/fs.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/filesystem/fs.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::FromIterator` [INFO] [stdout] --> src/filesystem/xattr.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iter::FromIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FromIterator` [INFO] [stdout] --> src/os/unix/xattr.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iter::{FromIterator, Map}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/collections/mrucache.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Mul` [INFO] [stdout] --> src/format/str.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Mul; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/format/re.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/filesystem/fs.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DirEntry`, `ReadDir`, and `read_dir` [INFO] [stdout] --> src/filesystem/fs.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{DirEntry, ReadDir, read_dir}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/filesystem/fs.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::linq::collectors::IntoVec` [INFO] [stdout] --> src/filesystem/fs.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::linq::collectors::IntoVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter::FromIterator` [INFO] [stdout] --> src/filesystem/xattr.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iter::FromIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FromIterator` [INFO] [stdout] --> src/os/unix/xattr.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iter::{FromIterator, Map}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: method not compatible with trait [INFO] [stdout] --> src/cli/query/lexeme.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | fn borrow(&'a self) -> &Lexeme<'a, 'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch [INFO] [stdout] | [INFO] [stdout] = note: expected signature `fn(&OwnedLexeme) -> &Lexeme<'_, '_>` [INFO] [stdout] found signature `fn(&'a OwnedLexeme) -> &'a Lexeme<'_, '_>` [INFO] [stdout] note: the anonymous lifetime as defined here... [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/borrow.rs:178:15 [INFO] [stdout] note: ...does not necessarily outlive the lifetime `'a` as defined here [INFO] [stdout] --> src/cli/query/lexeme.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | impl<'a> Borrow> for OwnedLexeme { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: method not compatible with trait [INFO] [stdout] --> src/cli/query/lexeme.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | fn borrow(&'a self) -> &Lexeme<'a, 'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch [INFO] [stdout] | [INFO] [stdout] = note: expected signature `fn(&OwnedLexeme) -> &Lexeme<'_, '_>` [INFO] [stdout] found signature `fn(&'a OwnedLexeme) -> &'a Lexeme<'_, '_>` [INFO] [stdout] note: the anonymous lifetime as defined here... [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/borrow.rs:178:15 [INFO] [stdout] note: ...does not necessarily outlive the lifetime `'a` as defined here [INFO] [stdout] --> src/cli/query/lexeme.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | impl<'a> Borrow> for OwnedLexeme { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: lifetime parameter `'a` is never used [INFO] [stdout] --> src/cli/query/args.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Args<'a> { [INFO] [stdout] | ^^ unused lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: lifetime parameter `'a` is never used [INFO] [stdout] --> src/cli/query/args.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Args<'a> { [INFO] [stdout] | ^^ unused lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/args.rs:253:21 [INFO] [stdout] | [INFO] [stdout] 253 | static SUBCOMMANDS: &[Subcommand] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: required because it appears within the type `[Subcommand]` [INFO] [stdout] = note: required because it appears within the type `&'static [Subcommand]` [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/args.rs:253:21 [INFO] [stdout] | [INFO] [stdout] 253 | static SUBCOMMANDS: &[Subcommand] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: required because it appears within the type `[Subcommand]` [INFO] [stdout] = note: required because it appears within the type `&'static [Subcommand]` [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/get.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/get.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/set.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/set.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/remove.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | pub static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/remove.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | pub static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/list.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] --> src/cli/subcommands/list.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) static SUBCOMMAND: Subcommand = Subcommand { [INFO] [stdout] | ^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be shared between threads safely [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sync` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] = note: required for `Unique<(dyn FnOnce(SubcommandParseResults) + 'static)>` to implement `Sync` [INFO] [stdout] note: required because it appears within the type `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Subcommand` [INFO] [stdout] --> src/cli/args.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct Subcommand { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: shared static variables must have a type that implements `Sync` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `col_begin_end` has an incompatible type for trait [INFO] [stdout] --> src/format/str.rs:131:48 [INFO] [stdout] | [INFO] [stdout] 131 | fn col_begin_end(&self, begin: usize, end: Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ expected `usize`, found `std::option::Option` [INFO] [stdout] | [INFO] [stdout] note: type in trait [INFO] [stdout] --> src/format/str.rs:65:48 [INFO] [stdout] | [INFO] [stdout] 65 | fn col_begin_end(&self, begin: usize, end: usize) -> String; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: expected signature `fn(&&_, _, usize) -> std::string::String` [INFO] [stdout] found signature `fn(&&_, _, std::option::Option) -> std::string::String` [INFO] [stdout] help: change the parameter type to match the trait [INFO] [stdout] | [INFO] [stdout] 131 - fn col_begin_end(&self, begin: usize, end: Option) -> String { [INFO] [stdout] 131 + fn col_begin_end(&self, begin: usize, end: usize) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `col_begin_end` has an incompatible type for trait [INFO] [stdout] --> src/format/str.rs:131:48 [INFO] [stdout] | [INFO] [stdout] 131 | fn col_begin_end(&self, begin: usize, end: Option) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ expected `usize`, found `std::option::Option` [INFO] [stdout] | [INFO] [stdout] note: type in trait [INFO] [stdout] --> src/format/str.rs:65:48 [INFO] [stdout] | [INFO] [stdout] 65 | fn col_begin_end(&self, begin: usize, end: usize) -> String; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: expected signature `fn(&&_, _, usize) -> std::string::String` [INFO] [stdout] found signature `fn(&&_, _, std::option::Option) -> std::string::String` [INFO] [stdout] help: change the parameter type to match the trait [INFO] [stdout] | [INFO] [stdout] 131 - fn col_begin_end(&self, begin: usize, end: Option) -> String { [INFO] [stdout] 131 + fn col_begin_end(&self, begin: usize, end: usize) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: expected `fn(OsString) -> Result` to return `String`, but it returns `Result` [INFO] [stdout] --> src/os/unix/xattr.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl XattrFunctions for UnixXattr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ expected `String`, found `Result` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `std::string::String` [INFO] [stdout] found enum `Result` [INFO] [stdout] = note: required for `std::iter::Map Result>` to implement `Iterator` [INFO] [stdout] note: required by a bound in `XattrFunctions` [INFO] [stdout] --> src/filesystem/xattr.rs:5:38 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait XattrFunctions> { [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `XattrFunctions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: expected `fn(OsString) -> Result` to return `String`, but it returns `Result` [INFO] [stdout] --> src/os/unix/xattr.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl XattrFunctions for UnixXattr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ expected `String`, found `Result` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `std::string::String` [INFO] [stdout] found enum `Result` [INFO] [stdout] = note: required for `std::iter::Map Result>` to implement `Iterator` [INFO] [stdout] note: required by a bound in `XattrFunctions` [INFO] [stdout] --> src/filesystem/xattr.rs:5:38 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait XattrFunctions> { [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `XattrFunctions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: lifetime parameter `'a` is never used [INFO] [stdout] --> src/collections/mrucache.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ unused lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0392]: lifetime parameter `'a` is never used [INFO] [stdout] --> src/collections/mrucache.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ unused lifetime parameter [INFO] [stdout] | [INFO] [stdout] = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K, V> NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::hash::Hash, V> NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K, V> NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::hash::Hash, V> NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K, V> NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::cmp::Eq, V> NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K, V> NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::cmp::Eq, V> NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:35:29 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:35:29 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:35:29 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: method not compatible with trait [INFO] [stdout] --> src/collections/mrucache.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | fn next(&'a mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch [INFO] [stdout] | [INFO] [stdout] = note: expected signature `fn(&mut NodeIter<'_, _, _>) -> std::option::Option<_>` [INFO] [stdout] found signature `fn(&'a mut NodeIter<'_, _, _>) -> std::option::Option<_>` [INFO] [stdout] note: the anonymous lifetime as defined here... [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:75:13 [INFO] [stdout] note: ...does not necessarily outlive the lifetime `'a` as defined here [INFO] [stdout] --> src/collections/mrucache.rs:35:6 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:35:29 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: method not compatible with trait [INFO] [stdout] --> src/collections/mrucache.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | fn next(&'a mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch [INFO] [stdout] | [INFO] [stdout] = note: expected signature `fn(&mut NodeIter<'_, _, _>) -> std::option::Option<_>` [INFO] [stdout] found signature `fn(&'a mut NodeIter<'_, _, _>) -> std::option::Option<_>` [INFO] [stdout] note: the anonymous lifetime as defined here... [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:75:13 [INFO] [stdout] note: ...does not necessarily outlive the lifetime `'a` as defined here [INFO] [stdout] --> src/collections/mrucache.rs:35:6 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:15:47 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(key: Arc, value: Arc) -> Self { [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:15:47 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(key: Arc, value: Arc) -> Self { [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:15:47 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(key: Arc, value: Arc) -> Self { [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:15:47 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(key: Arc, value: Arc) -> Self { [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:30:33 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn new(head: Option>>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::hash::Hash, V> NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:30:33 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn new(head: Option>>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::hash::Hash, V> NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:30:33 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn new(head: Option>>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::cmp::Eq, V> NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the parameter type `K` may not live long enough [INFO] [stdout] --> src/collections/mrucache.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | -- the parameter type `K` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] 36 | type Item = (&'a K, &'a V); [INFO] [stdout] | ^^^^^^^^^^^^^^ ...so that the reference type `&'a K` does not outlive the data it points at [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: 'a, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:30:33 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn new(head: Option>>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::cmp::Eq, V> NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the parameter type `V` may not live long enough [INFO] [stdout] --> src/collections/mrucache.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | -- the parameter type `V` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] 36 | type Item = (&'a K, &'a V); [INFO] [stdout] | ^^^^^^^^^^^^^^ ...so that the reference type `&'a V` does not outlive the data it points at [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V: 'a> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the parameter type `K` may not live long enough [INFO] [stdout] --> src/collections/mrucache.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | -- the parameter type `K` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] 36 | type Item = (&'a K, &'a V); [INFO] [stdout] | ^^^^^^^^^^^^^^ ...so that the reference type `&'a K` does not outlive the data it points at [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: 'a, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0309]: the parameter type `V` may not live long enough [INFO] [stdout] --> src/collections/mrucache.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | -- the parameter type `V` must be valid for the lifetime `'a` as defined here... [INFO] [stdout] 36 | type Item = (&'a K, &'a V); [INFO] [stdout] | ^^^^^^^^^^^^^^ ...so that the reference type `&'a V` does not outlive the data it points at [INFO] [stdout] | [INFO] [stdout] help: consider adding an explicit lifetime bound [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K, V: 'a> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | fn next(&'a mut self) -> Option { [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | fn next(&'a mut self) -> Option { [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | fn next(&'a mut self) -> Option { [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | fn next(&'a mut self) -> Option { [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | static QUOTE_REGEX: &Regex = regex_expect(r#"^("|').*?(? src/cli/query/lex.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | static QUOTE_REGEX: &Regex = regex_expect(r#"^("|').*?(? src/cli/query/lex.rs:51:27 [INFO] [stdout] | [INFO] [stdout] 51 | static ID_REGEX: &Regex = regex_expect(r"^[a-zA-Z0-9\-_]+\b"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:51:27 [INFO] [stdout] | [INFO] [stdout] 51 | static ID_REGEX: &Regex = regex_expect(r"^[a-zA-Z0-9\-_]+\b"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:55:6 [INFO] [stdout] | [INFO] [stdout] 55 | (regex_expect(r"^,"), LexemeKind::Comma), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:55:6 [INFO] [stdout] | [INFO] [stdout] 55 | (regex_expect(r"^,"), LexemeKind::Comma), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | (regex_expect(r"^\("), LexemeKind::LParen), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | (regex_expect(r"^\("), LexemeKind::LParen), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:57:6 [INFO] [stdout] | [INFO] [stdout] 57 | (regex_expect(r"^\)"), LexemeKind::RParen), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:57:6 [INFO] [stdout] | [INFO] [stdout] 57 | (regex_expect(r"^\)"), LexemeKind::RParen), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | (regex_expect(r"^=="), LexemeKind::Equals(EqualityKind::Strict)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:58:6 [INFO] [stdout] | [INFO] [stdout] 58 | (regex_expect(r"^=="), LexemeKind::Equals(EqualityKind::Strict)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:59:6 [INFO] [stdout] | [INFO] [stdout] 59 | (regex_expect(r"^="), LexemeKind::Equals(EqualityKind::Strict)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:59:6 [INFO] [stdout] | [INFO] [stdout] 59 | (regex_expect(r"^="), LexemeKind::Equals(EqualityKind::Strict)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:60:6 [INFO] [stdout] | [INFO] [stdout] 60 | (regex_expect(r"^is\b"), LexemeKind::Equals(EqualityKind::Strict)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:60:6 [INFO] [stdout] | [INFO] [stdout] 60 | (regex_expect(r"^is\b"), LexemeKind::Equals(EqualityKind::Strict)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:61:6 [INFO] [stdout] | [INFO] [stdout] 61 | (regex_expect(r"^in\b"), LexemeKind::In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:61:6 [INFO] [stdout] | [INFO] [stdout] 61 | (regex_expect(r"^in\b"), LexemeKind::In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:62:6 [INFO] [stdout] | [INFO] [stdout] 62 | (regex_expect(r"^and\b"), LexemeKind::And), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:63:6 [INFO] [stdout] | [INFO] [stdout] 63 | (regex_expect(r"^or\b"), LexemeKind::Or), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:62:6 [INFO] [stdout] | [INFO] [stdout] 62 | (regex_expect(r"^and\b"), LexemeKind::And), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:64:6 [INFO] [stdout] | [INFO] [stdout] 64 | (regex_expect(r"^matches\b"), LexemeKind::Equals(EqualityKind::Matches)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:63:6 [INFO] [stdout] | [INFO] [stdout] 63 | (regex_expect(r"^or\b"), LexemeKind::Or), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/args.rs:185:32 [INFO] [stdout] | [INFO] [stdout] 185 | pub static ASSIGN_RE: &Regex = regex_expect(r"^([a-zA-Z0-9_-]+)=(.+)$"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/query/lex.rs:64:6 [INFO] [stdout] | [INFO] [stdout] 64 | (regex_expect(r"^matches\b"), LexemeKind::Equals(EqualityKind::Matches)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/args.rs:185:32 [INFO] [stdout] | [INFO] [stdout] 185 | pub static ASSIGN_RE: &Regex = regex_expect(r"^([a-zA-Z0-9_-]+)=(.+)$"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/args.rs:187:29 [INFO] [stdout] | [INFO] [stdout] 187 | pub static KEY_RE: &Regex = regex_expect("^([a-zA-Z0-9_-])+$"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `regex_expect` in statics [INFO] [stdout] --> src/cli/args.rs:187:29 [INFO] [stdout] | [INFO] [stdout] 187 | pub static KEY_RE: &Regex = regex_expect("^([a-zA-Z0-9_-])+$"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0010]: allocations are not allowed in statics [INFO] [stdout] --> src/cli/args.rs:236:14 [INFO] [stdout] | [INFO] [stdout] 236 | aliases: vec!["--help", "-h"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ allocation not allowed in statics [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::slice::::into_vec::` in statics [INFO] [stdout] --> src/cli/args.rs:236:14 [INFO] [stdout] | [INFO] [stdout] 236 | aliases: vec!["--help", "-h"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0010]: allocations are not allowed in statics [INFO] [stdout] --> src/cli/args.rs:236:14 [INFO] [stdout] | [INFO] [stdout] 236 | aliases: vec!["--help", "-h"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ allocation not allowed in statics [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::slice::::into_vec::` in statics [INFO] [stdout] --> src/cli/args.rs:236:14 [INFO] [stdout] | [INFO] [stdout] 236 | aliases: vec!["--help", "-h"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0010]: allocations are not allowed in statics [INFO] [stdout] --> src/cli/args.rs:242:14 [INFO] [stdout] | [INFO] [stdout] 242 | aliases: vec!["--quiet", "q"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ allocation not allowed in statics [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::slice::::into_vec::` in statics [INFO] [stdout] --> src/cli/args.rs:242:14 [INFO] [stdout] | [INFO] [stdout] 242 | aliases: vec!["--quiet", "q"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0010]: allocations are not allowed in statics [INFO] [stdout] --> src/cli/args.rs:242:14 [INFO] [stdout] | [INFO] [stdout] 242 | aliases: vec!["--quiet", "q"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ allocation not allowed in statics [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::slice::::into_vec::` in statics [INFO] [stdout] --> src/cli/args.rs:242:14 [INFO] [stdout] | [INFO] [stdout] 242 | aliases: vec!["--quiet", "q"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0010]: allocations are not allowed in statics [INFO] [stdout] --> src/cli/args.rs:248:14 [INFO] [stdout] | [INFO] [stdout] 248 | aliases: vec!["--recursive", "-r"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ allocation not allowed in statics [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::slice::::into_vec::` in statics [INFO] [stdout] --> src/cli/args.rs:248:14 [INFO] [stdout] | [INFO] [stdout] 248 | aliases: vec!["--recursive", "-r"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0010]: allocations are not allowed in statics [INFO] [stdout] --> src/cli/args.rs:248:14 [INFO] [stdout] | [INFO] [stdout] 248 | aliases: vec!["--recursive", "-r"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ allocation not allowed in statics [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::slice::::into_vec::` in statics [INFO] [stdout] --> src/cli/args.rs:248:14 [INFO] [stdout] | [INFO] [stdout] 248 | aliases: vec!["--recursive", "-r"], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of static item `HELP_FLAG` [INFO] [stdout] --> src/cli/args.rs:261:5 [INFO] [stdout] | [INFO] [stdout] 261 | HELP_FLAG [INFO] [stdout] | ^^^^^^^^^ move occurs because `HELP_FLAG` has type `Flag`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 261 | HELP_FLAG.clone() [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of static item `HELP_FLAG` [INFO] [stdout] --> src/cli/args.rs:261:5 [INFO] [stdout] | [INFO] [stdout] 261 | HELP_FLAG [INFO] [stdout] | ^^^^^^^^^ move occurs because `HELP_FLAG` has type `Flag`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 261 | HELP_FLAG.clone() [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `toml::from_str::<'_, CargoToml>` in statics [INFO] [stdout] --> src/cli/program.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | static PARSED: CargoToml = toml::from_str(TOML) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `Result::::expect` in statics [INFO] [stdout] --> src/cli/program.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | .expect("The Cargo.toml used to create the program is malformed. This is theoretically impossible as Rust should stop compilation if Cargo.toml is invalid."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `toml::from_str::<'_, CargoToml>` in statics [INFO] [stdout] --> src/cli/program.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | static PARSED: CargoToml = toml::from_str(TOML) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `Result::::expect` in statics [INFO] [stdout] --> src/cli/program.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | .expect("The Cargo.toml used to create the program is malformed. This is theoretically impossible as Rust should stop compilation if Cargo.toml is invalid."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/get.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | on_parse: |e| {}, [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/get.rs:13:15: 13:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `Subcommand` has no field named `file_entry_expr` [INFO] [stdout] --> src/cli/subcommands/set.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | file_entry_expr: true, [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Subcommand` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `file_selector` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `Subcommand` has no field named `file_entry_expr` [INFO] [stdout] --> src/cli/subcommands/remove.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | file_entry_expr: true, [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Subcommand` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `file_selector` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing field `equals_name` in initializer of `Flag` [INFO] [stdout] --> src/cli/subcommands/remove.rs:13:56 [INFO] [stdout] | [INFO] [stdout] 13 | flags: vec![HELP_FLAG, QUIET_FLAG, RECURSIVE_FLAG, Flag { [INFO] [stdout] | ^^^^ missing `equals_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/get.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | on_parse: |e| {}, [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/get.rs:13:15: 13:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `Subcommand` has no field named `file_entry_expr` [INFO] [stdout] --> src/cli/subcommands/set.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | file_entry_expr: true, [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Subcommand` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `file_selector` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `Subcommand` has no field named `file_entry_expr` [INFO] [stdout] --> src/cli/subcommands/list.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | file_entry_expr: true, [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Subcommand` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `file_selector` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `Subcommand` has no field named `file_entry_expr` [INFO] [stdout] --> src/cli/subcommands/remove.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | file_entry_expr: true, [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Subcommand` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `file_selector` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing field `equals_name` in initializer of `Flag` [INFO] [stdout] --> src/cli/subcommands/remove.rs:13:56 [INFO] [stdout] | [INFO] [stdout] 13 | flags: vec![HELP_FLAG, QUIET_FLAG, RECURSIVE_FLAG, Flag { [INFO] [stdout] | ^^^^ missing `equals_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `Subcommand` has no field named `file_entry_expr` [INFO] [stdout] --> src/cli/subcommands/list.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | file_entry_expr: true, [INFO] [stdout] | ^^^^^^^^^^^^^^^ `Subcommand` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `file_selector` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `dimensions_stdout` in statics [INFO] [stdout] --> src/cli/print.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | static WIDTH: Option = term_size::dimensions_stdout().map(|x| x.1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::option::Option::<(usize, usize)>::map::` in statics [INFO] [stdout] --> src/cli/print.rs:13:62 [INFO] [stdout] | [INFO] [stdout] 13 | static WIDTH: Option = term_size::dimensions_stdout().map(|x| x.1); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const associated function `MRUCache::::new` in statics [INFO] [stdout] --> src/format/re.rs:9:62 [INFO] [stdout] | [INFO] [stdout] 9 | static RE_CACHE: Mutex> = Mutex::new(MRUCache::new(RE_CACHE_LEN)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const function `dimensions_stdout` in statics [INFO] [stdout] --> src/cli/print.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | static WIDTH: Option = term_size::dimensions_stdout().map(|x| x.1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const method `std::option::Option::<(usize, usize)>::map::` in statics [INFO] [stdout] --> src/cli/print.rs:13:62 [INFO] [stdout] | [INFO] [stdout] 13 | static WIDTH: Option = term_size::dimensions_stdout().map(|x| x.1); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0283]: type annotations needed [INFO] [stdout] --> src/cli/query/lex.rs:45:11 [INFO] [stdout] | [INFO] [stdout] 45 | match serde_json::from_str(&slice[0..quot.end()]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `from_str` [INFO] [stdout] | [INFO] [stdout] = note: cannot satisfy `_: Deserialize<'_>` [INFO] [stdout] = help: the following types implement trait `Deserialize<'de>`: [INFO] [stdout] &'a [u8] [INFO] [stdout] &'a std::path::Path [INFO] [stdout] &'a str [INFO] [stdout] () [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 132 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.60/src/de.rs:2584:8 [INFO] [stdout] | [INFO] [stdout] 2582 | pub fn from_str<'a, T>(s: &'a str) -> Result [INFO] [stdout] | -------- required by a bound in this function [INFO] [stdout] 2583 | where [INFO] [stdout] 2584 | T: de::Deserialize<'a>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str` [INFO] [stdout] help: consider specifying the generic argument [INFO] [stdout] | [INFO] [stdout] 45 | match serde_json::from_str::(&slice[0..quot.end()]) { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/lex.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 71 | if let Some(m) = re.find(slice) { [INFO] [stdout] | ^^^^^^^ -------------- this expression has type `Result>, fancy_regex::Error>` [INFO] [stdout] | | [INFO] [stdout] | expected `Result>, Error>`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result>, fancy_regex::Error>` [INFO] [stdout] found enum `std::option::Option<_>` [INFO] [stdout] help: try wrapping the pattern in `Ok` [INFO] [stdout] | [INFO] [stdout] 71 | if let Ok(Some(m)) = re.find(slice) { [INFO] [stdout] | +++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0015]: cannot call non-const associated function `MRUCache::::new` in statics [INFO] [stdout] --> src/format/re.rs:9:62 [INFO] [stdout] | [INFO] [stdout] 9 | static RE_CACHE: Mutex> = Mutex::new(MRUCache::new(RE_CACHE_LEN)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: calls in statics are limited to constant functions, tuple structs and tuple variants [INFO] [stdout] = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/lex.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | if let Some(m) = ID_REGEX.find(slice) { [INFO] [stdout] | ^^^^^^^ -------------------- this expression has type `Result>, fancy_regex::Error>` [INFO] [stdout] | | [INFO] [stdout] | expected `Result>, Error>`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result>, fancy_regex::Error>` [INFO] [stdout] found enum `std::option::Option<_>` [INFO] [stdout] help: try wrapping the pattern in `Ok` [INFO] [stdout] | [INFO] [stdout] 85 | if let Ok(Some(m)) = ID_REGEX.find(slice) { [INFO] [stdout] | +++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/lex.rs:97:29 [INFO] [stdout] | [INFO] [stdout] 97 | [("(", index), (arg, index), (")", index + arg.len() - 1)] [INFO] [stdout] | ^^^ expected `&str`, found `String` [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 97 | [("(", index), (&arg, index), (")", index + arg.len() - 1)] [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/cli/query/lex.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 96 | / if arg.contains(" ") { [INFO] [stdout] 97 | | [("(", index), (arg, index), (")", index + arg.len() - 1)] [INFO] [stdout] | | ---------------------------------------------------------- expected because of this [INFO] [stdout] 98 | | } [INFO] [stdout] 99 | | else { [INFO] [stdout] 100 | | [(arg, index)] [INFO] [stdout] | | ^^^^^^^^^^^^^^ expected `[(&str, usize); 3]`, found `[(String, usize); 1]` [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________- `if` and `else` have incompatible types [INFO] [stdout] | [INFO] [stdout] = note: expected array `[(&str, usize); 3]` [INFO] [stdout] found array `[(std::string::String, usize); 1]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0283]: type annotations needed [INFO] [stdout] --> src/cli/query/lex.rs:45:11 [INFO] [stdout] | [INFO] [stdout] 45 | match serde_json::from_str(&slice[0..quot.end()]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `from_str` [INFO] [stdout] | [INFO] [stdout] = note: cannot satisfy `_: Deserialize<'_>` [INFO] [stdout] = help: the following types implement trait `Deserialize<'de>`: [INFO] [stdout] &'a [u8] [INFO] [stdout] &'a std::path::Path [INFO] [stdout] &'a str [INFO] [stdout] () [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 132 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.60/src/de.rs:2584:8 [INFO] [stdout] | [INFO] [stdout] 2582 | pub fn from_str<'a, T>(s: &'a str) -> Result [INFO] [stdout] | -------- required by a bound in this function [INFO] [stdout] 2583 | where [INFO] [stdout] 2584 | T: de::Deserialize<'a>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str` [INFO] [stdout] help: consider specifying the generic argument [INFO] [stdout] | [INFO] [stdout] 45 | match serde_json::from_str::(&slice[0..quot.end()]) { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/lex.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 71 | if let Some(m) = re.find(slice) { [INFO] [stdout] | ^^^^^^^ -------------- this expression has type `Result>, fancy_regex::Error>` [INFO] [stdout] | | [INFO] [stdout] | expected `Result>, Error>`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result>, fancy_regex::Error>` [INFO] [stdout] found enum `std::option::Option<_>` [INFO] [stdout] help: try wrapping the pattern in `Ok` [INFO] [stdout] | [INFO] [stdout] 71 | if let Ok(Some(m)) = re.find(slice) { [INFO] [stdout] | +++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/lex.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | if let Some(m) = ID_REGEX.find(slice) { [INFO] [stdout] | ^^^^^^^ -------------------- this expression has type `Result>, fancy_regex::Error>` [INFO] [stdout] | | [INFO] [stdout] | expected `Result>, Error>`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result>, fancy_regex::Error>` [INFO] [stdout] found enum `std::option::Option<_>` [INFO] [stdout] help: try wrapping the pattern in `Ok` [INFO] [stdout] | [INFO] [stdout] 85 | if let Ok(Some(m)) = ID_REGEX.find(slice) { [INFO] [stdout] | +++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/lex.rs:97:29 [INFO] [stdout] | [INFO] [stdout] 97 | [("(", index), (arg, index), (")", index + arg.len() - 1)] [INFO] [stdout] | ^^^ expected `&str`, found `String` [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 97 | [("(", index), (&arg, index), (")", index + arg.len() - 1)] [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/cli/query/lex.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 96 | / if arg.contains(" ") { [INFO] [stdout] 97 | | [("(", index), (arg, index), (")", index + arg.len() - 1)] [INFO] [stdout] | | ---------------------------------------------------------- expected because of this [INFO] [stdout] 98 | | } [INFO] [stdout] 99 | | else { [INFO] [stdout] 100 | | [(arg, index)] [INFO] [stdout] | | ^^^^^^^^^^^^^^ expected `[(&str, usize); 3]`, found `[(String, usize); 1]` [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________- `if` and `else` have incompatible types [INFO] [stdout] | [INFO] [stdout] = note: expected array `[(&str, usize); 3]` [INFO] [stdout] found array `[(std::string::String, usize); 1]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `std::option::Option>>` cannot be built from an iterator over elements of type `Lexeme<'_, '_>` [INFO] [stdout] --> src/cli/query/lexeme.rs:109:59 [INFO] [stdout] | [INFO] [stdout] 109 | (0..n).map(|_| self.lexemes.pop_front().unwrap()).collect() [INFO] [stdout] | ^^^^^^^ value of type `std::option::Option>>` cannot be built from `std::iter::Iterator>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator>` is not implemented for `std::option::Option>>` [INFO] [stdout] but trait `FromIterator>>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `std::option::Option>`, found `Lexeme<'_, '_>` [INFO] [stdout] note: the method call chain might not have had the expected associated types [INFO] [stdout] --> src/cli/query/lexeme.rs:109:16 [INFO] [stdout] | [INFO] [stdout] 109 | (0..n).map(|_| self.lexemes.pop_front().unwrap()).collect() [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Iterator::Item` is `Lexeme<'_, '_>` here [INFO] [stdout] | | [INFO] [stdout] | this expression has type `Range` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:1972:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try` [INFO] [stdout] --> src/cli/query/parse.rs:124:34 [INFO] [stdout] | [INFO] [stdout] 124 | let values = parse_values(lexemes)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `Vec` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Try` is not implemented for `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `std::option::Option>>` cannot be built from an iterator over elements of type `Lexeme<'_, '_>` [INFO] [stdout] --> src/cli/query/lexeme.rs:109:59 [INFO] [stdout] | [INFO] [stdout] 109 | (0..n).map(|_| self.lexemes.pop_front().unwrap()).collect() [INFO] [stdout] | ^^^^^^^ value of type `std::option::Option>>` cannot be built from `std::iter::Iterator>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator>` is not implemented for `std::option::Option>>` [INFO] [stdout] but trait `FromIterator>>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `std::option::Option>`, found `Lexeme<'_, '_>` [INFO] [stdout] note: the method call chain might not have had the expected associated types [INFO] [stdout] --> src/cli/query/lexeme.rs:109:16 [INFO] [stdout] | [INFO] [stdout] 109 | (0..n).map(|_| self.lexemes.pop_front().unwrap()).collect() [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Iterator::Item` is `Lexeme<'_, '_>` here [INFO] [stdout] | | [INFO] [stdout] | this expression has type `Range` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:1972:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try` [INFO] [stdout] --> src/cli/query/parse.rs:124:34 [INFO] [stdout] | [INFO] [stdout] 124 | let values = parse_values(lexemes)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `Vec` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Try` is not implemented for `Vec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `token` found for enum `std::option::Option` in the current scope [INFO] [stdout] --> src/cli/query/parse.rs:150:79 [INFO] [stdout] | [INFO] [stdout] 150 | Ok(Factor::KeyEqualsValue((tok.token().to_owned(), e, val.token().to_owned()))) [INFO] [stdout] | ^^^^^ method not found in `Option>` [INFO] [stdout] | [INFO] [stdout] note: the method `token` exists on the type `Lexeme<'_, '_>` [INFO] [stdout] --> src/cli/query/lexeme.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn token(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider using `Option::expect` to unwrap the `Lexeme<'_, '_>` value, panicking if the value is an `Option::None` [INFO] [stdout] | [INFO] [stdout] 150 | Ok(Factor::KeyEqualsValue((tok.token().to_owned(), e, val.expect("REASON").token().to_owned()))) [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `token` found for enum `std::option::Option` in the current scope [INFO] [stdout] --> src/cli/query/parse.rs:150:79 [INFO] [stdout] | [INFO] [stdout] 150 | Ok(Factor::KeyEqualsValue((tok.token().to_owned(), e, val.token().to_owned()))) [INFO] [stdout] | ^^^^^ method not found in `Option>` [INFO] [stdout] | [INFO] [stdout] note: the method `token` exists on the type `Lexeme<'_, '_>` [INFO] [stdout] --> src/cli/query/lexeme.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn token(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: consider using `Option::expect` to unwrap the `Lexeme<'_, '_>` value, panicking if the value is an `Option::None` [INFO] [stdout] | [INFO] [stdout] 150 | Ok(Factor::KeyEqualsValue((tok.token().to_owned(), e, val.expect("REASON").token().to_owned()))) [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `add` found for struct `Vec<_>` in the current scope [INFO] [stdout] --> src/cli/query/parse.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | ret.add(s.token().to_owned()); [INFO] [stdout] | ^^^ method not found in `Vec<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/args.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 21 | fn peek(&mut self) -> Option<&(String, usize)> { [INFO] [stdout] | ------------------------ expected `std::option::Option<&(std::string::String, usize)>` because of return type [INFO] [stdout] 22 | self.iter.peek() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `Option<&(String, usize)>`, found `Option<&&(String, usize)>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `std::option::Option<&(std::string::String, _)>` [INFO] [stdout] found enum `std::option::Option<&&(std::string::String, _)>` [INFO] [stdout] help: try using `.map(|v| &**v)` to convert `std::option::Option<&&(std::string::String, usize)>` to `std::option::Option<&(std::string::String, usize)>` [INFO] [stdout] | [INFO] [stdout] 22 | self.iter.peek().map(|v| &**v) [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/args.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | fn next(&mut self) -> Option { [INFO] [stdout] | ------------------ expected `std::option::Option<(std::string::String, usize)>` because of return type [INFO] [stdout] 30 | / self.iter.next().map(|x| { [INFO] [stdout] 31 | | self.index += 1; [INFO] [stdout] 32 | | x [INFO] [stdout] 33 | | }) [INFO] [stdout] | |__________^ expected `Option<(String, usize)>`, found `Option<&(String, usize)>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `std::option::Option<(std::string::String, _)>` [INFO] [stdout] found enum `std::option::Option<&(std::string::String, _)>` [INFO] [stdout] help: use `std::option::Option::cloned` to clone the value inside the `std::option::Option` [INFO] [stdout] | [INFO] [stdout] 33 | }).cloned() [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `Vec<&str>` cannot be built from an iterator over elements of type `&&str` [INFO] [stdout] --> src/cli/query/args.rs:40:42 [INFO] [stdout] | [INFO] [stdout] 40 | let a: Vec<&str> = a.into_iter().collect(); [INFO] [stdout] | ^^^^^^^ value of type `Vec<&str>` cannot be built from `std::iter::Iterator` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator<&&_>` is not implemented for `Vec<&str>` [INFO] [stdout] but trait `FromIterator<&_>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `str`, found `&str` [INFO] [stdout] note: the method call chain might not have had the expected associated types [INFO] [stdout] --> src/cli/query/args.rs:40:30 [INFO] [stdout] | [INFO] [stdout] 40 | let a: Vec<&str> = a.into_iter().collect(); [INFO] [stdout] | - ^^^^^^^^^^^ `Iterator::Item` is `&&str` here [INFO] [stdout] | | [INFO] [stdout] | this expression has type `&[&str]` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:1972:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/args.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | .map(|x| (x.long.trim_start_matches('-'), x)) [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `add` found for struct `Vec<_>` in the current scope [INFO] [stdout] --> src/cli/query/parse.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | ret.add(s.token().to_owned()); [INFO] [stdout] | ^^^ method not found in `Vec<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/args.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 21 | fn peek(&mut self) -> Option<&(String, usize)> { [INFO] [stdout] | ------------------------ expected `std::option::Option<&(std::string::String, usize)>` because of return type [INFO] [stdout] 22 | self.iter.peek() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `Option<&(String, usize)>`, found `Option<&&(String, usize)>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `std::option::Option<&(std::string::String, _)>` [INFO] [stdout] found enum `std::option::Option<&&(std::string::String, _)>` [INFO] [stdout] help: try using `.map(|v| &**v)` to convert `std::option::Option<&&(std::string::String, usize)>` to `std::option::Option<&(std::string::String, usize)>` [INFO] [stdout] | [INFO] [stdout] 22 | self.iter.peek().map(|v| &**v) [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `short` on type `&&Flag` [INFO] [stdout] --> src/cli/args.rs:69:23 [INFO] [stdout] | [INFO] [stdout] 69 | .filter(|x| x.short.is_some()) [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/query/args.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 29 | fn next(&mut self) -> Option { [INFO] [stdout] | ------------------ expected `std::option::Option<(std::string::String, usize)>` because of return type [INFO] [stdout] 30 | / self.iter.next().map(|x| { [INFO] [stdout] 31 | | self.index += 1; [INFO] [stdout] 32 | | x [INFO] [stdout] 33 | | }) [INFO] [stdout] | |__________^ expected `Option<(String, usize)>`, found `Option<&(String, usize)>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `std::option::Option<(std::string::String, _)>` [INFO] [stdout] found enum `std::option::Option<&(std::string::String, _)>` [INFO] [stdout] help: use `std::option::Option::cloned` to clone the value inside the `std::option::Option` [INFO] [stdout] | [INFO] [stdout] 33 | }).cloned() [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `short` on type `&Flag` [INFO] [stdout] --> src/cli/args.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | .map(|x| (x.short.unwrap().trim_start_matches('-'), x)) [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `Vec<&str>` cannot be built from an iterator over elements of type `&&str` [INFO] [stdout] --> src/cli/query/args.rs:40:42 [INFO] [stdout] | [INFO] [stdout] 40 | let a: Vec<&str> = a.into_iter().collect(); [INFO] [stdout] | ^^^^^^^ value of type `Vec<&str>` cannot be built from `std::iter::Iterator` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator<&&_>` is not implemented for `Vec<&str>` [INFO] [stdout] but trait `FromIterator<&_>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `str`, found `&str` [INFO] [stdout] note: the method call chain might not have had the expected associated types [INFO] [stdout] --> src/cli/query/args.rs:40:30 [INFO] [stdout] | [INFO] [stdout] 40 | let a: Vec<&str> = a.into_iter().collect(); [INFO] [stdout] | - ^^^^^^^^^^^ `Iterator::Item` is `&&str` here [INFO] [stdout] | | [INFO] [stdout] | this expression has type `&[&str]` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:1972:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0631]: type mismatch in function arguments [INFO] [stdout] --> src/cli/args.rs:128:53 [INFO] [stdout] | [INFO] [stdout] 54 | LexError(LexError), [INFO] [stdout] | -------- found signature defined here [INFO] [stdout] ... [INFO] [stdout] 128 | let query = parse(&mut lexemes).map_err(SubcommandParseError::LexError)?; [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected due to this [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: expected function signature `fn(query::parse::ParseError) -> _` [INFO] [stdout] found function signature `fn(LexError) -> _` [INFO] [stdout] note: required by a bound in `Result::::map_err` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/result.rs:853:5 [INFO] [stdout] help: consider wrapping the function in a closure [INFO] [stdout] | [INFO] [stdout] 128 | let query = parse(&mut lexemes).map_err(|arg0: query::parse::ParseError| SubcommandParseError::LexError(/* LexError */))?; [INFO] [stdout] | ++++++++++++++++++++++++++++++++ ++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/args.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | .map(|x| (x.long.trim_start_matches('-'), x)) [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `dyn FnOnce(SubcommandParseResults): std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `dyn FnOnce(SubcommandParseResults)` [INFO] [stdout] | [INFO] [stdout] = note: required for `Box` to implement `std::cmp::Eq` [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/cmp.rs:364:1 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `short` on type `&&Flag` [INFO] [stdout] --> src/cli/args.rs:69:23 [INFO] [stdout] | [INFO] [stdout] 69 | .filter(|x| x.short.is_some()) [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `short` on type `&Flag` [INFO] [stdout] --> src/cli/args.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | .map(|x| (x.short.unwrap().trim_start_matches('-'), x)) [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Box` [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `dyn FnOnce(SubcommandParseResults): Clone` is not satisfied [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `dyn FnOnce(SubcommandParseResults)` [INFO] [stdout] | [INFO] [stdout] = note: required for `Box` to implement `Clone` [INFO] [stdout] help: use parentheses to call this trait object [INFO] [stdout] | [INFO] [stdout] 182 | pub(crate) on_parse: Box(/* SubcommandParseResults */), [INFO] [stdout] | ++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` doesn't implement `Debug` [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `for<'a> StrSearcher<'a, '_>: DoubleEndedSearcher<'a>` is not satisfied [INFO] [stdout] --> src/cli/args.rs:219:35 [INFO] [stdout] | [INFO] [stdout] 219 | for a in arg.trim_matches(",").split(&split_re) { [INFO] [stdout] | ------------ ^^^ the trait `for<'a> DoubleEndedSearcher<'a>` is not implemented for `StrSearcher<'a, '_>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `DoubleEndedSearcher<'a>`: [INFO] [stdout] CharArrayRefSearcher<'a, 'b, N> [INFO] [stdout] CharArraySearcher<'a, N> [INFO] [stdout] CharPredicateSearcher<'a, F> [INFO] [stdout] CharSearcher<'a> [INFO] [stdout] CharSliceSearcher<'a, 'b> [INFO] [stdout] note: required by a bound in `core::str::::trim_matches` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/str/mod.rs:2308:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&&Regex: Pattern` is not satisfied [INFO] [stdout] --> src/cli/args.rs:219:46 [INFO] [stdout] | [INFO] [stdout] 219 | for a in arg.trim_matches(",").split(&split_re) { [INFO] [stdout] | ----- ^^^^^^^^^ the trait `Fn(char)` is not implemented for `Regex` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `Pattern`: [INFO] [stdout] &'b [char; N] [INFO] [stdout] &'b [char] [INFO] [stdout] &'b std::string::String [INFO] [stdout] &'b str [INFO] [stdout] &'c &'b str [INFO] [stdout] [char; N] [INFO] [stdout] char [INFO] [stdout] = note: required for `&Regex` to implement `FnOnce(char)` [INFO] [stdout] = note: required for `&&Regex` to implement `Pattern` [INFO] [stdout] note: required by a bound in `core::str::::split` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/str/mod.rs:1602:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: expected a `Fn(char)` closure, found `Regex` [INFO] [stdout] --> src/cli/args.rs:219:18 [INFO] [stdout] | [INFO] [stdout] 219 | for a in arg.trim_matches(",").split(&split_re) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an `Fn(char)` closure, found `Regex` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Fn(char)` is not implemented for `Regex` [INFO] [stdout] = help: the following other types implement trait `Pattern`: [INFO] [stdout] &'b [char; N] [INFO] [stdout] &'b [char] [INFO] [stdout] &'b std::string::String [INFO] [stdout] &'b str [INFO] [stdout] &'c &'b str [INFO] [stdout] [char; N] [INFO] [stdout] char [INFO] [stdout] = note: required for `&Regex` to implement `FnOnce(char)` [INFO] [stdout] = note: required for `&&Regex` to implement `Pattern` [INFO] [stdout] note: required by a bound in `std::str::Split` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/str/iter.rs:789:1 [INFO] [stdout] = note: this error originates in the macro `generate_pattern_iterators` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0631]: type mismatch in function arguments [INFO] [stdout] --> src/cli/args.rs:128:53 [INFO] [stdout] | [INFO] [stdout] 54 | LexError(LexError), [INFO] [stdout] | -------- found signature defined here [INFO] [stdout] ... [INFO] [stdout] 128 | let query = parse(&mut lexemes).map_err(SubcommandParseError::LexError)?; [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected due to this [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: expected function signature `fn(query::parse::ParseError) -> _` [INFO] [stdout] found function signature `fn(LexError) -> _` [INFO] [stdout] note: required by a bound in `Result::::map_err` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/result.rs:853:5 [INFO] [stdout] help: consider wrapping the function in a closure [INFO] [stdout] | [INFO] [stdout] 128 | let query = parse(&mut lexemes).map_err(|arg0: query::parse::ParseError| SubcommandParseError::LexError(/* LexError */))?; [INFO] [stdout] | ++++++++++++++++++++++++++++++++ ++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `str` with `&str` [INFO] [stdout] --> src/cli/args.rs:232:32 [INFO] [stdout] | [INFO] [stdout] 232 | KEYWORDS.iter().any(|kw| s == kw) [INFO] [stdout] | ^^ no implementation for `str == &str` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq<&str>` is not implemented for `str` [INFO] [stdout] = note: required for `&str` to implement `PartialEq<&&str>` [INFO] [stdout] help: consider dereferencing here [INFO] [stdout] | [INFO] [stdout] 232 | KEYWORDS.iter().any(|kw| s == *kw) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `&[&str]` cannot be built from an iterator over elements of type `&std::string::String` [INFO] [stdout] --> src/cli/args.rs:266:37 [INFO] [stdout] | [INFO] [stdout] 266 | let args = Args::new(raw.iter().collect()); [INFO] [stdout] | ^^^^^^^ value of type `&[&str]` cannot be built from `std::iter::Iterator` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator<&std::string::String>` is not implemented for `&[&str]` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:1972:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0023]: this pattern has 2 fields, but the corresponding tuple variant has 1 field [INFO] [stdout] --> src/cli/args.rs:337:54 [INFO] [stdout] | [INFO] [stdout] 56 | UnexpectedPositionalArgument(ArgError), [INFO] [stdout] | -------- tuple variant has 1 field [INFO] [stdout] ... [INFO] [stdout] 337 | UnexpectedPositionalArgument(_, _) => {} [INFO] [stdout] | ^ ^ expected 1 field, found 2 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0023]: this pattern has 3 fields, but the corresponding tuple variant has 2 fields [INFO] [stdout] --> src/cli/args.rs:338:49 [INFO] [stdout] | [INFO] [stdout] 57 | ExtraPositionalArgument(&'a Positional, ArgError), [INFO] [stdout] | -------------- -------- tuple variant has 2 fields [INFO] [stdout] ... [INFO] [stdout] 338 | ExtraPositionalArgument(_, _, _) => {} [INFO] [stdout] | ^ ^ ^ expected 2 fields, found 3 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `dyn FnOnce(SubcommandParseResults): std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | -- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::cmp::Eq` is not implemented for `dyn FnOnce(SubcommandParseResults)` [INFO] [stdout] | [INFO] [stdout] = note: required for `Box` to implement `std::cmp::Eq` [INFO] [stdout] note: required by a bound in `AssertParamIsEq` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/cmp.rs:364:1 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Box` [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `dyn FnOnce(SubcommandParseResults): Clone` is not satisfied [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `dyn FnOnce(SubcommandParseResults)` [INFO] [stdout] | [INFO] [stdout] = note: required for `Box` to implement `Clone` [INFO] [stdout] help: use parentheses to call this trait object [INFO] [stdout] | [INFO] [stdout] 182 | pub(crate) on_parse: Box(/* SubcommandParseResults */), [INFO] [stdout] | ++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn FnOnce(SubcommandParseResults) + 'static)` doesn't implement `Debug` [INFO] [stdout] --> src/cli/args.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 175 | #[derive(Eq, PartialEq, Clone, Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) on_parse: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn FnOnce(SubcommandParseResults) + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn FnOnce(SubcommandParseResults) + 'static)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `for<'a> StrSearcher<'a, '_>: DoubleEndedSearcher<'a>` is not satisfied [INFO] [stdout] --> src/cli/args.rs:219:35 [INFO] [stdout] | [INFO] [stdout] 219 | for a in arg.trim_matches(",").split(&split_re) { [INFO] [stdout] | ------------ ^^^ the trait `for<'a> DoubleEndedSearcher<'a>` is not implemented for `StrSearcher<'a, '_>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `DoubleEndedSearcher<'a>`: [INFO] [stdout] CharArrayRefSearcher<'a, 'b, N> [INFO] [stdout] CharArraySearcher<'a, N> [INFO] [stdout] CharPredicateSearcher<'a, F> [INFO] [stdout] CharSearcher<'a> [INFO] [stdout] CharSliceSearcher<'a, 'b> [INFO] [stdout] note: required by a bound in `core::str::::trim_matches` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/str/mod.rs:2308:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&&Regex: Pattern` is not satisfied [INFO] [stdout] --> src/cli/args.rs:219:46 [INFO] [stdout] | [INFO] [stdout] 219 | for a in arg.trim_matches(",").split(&split_re) { [INFO] [stdout] | ----- ^^^^^^^^^ the trait `Fn(char)` is not implemented for `Regex` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `Pattern`: [INFO] [stdout] &'b [char; N] [INFO] [stdout] &'b [char] [INFO] [stdout] &'b std::string::String [INFO] [stdout] &'b str [INFO] [stdout] &'c &'b str [INFO] [stdout] [char; N] [INFO] [stdout] char [INFO] [stdout] = note: required for `&Regex` to implement `FnOnce(char)` [INFO] [stdout] = note: required for `&&Regex` to implement `Pattern` [INFO] [stdout] note: required by a bound in `core::str::::split` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/str/mod.rs:1602:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `join` exists for struct `Vec`, but its trait bounds were not satisfied [INFO] [stdout] --> src/cli/args.rs:308:124 [INFO] [stdout] | [INFO] [stdout] 308 | ... let or = lang::or(typos.iter().map(|x| x.0)).split(", ").map(|x| x.yellow().bold()).into_vec().join(", "); [INFO] [stdout] | ^^^^ method cannot be called on `Vec` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `[ColoredString]: std::slice::Join<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `arg` on type `LexError` [INFO] [stdout] --> src/cli/args.rs:332:87 [INFO] [stdout] | [INFO] [stdout] 332 | ... log().error(&format!("The token {0} was unrecognized.", a.arg.bold().red())); [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: expected a `Fn(char)` closure, found `Regex` [INFO] [stdout] --> src/cli/args.rs:219:18 [INFO] [stdout] | [INFO] [stdout] 219 | for a in arg.trim_matches(",").split(&split_re) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an `Fn(char)` closure, found `Regex` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Fn(char)` is not implemented for `Regex` [INFO] [stdout] = help: the following other types implement trait `Pattern`: [INFO] [stdout] &'b [char; N] [INFO] [stdout] &'b [char] [INFO] [stdout] &'b std::string::String [INFO] [stdout] &'b str [INFO] [stdout] &'c &'b str [INFO] [stdout] [char; N] [INFO] [stdout] char [INFO] [stdout] = note: required for `&Regex` to implement `FnOnce(char)` [INFO] [stdout] = note: required for `&&Regex` to implement `Pattern` [INFO] [stdout] note: required by a bound in `std::str::Split` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/str/iter.rs:789:1 [INFO] [stdout] = note: this error originates in the macro `generate_pattern_iterators` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `str` with `&str` [INFO] [stdout] --> src/cli/args.rs:232:32 [INFO] [stdout] | [INFO] [stdout] 232 | KEYWORDS.iter().any(|kw| s == kw) [INFO] [stdout] | ^^ no implementation for `str == &str` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq<&str>` is not implemented for `str` [INFO] [stdout] = note: required for `&str` to implement `PartialEq<&&str>` [INFO] [stdout] help: consider dereferencing here [INFO] [stdout] | [INFO] [stdout] 232 | KEYWORDS.iter().any(|kw| s == *kw) [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `&[&str]` cannot be built from an iterator over elements of type `&std::string::String` [INFO] [stdout] --> src/cli/args.rs:266:37 [INFO] [stdout] | [INFO] [stdout] 266 | let args = Args::new(raw.iter().collect()); [INFO] [stdout] | ^^^^^^^ value of type `&[&str]` cannot be built from `std::iter::Iterator` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator<&std::string::String>` is not implemented for `&[&str]` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/iterator.rs:1972:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/cli/args.rs:288:31 [INFO] [stdout] | [INFO] [stdout] 286 | ... let res = match parse_subcommand(sc, a, args.cmdline()) { [INFO] [stdout] | --------------------------------------------- `match` arms have incompatible types [INFO] [stdout] 287 | ... Ok(s) => s, [INFO] [stdout] | - this is found to be of type `SubcommandParseResults` [INFO] [stdout] 288 | ... Err(e) => match e { [INFO] [stdout] | _____________________^ [INFO] [stdout] 289 | | ... MissingFlagValue(e, a) => { [INFO] [stdout] 290 | | ... log().error(&format!("The flag {0} is missing a value. Specify {0}={1} or {0} {1}", a.arg.bold().yellow(), "value".gree... [INFO] [stdout] 291 | | ... log_cmdline(); [INFO] [stdout] ... | [INFO] [stdout] 339 | | ... NotEnoughPositionalArguments(_) => {} [INFO] [stdout] 340 | | ... } [INFO] [stdout] | |___________^ expected `SubcommandParseResults`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0023]: this pattern has 2 fields, but the corresponding tuple variant has 1 field [INFO] [stdout] --> src/cli/args.rs:337:54 [INFO] [stdout] | [INFO] [stdout] 56 | UnexpectedPositionalArgument(ArgError), [INFO] [stdout] | -------- tuple variant has 1 field [INFO] [stdout] ... [INFO] [stdout] 337 | UnexpectedPositionalArgument(_, _) => {} [INFO] [stdout] | ^ ^ expected 1 field, found 2 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0023]: this pattern has 3 fields, but the corresponding tuple variant has 2 fields [INFO] [stdout] --> src/cli/args.rs:338:49 [INFO] [stdout] | [INFO] [stdout] 57 | ExtraPositionalArgument(&'a Positional, ArgError), [INFO] [stdout] | -------------- -------- tuple variant has 2 fields [INFO] [stdout] ... [INFO] [stdout] 338 | ExtraPositionalArgument(_, _, _) => {} [INFO] [stdout] | ^ ^ ^ expected 2 fields, found 3 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `join` exists for struct `Vec`, but its trait bounds were not satisfied [INFO] [stdout] --> src/cli/args.rs:308:124 [INFO] [stdout] | [INFO] [stdout] 308 | ... let or = lang::or(typos.iter().map(|x| x.0)).split(", ").map(|x| x.yellow().bold()).into_vec().join(", "); [INFO] [stdout] | ^^^^ method cannot be called on `Vec` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `[ColoredString]: std::slice::Join<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `arg` on type `LexError` [INFO] [stdout] --> src/cli/args.rs:332:87 [INFO] [stdout] | [INFO] [stdout] 332 | ... log().error(&format!("The token {0} was unrecognized.", a.arg.bold().red())); [INFO] [stdout] | ^^^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/cli/args.rs:288:31 [INFO] [stdout] | [INFO] [stdout] 286 | ... let res = match parse_subcommand(sc, a, args.cmdline()) { [INFO] [stdout] | --------------------------------------------- `match` arms have incompatible types [INFO] [stdout] 287 | ... Ok(s) => s, [INFO] [stdout] | - this is found to be of type `SubcommandParseResults` [INFO] [stdout] 288 | ... Err(e) => match e { [INFO] [stdout] | _____________________^ [INFO] [stdout] 289 | | ... MissingFlagValue(e, a) => { [INFO] [stdout] 290 | | ... log().error(&format!("The flag {0} is missing a value. Specify {0}={1} or {0} {1}", a.arg.bold().yellow(), "value".gree... [INFO] [stdout] 291 | | ... log_cmdline(); [INFO] [stdout] ... | [INFO] [stdout] 339 | | ... NotEnoughPositionalArguments(_) => {} [INFO] [stdout] 340 | | ... } [INFO] [stdout] | |___________^ expected `SubcommandParseResults`, found `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `short` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | match f.short { [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:11:22 [INFO] [stdout] | [INFO] [stdout] 11 | Some(s) => f.long.to_owned() + ", " + s, [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | None => f.long.to_owned() [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:26:36 [INFO] [stdout] | [INFO] [stdout] 26 | global_flags.sort_by_key(|k| k.long); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:86:36 [INFO] [stdout] | [INFO] [stdout] 86 | global_flags.sort_by_key(|k| k.long); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0600]: cannot apply unary operator `-` to type `usize` [INFO] [stdout] --> src/cli/typo.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | v.sort_by_key(|x| -x.1); [INFO] [stdout] | ^^^^ cannot apply unary operator `-` [INFO] [stdout] | [INFO] [stdout] = note: unsigned values cannot be negated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `usize` by `f64` [INFO] [stdout] --> src/cli/typo.rs:11:54 [INFO] [stdout] | [INFO] [stdout] 11 | let nchars = f64::round(expected.chars().count() * threshold) as usize; [INFO] [stdout] | ^ no implementation for `usize * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `std::ops::Mul` is not implemented for `usize` [INFO] [stdout] = help: the following other types implement trait `std::ops::Mul`: [INFO] [stdout] `&usize` implements `std::ops::Mul` [INFO] [stdout] `&usize` implements `std::ops::Mul` [INFO] [stdout] `usize` implements `std::ops::Mul<&usize>` [INFO] [stdout] `usize` implements `std::ops::Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `short` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | match f.short { [INFO] [stdout] | ^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:11:22 [INFO] [stdout] | [INFO] [stdout] 11 | Some(s) => f.long.to_owned() + ", " + s, [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | None => f.long.to_owned() [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:26:36 [INFO] [stdout] | [INFO] [stdout] 26 | global_flags.sort_by_key(|k| k.long); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `long` on type `&Flag` [INFO] [stdout] --> src/cli/help.rs:86:36 [INFO] [stdout] | [INFO] [stdout] 86 | global_flags.sort_by_key(|k| k.long); [INFO] [stdout] | ^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `aliases`, `equals_name`, `description` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0600]: cannot apply unary operator `-` to type `usize` [INFO] [stdout] --> src/cli/typo.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | v.sort_by_key(|x| -x.1); [INFO] [stdout] | ^^^^ cannot apply unary operator `-` [INFO] [stdout] | [INFO] [stdout] = note: unsigned values cannot be negated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: cannot multiply `usize` by `f64` [INFO] [stdout] --> src/cli/typo.rs:11:54 [INFO] [stdout] | [INFO] [stdout] 11 | let nchars = f64::round(expected.chars().count() * threshold) as usize; [INFO] [stdout] | ^ no implementation for `usize * f64` [INFO] [stdout] | [INFO] [stdout] = help: the trait `std::ops::Mul` is not implemented for `usize` [INFO] [stdout] = help: the following other types implement trait `std::ops::Mul`: [INFO] [stdout] `&usize` implements `std::ops::Mul` [INFO] [stdout] `&usize` implements `std::ops::Mul` [INFO] [stdout] `usize` implements `std::ops::Mul<&usize>` [INFO] [stdout] `usize` implements `std::ops::Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot multiply `&str` by `usize` [INFO] [stdout] --> src/format/str.rs:132:26 [INFO] [stdout] | [INFO] [stdout] 132 | let spacer = " " * begin; [INFO] [stdout] | --- ^ ----- usize [INFO] [stdout] | | [INFO] [stdout] | &str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot multiply `&str` by `usize` [INFO] [stdout] --> src/format/str.rs:176:26 [INFO] [stdout] | [INFO] [stdout] 176 | let spacer = " " * begin; [INFO] [stdout] | --- ^ ----- usize [INFO] [stdout] | | [INFO] [stdout] | &str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | Node { [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | Node { [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | next: None, [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | next: None, [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | prev: None [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | prev: None [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:31:25 [INFO] [stdout] | [INFO] [stdout] 31 | NodeIter { cur: head } [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::hash::Hash, V> NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:31:25 [INFO] [stdout] | [INFO] [stdout] 31 | NodeIter { cur: head } [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::cmp::Eq, V> NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:31 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:31 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | self.cur = s.next.clone(); [INFO] [stdout] | ^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | self.cur = s.next.clone(); [INFO] [stdout] | ^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/collections/mrucache.rs:113:24 [INFO] [stdout] | [INFO] [stdout] 113 | Some(s.borrow().value.borrow()) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: try using a fully qualified path to specify the expected types [INFO] [stdout] | [INFO] [stdout] 113 - Some(s.borrow().value.borrow()) [INFO] [stdout] 113 + Some(<&mut Arc> as Borrow>::borrow(s).value.borrow()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return reference to temporary value [INFO] [stdout] --> src/cli/query/lexeme.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | &Lexeme{token: &self.token, kind: self.kind, cmdline_ptr: &self.cmdline, cmdline_index: self.cmdline_index} [INFO] [stdout] | ^---------------------------------------------------------------------------------------------------------- [INFO] [stdout] | || [INFO] [stdout] | |temporary value created here [INFO] [stdout] | returns a reference to data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/cli/query/parse.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(s) = lexemes.pop_kind(LexemeKind::Or) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/cli/query/parse.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | if let Some(s) = lexemes.pop_kind(LexemeKind::And) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot multiply `&str` by `usize` [INFO] [stdout] --> src/format/str.rs:132:26 [INFO] [stdout] | [INFO] [stdout] 132 | let spacer = " " * begin; [INFO] [stdout] | --- ^ ----- usize [INFO] [stdout] | | [INFO] [stdout] | &str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot multiply `&str` by `usize` [INFO] [stdout] --> src/format/str.rs:176:26 [INFO] [stdout] | [INFO] [stdout] 176 | let spacer = " " * begin; [INFO] [stdout] | --- ^ ----- usize [INFO] [stdout] | | [INFO] [stdout] | &str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | Node { [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `char_deque` [INFO] [stdout] --> src/cli/print.rs:137:28 [INFO] [stdout] | [INFO] [stdout] 124 | let mut char_deque = cmdline.chars().collect::>(); [INFO] [stdout] | -------------- move occurs because `char_deque` has type `VecDeque`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 127 | let print_top = || for (i, c) in char_deque.into_iter().enumerate() { [INFO] [stdout] | -- ---------- variable moved due to use in closure [INFO] [stdout] | | [INFO] [stdout] | value moved into closure here [INFO] [stdout] ... [INFO] [stdout] 137 | let print_bottom = || for (i, _) in char_deque.into_iter().enumerate() { [INFO] [stdout] | ^^ ---------- use occurs due to use in closure [INFO] [stdout] | | [INFO] [stdout] | value used here after move [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 127 | let print_top = || for (i, c) in char_deque.clone().into_iter().enumerate() { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `char_deque` [INFO] [stdout] --> src/cli/print.rs:150:23 [INFO] [stdout] | [INFO] [stdout] 124 | let mut char_deque = cmdline.chars().collect::>(); [INFO] [stdout] | -------------- move occurs because `char_deque` has type `VecDeque`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 137 | let print_bottom = || for (i, _) in char_deque.into_iter().enumerate() { [INFO] [stdout] | -- ---------- variable moved due to use in closure [INFO] [stdout] | | [INFO] [stdout] | value moved into closure here [INFO] [stdout] ... [INFO] [stdout] 150 | while char_deque.len() > w { [INFO] [stdout] | ^^^^^^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 137 | let print_bottom = || for (i, _) in char_deque.clone().into_iter().enumerate() { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0506]: cannot assign to `index` because it is borrowed [INFO] [stdout] --> src/cli/print.rs:153:25 [INFO] [stdout] | [INFO] [stdout] 125 | let end = || index + len; [INFO] [stdout] | -- ----- borrow occurs due to use in closure [INFO] [stdout] | | [INFO] [stdout] | `index` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 151 | if end() > char_deque.len() { [INFO] [stdout] | --- borrow later used here [INFO] [stdout] 152 | char_deque.pop_front(); [INFO] [stdout] 153 | index -= 1; [INFO] [stdout] | ^^^^^^^^^^ `index` is assigned to here but it was already borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | Node { [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | next: None, [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cli/lang.rs:30:43 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn and<'a, I: Iterator>(mut iter: I) -> String { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cli/lang.rs:34:42 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn or<'a, I: Iterator>(mut iter: I) -> String { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | next: None, [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | prev: None [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | prev: None [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 14 | impl Node { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:31:25 [INFO] [stdout] | [INFO] [stdout] 31 | NodeIter { cur: head } [INFO] [stdout] | ^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::hash::Hash, V> NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:31:25 [INFO] [stdout] | [INFO] [stdout] 31 | NodeIter { cur: head } [INFO] [stdout] | ^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `NodeIter` [INFO] [stdout] --> src/collections/mrucache.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct NodeIter<'a, K: Hash + Eq, V> { [INFO] [stdout] | ^^ required by this bound in `NodeIter` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 29 | impl<'a, K: std::cmp::Eq, V> NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:31 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:31 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | let (k, v) = (s.key.clone(), s.value.clone()); [INFO] [stdout] | ^^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: Hash` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | self.cur = s.next.clone(); [INFO] [stdout] | ^^^^^^ the trait `Hash` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::hash::Hash, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `K: std::cmp::Eq` is not satisfied [INFO] [stdout] --> src/collections/mrucache.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | self.cur = s.next.clone(); [INFO] [stdout] | ^^^^^^ the trait `std::cmp::Eq` is not implemented for `K` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Node` [INFO] [stdout] --> src/collections/mrucache.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | struct Node { [INFO] [stdout] | ^^ required by this bound in `Node` [INFO] [stdout] help: consider restricting type parameter `K` with trait `Eq` [INFO] [stdout] | [INFO] [stdout] 35 | impl<'a, K: std::cmp::Eq, V> Iterator for NodeIter<'a, K, V> { [INFO] [stdout] | ++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/collections/mrucache.rs:113:24 [INFO] [stdout] | [INFO] [stdout] 113 | Some(s.borrow().value.borrow()) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: try using a fully qualified path to specify the expected types [INFO] [stdout] | [INFO] [stdout] 113 - Some(s.borrow().value.borrow()) [INFO] [stdout] 113 + Some(<&mut Arc> as Borrow>::borrow(s).value.borrow()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/collections/mrucache.rs:148:19 [INFO] [stdout] | [INFO] [stdout] 148 | assert_eq!(v, Some(0)); [INFO] [stdout] | ^^^^^^^ expected `Option<&usize>`, found `Option<{integer}>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `std::option::Option<&usize>` [INFO] [stdout] found enum `std::option::Option<{integer}>` [INFO] [stdout] help: try using `.as_ref()` to convert `std::option::Option<{integer}>` to `std::option::Option<&usize>` [INFO] [stdout] | [INFO] [stdout] 148 | assert_eq!(v, Some(0).as_ref()); [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return reference to temporary value [INFO] [stdout] --> src/cli/query/lexeme.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | &Lexeme{token: &self.token, kind: self.kind, cmdline_ptr: &self.cmdline, cmdline_index: self.cmdline_index} [INFO] [stdout] | ^---------------------------------------------------------------------------------------------------------- [INFO] [stdout] | || [INFO] [stdout] | |temporary value created here [INFO] [stdout] | returns a reference to data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/cli/query/parse.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(s) = lexemes.pop_kind(LexemeKind::Or) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/cli/query/parse.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | if let Some(s) = lexemes.pop_kind(LexemeKind::And) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `char_deque` [INFO] [stdout] --> src/cli/print.rs:137:28 [INFO] [stdout] | [INFO] [stdout] 124 | let mut char_deque = cmdline.chars().collect::>(); [INFO] [stdout] | -------------- move occurs because `char_deque` has type `VecDeque`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 127 | let print_top = || for (i, c) in char_deque.into_iter().enumerate() { [INFO] [stdout] | -- ---------- variable moved due to use in closure [INFO] [stdout] | | [INFO] [stdout] | value moved into closure here [INFO] [stdout] ... [INFO] [stdout] 137 | let print_bottom = || for (i, _) in char_deque.into_iter().enumerate() { [INFO] [stdout] | ^^ ---------- use occurs due to use in closure [INFO] [stdout] | | [INFO] [stdout] | value used here after move [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 127 | let print_top = || for (i, c) in char_deque.clone().into_iter().enumerate() { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `char_deque` [INFO] [stdout] --> src/cli/print.rs:150:23 [INFO] [stdout] | [INFO] [stdout] 124 | let mut char_deque = cmdline.chars().collect::>(); [INFO] [stdout] | -------------- move occurs because `char_deque` has type `VecDeque`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 137 | let print_bottom = || for (i, _) in char_deque.into_iter().enumerate() { [INFO] [stdout] | -- ---------- variable moved due to use in closure [INFO] [stdout] | | [INFO] [stdout] | value moved into closure here [INFO] [stdout] ... [INFO] [stdout] 150 | while char_deque.len() > w { [INFO] [stdout] | ^^^^^^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 137 | let print_bottom = || for (i, _) in char_deque.clone().into_iter().enumerate() { [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0506]: cannot assign to `index` because it is borrowed [INFO] [stdout] --> src/cli/print.rs:153:25 [INFO] [stdout] | [INFO] [stdout] 125 | let end = || index + len; [INFO] [stdout] | -- ----- borrow occurs due to use in closure [INFO] [stdout] | | [INFO] [stdout] | `index` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 151 | if end() > char_deque.len() { [INFO] [stdout] | --- borrow later used here [INFO] [stdout] 152 | char_deque.pop_front(); [INFO] [stdout] 153 | index -= 1; [INFO] [stdout] | ^^^^^^^^^^ `index` is assigned to here but it was already borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cli/lang.rs:30:43 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn and<'a, I: Iterator>(mut iter: I) -> String { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cli/lang.rs:34:42 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn or<'a, I: Iterator>(mut iter: I) -> String { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `until` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/format/str.rs:75:16 [INFO] [stdout] | [INFO] [stdout] 75 | if until(c) { [INFO] [stdout] | ^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 71 | fn slice_until bool>(&self, mut until: F) -> &str { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `iter` [INFO] [stdout] --> src/format/str.rs:76:32 [INFO] [stdout] | [INFO] [stdout] 72 | let iter = self.char_iterator(); [INFO] [stdout] | ---- move occurs because `iter` has type `CharIterator<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 73 | [INFO] [stdout] 74 | for c in iter { [INFO] [stdout] | ---- `iter` moved due to this implicit call to `.into_iter()` [INFO] [stdout] 75 | if until(c) { [INFO] [stdout] 76 | return &self[..iter.position_bytes()] [INFO] [stdout] | ^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `iter` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/collect.rs:313:18 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `until` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/format/str.rs:87:16 [INFO] [stdout] | [INFO] [stdout] 87 | if until(c) { [INFO] [stdout] | ^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 83 | fn slice_from bool>(&self, mut until: F) -> &str { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `iter` [INFO] [stdout] --> src/format/str.rs:88:30 [INFO] [stdout] | [INFO] [stdout] 84 | let iter = self.char_iterator(); [INFO] [stdout] | ---- move occurs because `iter` has type `CharIterator<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 85 | [INFO] [stdout] 86 | for c in iter { [INFO] [stdout] | ---- `iter` moved due to this implicit call to `.into_iter()` [INFO] [stdout] 87 | if until(c) { [INFO] [stdout] 88 | return &self[iter.position_bytes()..] [INFO] [stdout] | ^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `iter` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/collect.rs:313:18 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `iter` [INFO] [stdout] --> src/format/str.rs:120:16 [INFO] [stdout] | [INFO] [stdout] 117 | let iter = self.char_iterator(); [INFO] [stdout] | ---- move occurs because `iter` has type `CharIterator<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 118 | [INFO] [stdout] 119 | for _ in iter { [INFO] [stdout] | ---- `iter` moved due to this implicit call to `.into_iter()` [INFO] [stdout] 120 | if iter.position_bytes() == ob { [INFO] [stdout] | ^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `iter` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/collect.rs:313:18 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*cache` as mutable more than once at a time [INFO] [stdout] --> src/format/re.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 15 | match cache.get(®ex.to_owned()) { [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] 16 | Some(r) => return r, [INFO] [stdout] | - returning this value requires that `*cache` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 21 | Ok(r) => cache.insert(regex.to_owned(), r), [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `lck` [INFO] [stdout] --> src/format/re.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 13 | let cache = lck.borrow_mut(); [INFO] [stdout] | --- `lck` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 21 | Ok(r) => cache.insert(regex.to_owned(), r), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/os/unix/xattr.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | fn get(p: &Path, key: &str) -> Result>> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/os/unix/xattr.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | fn get(p: &Path, key: &str) -> Result>> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/os/unix/xattr.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | fn set(p: &Path, key: &str, value: &[u8]) -> Result<()> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/os/unix/xattr.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 25 | fn set(p: &Path, key: &str, value: &[u8]) -> 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/os/unix/xattr.rs:25:33 [INFO] [stdout] | [INFO] [stdout] 25 | fn set(p: &Path, key: &str, value: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/os/unix/xattr.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | fn remove(p: &Path, key: &str) -> Result<()> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/os/unix/xattr.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | fn remove(p: &Path, key: &str) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0594]: cannot assign to data in an `Arc` [INFO] [stdout] --> src/collections/mrucache.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | tail.next = Some(rc_new_node.clone()); [INFO] [stdout] | ^^^^^^^^^ cannot assign [INFO] [stdout] | [INFO] [stdout] = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0594]: cannot assign to data in an `Arc` [INFO] [stdout] --> src/collections/mrucache.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | rc_new_node.prev = Some(tail.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ cannot assign [INFO] [stdout] | [INFO] [stdout] = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0594]: cannot assign to data in an `Arc` [INFO] [stdout] --> src/collections/mrucache.rs:88:17 [INFO] [stdout] | [INFO] [stdout] 88 | s.prev = None; [INFO] [stdout] | ^^^^^^ cannot assign [INFO] [stdout] | [INFO] [stdout] = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `rcv` [INFO] [stdout] --> src/collections/mrucache.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | rcv.borrow() [INFO] [stdout] | ---^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `rcv` is borrowed here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/set.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | on_parse: |_| {} [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/set.rs:13:15: 13:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/remove.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | on_parse: |_| {} [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/remove.rs:18:15: 18:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/list.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | on_parse: |e| {}, [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/list.rs:13:15: 13:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0010, E0015, E0023, E0053, E0063, E0271, E0277, E0282, E0283... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0010`. [INFO] [stdout] [INFO] [stderr] error: could not compile `meta` (bin "meta") due to 135 previous errors; 43 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0596]: cannot borrow `until` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/format/str.rs:75:16 [INFO] [stdout] | [INFO] [stdout] 75 | if until(c) { [INFO] [stdout] | ^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 71 | fn slice_until bool>(&self, mut until: F) -> &str { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `iter` [INFO] [stdout] --> src/format/str.rs:76:32 [INFO] [stdout] | [INFO] [stdout] 72 | let iter = self.char_iterator(); [INFO] [stdout] | ---- move occurs because `iter` has type `CharIterator<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 73 | [INFO] [stdout] 74 | for c in iter { [INFO] [stdout] | ---- `iter` moved due to this implicit call to `.into_iter()` [INFO] [stdout] 75 | if until(c) { [INFO] [stdout] 76 | return &self[..iter.position_bytes()] [INFO] [stdout] | ^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `iter` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/collect.rs:313:18 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `until` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/format/str.rs:87:16 [INFO] [stdout] | [INFO] [stdout] 87 | if until(c) { [INFO] [stdout] | ^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 83 | fn slice_from bool>(&self, mut until: F) -> &str { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `iter` [INFO] [stdout] --> src/format/str.rs:88:30 [INFO] [stdout] | [INFO] [stdout] 84 | let iter = self.char_iterator(); [INFO] [stdout] | ---- move occurs because `iter` has type `CharIterator<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 85 | [INFO] [stdout] 86 | for c in iter { [INFO] [stdout] | ---- `iter` moved due to this implicit call to `.into_iter()` [INFO] [stdout] 87 | if until(c) { [INFO] [stdout] 88 | return &self[iter.position_bytes()..] [INFO] [stdout] | ^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `iter` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/collect.rs:313:18 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `iter` [INFO] [stdout] --> src/format/str.rs:120:16 [INFO] [stdout] | [INFO] [stdout] 117 | let iter = self.char_iterator(); [INFO] [stdout] | ---- move occurs because `iter` has type `CharIterator<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 118 | [INFO] [stdout] 119 | for _ in iter { [INFO] [stdout] | ---- `iter` moved due to this implicit call to `.into_iter()` [INFO] [stdout] 120 | if iter.position_bytes() == ob { [INFO] [stdout] | ^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `iter` [INFO] [stdout] --> /rustc/121a90d34197f711021eeb158e7f4184b8be8ceb/library/core/src/iter/traits/collect.rs:313:18 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*cache` as mutable more than once at a time [INFO] [stdout] --> src/format/re.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 15 | match cache.get(®ex.to_owned()) { [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] 16 | Some(r) => return r, [INFO] [stdout] | - returning this value requires that `*cache` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 21 | Ok(r) => cache.insert(regex.to_owned(), r), [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `lck` [INFO] [stdout] --> src/format/re.rs:21:18 [INFO] [stdout] | [INFO] [stdout] 13 | let cache = lck.borrow_mut(); [INFO] [stdout] | --- `lck` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 21 | Ok(r) => cache.insert(regex.to_owned(), r), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/os/unix/xattr.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | fn get(p: &Path, key: &str) -> Result>> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/os/unix/xattr.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | fn get(p: &Path, key: &str) -> Result>> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/os/unix/xattr.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | fn set(p: &Path, key: &str, value: &[u8]) -> Result<()> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/os/unix/xattr.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 25 | fn set(p: &Path, key: &str, value: &[u8]) -> 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/os/unix/xattr.rs:25:33 [INFO] [stdout] | [INFO] [stdout] 25 | fn set(p: &Path, key: &str, value: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/os/unix/xattr.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | fn remove(p: &Path, key: &str) -> Result<()> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/os/unix/xattr.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | fn remove(p: &Path, key: &str) -> Result<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0594]: cannot assign to data in an `Arc` [INFO] [stdout] --> src/collections/mrucache.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | tail.next = Some(rc_new_node.clone()); [INFO] [stdout] | ^^^^^^^^^ cannot assign [INFO] [stdout] | [INFO] [stdout] = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0594]: cannot assign to data in an `Arc` [INFO] [stdout] --> src/collections/mrucache.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | rc_new_node.prev = Some(tail.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ cannot assign [INFO] [stdout] | [INFO] [stdout] = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0594]: cannot assign to data in an `Arc` [INFO] [stdout] --> src/collections/mrucache.rs:88:17 [INFO] [stdout] | [INFO] [stdout] 88 | s.prev = None; [INFO] [stdout] | ^^^^^^ cannot assign [INFO] [stdout] | [INFO] [stdout] = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `rcv` [INFO] [stdout] --> src/collections/mrucache.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | rcv.borrow() [INFO] [stdout] | ---^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] | `rcv` is borrowed here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/set.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | on_parse: |_| {} [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/set.rs:13:15: 13:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/remove.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | on_parse: |_| {} [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/remove.rs:18:15: 18:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cli/subcommands/list.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | on_parse: |e| {}, [INFO] [stdout] | ^^^^^^ expected `Box`, found closure [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Box<(dyn FnOnce(SubcommandParseResults) + 'static)>` [INFO] [stdout] found closure `{closure@src/cli/subcommands/list.rs:13:15: 13:18}` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0010, E0015, E0023, E0053, E0063, E0271, E0277, E0282, E0283... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0010`. [INFO] [stdout] [INFO] [stderr] error: could not compile `meta` (bin "meta" test) due to 136 previous errors; 42 warnings emitted [INFO] running `Command { std: "docker" "inspect" "094a3329f364eecb1f82008d7545922f4369be806011fa556984c580657727d2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "094a3329f364eecb1f82008d7545922f4369be806011fa556984c580657727d2", kill_on_drop: false }` [INFO] [stdout] 094a3329f364eecb1f82008d7545922f4369be806011fa556984c580657727d2