[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 beta-2025-10-28 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-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ovidius72/opa-rust-compile on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6498febeb0a991484bf5130bf3bae5fb464f1bd5368d4cef1349c9b6c3368ab2
[INFO] running `Command { std: "docker" "start" "-a" "6498febeb0a991484bf5130bf3bae5fb464f1bd5368d4cef1349c9b6c3368ab2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6498febeb0a991484bf5130bf3bae5fb464f1bd5368d4cef1349c9b6c3368ab2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6498febeb0a991484bf5130bf3bae5fb464f1bd5368d4cef1349c9b6c3368ab2", kill_on_drop: false }`
[INFO] [stdout] 6498febeb0a991484bf5130bf3bae5fb464f1bd5368d4cef1349c9b6c3368ab2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=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" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0e429fa5e8e2be5f91ccdd5ed67c788dfeb44755f15ea9cd518a107db7a93020
[INFO] running `Command { std: "docker" "start" "-a" "0e429fa5e8e2be5f91ccdd5ed67c788dfeb44755f15ea9cd518a107db7a93020", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling regex v1.11.1
[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/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/iter/traits/iterator.rs:2015: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::<Vec<&RegoTerm>>();
[INFO] [stdout]     |                        -------   ^^^^^^^^^^^^^^ value of type `Vec<&RegoTerm>` cannot be built from `std::iter::Iterator<Item=RegoValue>`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromIterator<RegoValue>` 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<RegoTerm>`
[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/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/iter/traits/iterator.rs:2015: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::<T>::unwrap_or_default`
[INFO] [stdout]    --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/option.rs:1092: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/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/option.rs:1092: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::<T>::unwrap_or_default`
[INFO] [stdout]    --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/option.rs:1092: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/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/option.rs:1092: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<RegoTerm> = 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<RegoTerm> = 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" "0e429fa5e8e2be5f91ccdd5ed67c788dfeb44755f15ea9cd518a107db7a93020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e429fa5e8e2be5f91ccdd5ed67c788dfeb44755f15ea9cd518a107db7a93020", kill_on_drop: false }`
[INFO] [stdout] 0e429fa5e8e2be5f91ccdd5ed67c788dfeb44755f15ea9cd518a107db7a93020
