[INFO] cloning repository https://github.com/ovidius72/opa-rust-compile [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ovidius72/opa-rust-compile" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fovidius72%2Fopa-rust-compile", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fovidius72%2Fopa-rust-compile'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 802afda79f3e92fbefad376b9f4352ff9fd42d9e [INFO] testing ovidius72/opa-rust-compile against 1.91.0 for beta-1.92-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fovidius72%2Fopa-rust-compile" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ovidius72/opa-rust-compile [INFO] finished tweaking git repo https://github.com/ovidius72/opa-rust-compile [INFO] tweaked toml for git repo https://github.com/ovidius72/opa-rust-compile written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ovidius72/opa-rust-compile on toolchain 1.91.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ovidius72/opa-rust-compile already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dd02fe55a670478480f8f48363cfd28eb4bff40e2d7a1a8e075f971c791a3da6 [INFO] running `Command { std: "docker" "start" "-a" "dd02fe55a670478480f8f48363cfd28eb4bff40e2d7a1a8e075f971c791a3da6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dd02fe55a670478480f8f48363cfd28eb4bff40e2d7a1a8e075f971c791a3da6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd02fe55a670478480f8f48363cfd28eb4bff40e2d7a1a8e075f971c791a3da6", kill_on_drop: false }` [INFO] [stdout] dd02fe55a670478480f8f48363cfd28eb4bff40e2d7a1a8e075f971c791a3da6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3a9d4dca147a742cbf91c5d349086ad49ac8b93474412930fdd7dde11c2cb1cc [INFO] running `Command { std: "docker" "start" "-a" "3a9d4dca147a742cbf91c5d349086ad49ac8b93474412930fdd7dde11c2cb1cc", kill_on_drop: false }` [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling rego-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected `{`, found `.` [INFO] [stdout] --> src/rego_rule.rs:58:68 [INFO] [stdout] | [INFO] [stdout] 58 | self.expressions = self.expressions.iter().map(|el| -> el.evaluate()) [INFO] [stdout] | ^ expected `{` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0283]: type annotations needed [INFO] [stdout] --> src/opa_compile_response_parser.rs:160:17 [INFO] [stdout] | [INFO] [stdout] 160 | let default_rule_body = queries [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | .collect(); [INFO] [stdout] | ------- type must be known at this point [INFO] [stdout] | [INFO] [stdout] = note: cannot satisfy `_: FromIterator<&Value>` [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/f8297e351a40c1439a467bbbb6879088047f50b3/library/core/src/iter/traits/iterator.rs:2014:5 [INFO] [stdout] help: consider giving `default_rule_body` an explicit type [INFO] [stdout] | [INFO] [stdout] 160 | let default_rule_body: Vec<_> = queries [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: a value of type `Vec<&RegoTerm>` cannot be built from an iterator over elements of type `RegoValue` [INFO] [stdout] --> src/rego_exp.rs:107:40 [INFO] [stdout] | [INFO] [stdout] 107 | ... .collect::>(); [INFO] [stdout] | ------- ^^^^^^^^^^^^^^ value of type `Vec<&RegoTerm>` cannot be built from `std::iter::Iterator` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromIterator` is not implemented for `Vec<&RegoTerm>` [INFO] [stdout] but trait `FromIterator<&RegoTerm>` is implemented for it [INFO] [stdout] = help: for that trait implementation, expected `&RegoTerm`, found `RegoValue` [INFO] [stdout] note: the method call chain might not have had the expected associated types [INFO] [stdout] --> src/rego_exp.rs:106:30 [INFO] [stdout] | [INFO] [stdout] 104 | let operands_values = operands [INFO] [stdout] | -------- this expression has type `Vec` [INFO] [stdout] 105 | .iter() [INFO] [stdout] | ------ `Iterator::Item` is `&RegoTerm` here [INFO] [stdout] 106 | .map(|op| op.get_value().unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `RegoValue` here [INFO] [stdout] note: required by a bound in `collect` [INFO] [stdout] --> /rustc/f8297e351a40c1439a467bbbb6879088047f50b3/library/core/src/iter/traits/iterator.rs:2014:5 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&&RegoTerm: Default` is not satisfied [INFO] [stdout] --> src/rego_exp.rs:109:67 [INFO] [stdout] | [INFO] [stdout] 109 | let left_operand = operands_values.get(0).unwrap_or_default("".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `&&RegoTerm` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `std::option::Option::::unwrap_or_default` [INFO] [stdout] --> /rustc/f8297e351a40c1439a467bbbb6879088047f50b3/library/core/src/option.rs:1087:5 [INFO] [stdout] help: consider removing this method call, as the receiver has type `Vec<&RegoTerm>` and `Vec<&RegoTerm>: Default` trivially holds [INFO] [stdout] | [INFO] [stdout] 109 - let left_operand = operands_values.get(0).unwrap_or_default("".to_string()); [INFO] [stdout] 109 + let left_operand = operands_values.unwrap_or_default("".to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> src/rego_exp.rs:109:67 [INFO] [stdout] | [INFO] [stdout] 109 | let left_operand = operands_values.get(0).unwrap_or_default("".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ -------------- unexpected argument of type `std::string::String` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/f8297e351a40c1439a467bbbb6879088047f50b3/library/core/src/option.rs:1087:18 [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 109 - let left_operand = operands_values.get(0).unwrap_or_default("".to_string()); [INFO] [stdout] 109 + let left_operand = operands_values.get(0).unwrap_or_default(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `&&RegoTerm: Default` is not satisfied [INFO] [stdout] --> src/rego_exp.rs:111:52 [INFO] [stdout] | [INFO] [stdout] 111 | ... operands_values.get(1).unwrap_or_default("".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `&&RegoTerm` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `std::option::Option::::unwrap_or_default` [INFO] [stdout] --> /rustc/f8297e351a40c1439a467bbbb6879088047f50b3/library/core/src/option.rs:1087:5 [INFO] [stdout] help: consider removing this method call, as the receiver has type `Vec<&RegoTerm>` and `Vec<&RegoTerm>: Default` trivially holds [INFO] [stdout] | [INFO] [stdout] 111 - operands_values.get(1).unwrap_or_default("".to_string()); [INFO] [stdout] 111 + operands_values.unwrap_or_default("".to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> src/rego_exp.rs:111:52 [INFO] [stdout] | [INFO] [stdout] 111 | ... operands_values.get(1).unwrap_or_default("".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ -------------- unexpected argument of type `std::string::String` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/f8297e351a40c1439a467bbbb6879088047f50b3/library/core/src/option.rs:1087:18 [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 111 - operands_values.get(1).unwrap_or_default("".to_string()); [INFO] [stdout] 111 + operands_values.get(1).unwrap_or_default(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&&RegoTerm` [INFO] [stdout] --> src/rego_exp.rs:114:57 [INFO] [stdout] | [INFO] [stdout] 114 | ... "=" => value = left_operand == right_operand, [INFO] [stdout] | ------------ ^^ ------------- &&RegoTerm [INFO] [stdout] | | [INFO] [stdout] | &&RegoTerm [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `RegoTerm` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct RegoTerm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `RegoTerm` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 + #[derive(PartialEq)] [INFO] [stdout] 21 | pub struct RegoTerm { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `!=` cannot be applied to type `&&RegoTerm` [INFO] [stdout] --> src/rego_exp.rs:115:58 [INFO] [stdout] | [INFO] [stdout] 115 | ... "!=" => value = left_operand != right_operand, [INFO] [stdout] | ------------ ^^ ------------- &&RegoTerm [INFO] [stdout] | | [INFO] [stdout] | &&RegoTerm [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialEq` might be missing for `RegoTerm` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct RegoTerm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialEq` [INFO] [stdout] help: consider annotating `RegoTerm` with `#[derive(PartialEq)]` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 + #[derive(PartialEq)] [INFO] [stdout] 21 | pub struct RegoTerm { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `>` cannot be applied to type `&&RegoTerm` [INFO] [stdout] --> src/rego_exp.rs:116:57 [INFO] [stdout] | [INFO] [stdout] 116 | ... ">" => value = left_operand > right_operand, [INFO] [stdout] | ------------ ^ ------------- &&RegoTerm [INFO] [stdout] | | [INFO] [stdout] | &&RegoTerm [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd` might be missing for `RegoTerm` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct RegoTerm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd` [INFO] [stdout] help: consider annotating `RegoTerm` with `#[derive(PartialEq, PartialOrd)]` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 + #[derive(PartialEq, PartialOrd)] [INFO] [stdout] 21 | pub struct RegoTerm { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `>=` cannot be applied to type `&&RegoTerm` [INFO] [stdout] --> src/rego_exp.rs:117:58 [INFO] [stdout] | [INFO] [stdout] 117 | ... ">=" => value = left_operand >= right_operand, [INFO] [stdout] | ------------ ^^ ------------- &&RegoTerm [INFO] [stdout] | | [INFO] [stdout] | &&RegoTerm [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd` might be missing for `RegoTerm` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct RegoTerm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd` [INFO] [stdout] help: consider annotating `RegoTerm` with `#[derive(PartialEq, PartialOrd)]` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 + #[derive(PartialEq, PartialOrd)] [INFO] [stdout] 21 | pub struct RegoTerm { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `<` cannot be applied to type `&&RegoTerm` [INFO] [stdout] --> src/rego_exp.rs:118:57 [INFO] [stdout] | [INFO] [stdout] 118 | ... "<" => value = left_operand < right_operand, [INFO] [stdout] | ------------ ^ ------------- &&RegoTerm [INFO] [stdout] | | [INFO] [stdout] | &&RegoTerm [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd` might be missing for `RegoTerm` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct RegoTerm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd` [INFO] [stdout] help: consider annotating `RegoTerm` with `#[derive(PartialEq, PartialOrd)]` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 + #[derive(PartialEq, PartialOrd)] [INFO] [stdout] 21 | pub struct RegoTerm { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `<=` cannot be applied to type `&&RegoTerm` [INFO] [stdout] --> src/rego_exp.rs:119:58 [INFO] [stdout] | [INFO] [stdout] 119 | ... "<=" => value = left_operand <= right_operand, [INFO] [stdout] | ------------ ^^ ------------- &&RegoTerm [INFO] [stdout] | | [INFO] [stdout] | &&RegoTerm [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd` might be missing for `RegoTerm` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct RegoTerm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd` [INFO] [stdout] help: consider annotating `RegoTerm` with `#[derive(PartialEq, PartialOrd)]` [INFO] [stdout] --> src/rego_term.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 + #[derive(PartialEq, PartialOrd)] [INFO] [stdout] 21 | pub struct RegoTerm { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/rego_exp.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/rego_exp.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 38 | ExpressionDataTermEnum::Single(t) => { [INFO] [stdout] | --------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 41 | ExpressionDataTermEnum::List(l) => { [INFO] [stdout] | ------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 56 | _ => { [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0594]: cannot assign to `operator`, as it is not declared as mutable [INFO] [stdout] --> src/rego_exp.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | operator = term.as_operator(); [INFO] [stdout] | ^^^^^^^^ cannot assign [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 142 | let mut operator = None; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `term.kind` which is behind a shared reference [INFO] [stdout] --> src/rego_exp.rs:149:36 [INFO] [stdout] | [INFO] [stdout] 149 | let raw_kind = term.kind; [INFO] [stdout] | ^^^^^^^^^ move occurs because `term.kind` has type `std::string::String`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 149 | let raw_kind = &term.kind; [INFO] [stdout] | + [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 149 | let raw_kind = term.kind.clone(); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `operands` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/rego_exp.rs:152:29 [INFO] [stdout] | [INFO] [stdout] 152 | ... operands.push(RegoTerm { [INFO] [stdout] | ^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 141 | let mut operands: Vec = vec![]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `raw_kind` [INFO] [stdout] --> src/rego_exp.rs:156:33 [INFO] [stdout] | [INFO] [stdout] 149 | let raw_kind = term.kind; [INFO] [stdout] | -------- move occurs because `raw_kind` has type `std::string::String`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 153 | kind: raw_kind, [INFO] [stdout] | -------- value moved here [INFO] [stdout] ... [INFO] [stdout] 156 | raw_kind, [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] 153 | kind: raw_kind.clone(), [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `operands` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/rego_exp.rs:159:33 [INFO] [stdout] | [INFO] [stdout] 159 | None => operands.push(*term), [INFO] [stdout] | ^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 141 | let mut operands: Vec = vec![]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `*term` which is behind a shared reference [INFO] [stdout] --> src/rego_exp.rs:159:47 [INFO] [stdout] | [INFO] [stdout] 159 | None => operands.push(*term), [INFO] [stdout] | ^^^^^ move occurs because `*term` has type `RegoTerm`, 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] 159 - None => operands.push(*term), [INFO] [stdout] 159 + None => operands.push(term.clone()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/rego_types.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | let v = RegoTermValue::Value(RegoValue::String("Ciao".to_string())); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0283, E0369, E0382, E0507, E0594, E0596. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rego-rust` (bin "rego-rust") due to 19 previous errors; 2 warnings emitted [INFO] running `Command { std: "docker" "inspect" "3a9d4dca147a742cbf91c5d349086ad49ac8b93474412930fdd7dde11c2cb1cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3a9d4dca147a742cbf91c5d349086ad49ac8b93474412930fdd7dde11c2cb1cc", kill_on_drop: false }` [INFO] [stdout] 3a9d4dca147a742cbf91c5d349086ad49ac8b93474412930fdd7dde11c2cb1cc