[INFO] fetching crate rust-sc2 1.1.2... [INFO] checking rust-sc2-1.1.2 against try#23ffd2897cbb44320ca18dfe4d05dbacb37d55e0 for pr-115950 [INFO] extracting crate rust-sc2 1.1.2 into /workspace/builds/worker-3-tc2/source [INFO] validating manifest of crates.io crate rust-sc2 1.1.2 on toolchain 23ffd2897cbb44320ca18dfe4d05dbacb37d55e0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate rust-sc2 1.1.2 [INFO] finished tweaking crates.io crate rust-sc2 1.1.2 [INFO] tweaked toml for crates.io crate rust-sc2 1.1.2 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] crate crates.io crate rust-sc2 1.1.2 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" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: Found `feature = ...` in `target.'cfg(...)'.dependencies`. This key is not supported for selecting dependencies and will not work as expected. Use the [features] section instead: https://doc.rust-lang.org/cargo/reference/features.html [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4f8da3c744d2da974e54ce020a79f4ad54313e914ebeaab8fc086f07e8d8b066" "/opt/rustwide/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] befeeb7dbf7dccf8ec77189ded2adf41d049cad987e08e3a9e8a91fe14ea4cbf [INFO] running `Command { std: "docker" "start" "-a" "befeeb7dbf7dccf8ec77189ded2adf41d049cad987e08e3a9e8a91fe14ea4cbf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "befeeb7dbf7dccf8ec77189ded2adf41d049cad987e08e3a9e8a91fe14ea4cbf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "befeeb7dbf7dccf8ec77189ded2adf41d049cad987e08e3a9e8a91fe14ea4cbf", kill_on_drop: false }` [INFO] [stdout] befeeb7dbf7dccf8ec77189ded2adf41d049cad987e08e3a9e8a91fe14ea4cbf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4f8da3c744d2da974e54ce020a79f4ad54313e914ebeaab8fc086f07e8d8b066" "/opt/rustwide/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 089fccc01cd5a67c72cbf69ce1c82349434b55448c8c39cda4ddcf041afb1e3c [INFO] running `Command { std: "docker" "start" "-a" "089fccc01cd5a67c72cbf69ce1c82349434b55448c8c39cda4ddcf041afb1e3c", kill_on_drop: false }` [INFO] [stderr] warning: Found `feature = ...` in `target.'cfg(...)'.dependencies`. This key is not supported for selecting dependencies and will not work as expected. Use the [features] section instead: https://doc.rust-lang.org/cargo/reference/features.html [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling libc v0.2.80 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling syn v1.0.53 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling getrandom v0.2.2 [INFO] [stderr] Compiling generic-array v0.14.4 [INFO] [stderr] Checking tinyvec_macros v0.1.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Checking matches v0.1.8 [INFO] [stderr] Checking tinyvec v1.1.0 [INFO] [stderr] Compiling thread_local v1.0.1 [INFO] [stderr] Checking unicode-bidi v0.3.4 [INFO] [stderr] Compiling aho-corasick v0.7.15 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Checking rand_core v0.6.2 [INFO] [stderr] Compiling regex-syntax v0.6.21 [INFO] [stderr] Checking unicode-normalization v0.1.16 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling protobuf v2.22.1 [INFO] [stderr] Compiling httparse v1.3.4 [INFO] [stderr] Checking form_urlencoded v1.0.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking rand_chacha v0.3.0 [INFO] [stderr] Compiling indexmap v1.6.0 [INFO] [stderr] Checking idna v0.2.0 [INFO] [stderr] Checking opaque-debug v0.3.0 [INFO] [stderr] Checking bytes v1.0.1 [INFO] [stderr] Checking cpuid-bool v0.1.2 [INFO] [stderr] Compiling sc2-proto v0.2.3 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Checking http v0.2.1 [INFO] [stderr] Checking matrixmultiply v0.3.1 [INFO] [stderr] Checking input_buffer v0.4.0 [INFO] [stderr] Checking url v2.2.0 [INFO] [stderr] Checking sha-1 v0.9.2 [INFO] [stderr] Checking rand v0.8.3 [INFO] [stderr] Checking num-complex v0.4.0 [INFO] [stderr] Checking dirs-sys v0.3.5 [INFO] [stderr] Checking base64 v0.13.0 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking hashbrown v0.9.1 [INFO] [stderr] Compiling regex v1.4.2 [INFO] [stderr] Checking utf-8 v0.7.5 [INFO] [stderr] Checking ndarray v0.15.1 [INFO] [stderr] Checking itertools v0.10.0 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking dirs v3.0.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking maplit v1.0.2 [INFO] [stderr] Checking rustc-hash v1.1.0 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Compiling thiserror-impl v1.0.24 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Compiling sc2-proc-macro v1.0.0 [INFO] [stderr] Checking thiserror v1.0.24 [INFO] [stderr] Checking tungstenite v0.13.0 [INFO] [stderr] Checking sc2-macro v1.0.0 [INFO] [stderr] Checking rust-sc2 v1.1.2 (/opt/rustwide/workdir) [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 190 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 191 | self.iter.find(pred) [INFO] [stdout] | ^^^^^^^^^^----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:202:4 [INFO] [stdout] | [INFO] [stdout] 200 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 201 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 202 | self.iter.map(|u| pred(&u) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 206 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 210 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 211 | self.iter.fold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:221:4 [INFO] [stdout] | [INFO] [stdout] 220 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 221 | self.iter.rfind(pred) [INFO] [stdout] | ^^^^^^^^^^-----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:230:4 [INFO] [stdout] | [INFO] [stdout] 225 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 229 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 230 | self.iter.rfold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 190 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 191 | self.iter.find(pred) [INFO] [stdout] | ^^^^^^^^^^----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:202:4 [INFO] [stdout] | [INFO] [stdout] 200 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 201 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 202 | self.iter.map(|u| pred(&u) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 206 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 210 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 211 | self.iter.fold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:221:4 [INFO] [stdout] | [INFO] [stdout] 220 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 221 | self.iter.rfind(pred) [INFO] [stdout] | ^^^^^^^^^^-----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:230:4 [INFO] [stdout] | [INFO] [stdout] 225 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 229 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 230 | self.iter.rfold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 190 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 191 | self.iter.find(pred) [INFO] [stdout] | ^^^^^^^^^^----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:202:4 [INFO] [stdout] | [INFO] [stdout] 200 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 201 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 202 | self.iter.map(|u| pred(&u) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 206 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 210 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 211 | self.iter.fold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:221:4 [INFO] [stdout] | [INFO] [stdout] 220 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 221 | self.iter.rfind(pred) [INFO] [stdout] | ^^^^^^^^^^-----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:230:4 [INFO] [stdout] | [INFO] [stdout] 225 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 229 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 230 | self.iter.rfold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 281 | impl_simple_iterator!(Closer); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 190 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 191 | self.iter.find(pred) [INFO] [stdout] | ^^^^^^^^^^----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:202:4 [INFO] [stdout] | [INFO] [stdout] 200 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 201 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 202 | self.iter.map(|u| pred(&u) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 206 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 210 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 211 | self.iter.fold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/distance/mod.rs:221:4 [INFO] [stdout] | [INFO] [stdout] 220 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 221 | self.iter.rfind(pred) [INFO] [stdout] | ^^^^^^^^^^-----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/distance/mod.rs:230:4 [INFO] [stdout] | [INFO] [stdout] 225 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 229 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 230 | self.iter.rfold(init, filter_fold(pred, fold)) [INFO] [stdout] | ^^^^^^^^^ ---- borrow later used here [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | impl_simple_iterator!(Further); [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 211 | impl_simple_iterator!(OfType); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 229 | impl_simple_iterator!(ExcludeType); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `impl_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 305 | / make_simple_iterator!( [INFO] [stdout] 306 | | /// An iterator that filters ground units. [INFO] [stdout] 307 | | Ground, [INFO] [stdout] 308 | | |u| !u.is_flying() [INFO] [stdout] 309 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 311 | / make_simple_iterator!( [INFO] [stdout] 312 | | /// An iterator that filters flying units. [INFO] [stdout] 313 | | Flying, [INFO] [stdout] 314 | | |u| u.is_flying() [INFO] [stdout] 315 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 317 | / make_simple_iterator!( [INFO] [stdout] 318 | | /// An iterator that filters ready units and structures. [INFO] [stdout] 319 | | Ready, [INFO] [stdout] 320 | | |u| u.is_ready() [INFO] [stdout] 321 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 323 | / make_simple_iterator!( [INFO] [stdout] 324 | | /// An iterator that filters units structures in-progress. [INFO] [stdout] 325 | | NotReady, [INFO] [stdout] 326 | | |u| !u.is_ready() [INFO] [stdout] 327 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 329 | / make_simple_iterator!( [INFO] [stdout] 330 | | /// An iterator that filters units with no orders. [INFO] [stdout] 331 | | Idle, [INFO] [stdout] 332 | | |u| u.is_idle() [INFO] [stdout] 333 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 335 | / make_simple_iterator!( [INFO] [stdout] 336 | | /// An iterator that filters units with no orders or almost finished orders. [INFO] [stdout] 337 | | AlmostIdle, [INFO] [stdout] 338 | | |u| u.is_almost_idle() [INFO] [stdout] 339 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 341 | / make_simple_iterator!( [INFO] [stdout] 342 | | /// An iterator that filters units with no orders (this also handles buildings with reactor). [INFO] [stdout] 343 | | Unused, [INFO] [stdout] 344 | | |u| u.is_unused() [INFO] [stdout] 345 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 347 | / make_simple_iterator!( [INFO] [stdout] 348 | | /// An iterator that filters units with no orders or almost finished orders [INFO] [stdout] 349 | | /// (this also handles buildings with reactor). [INFO] [stdout] 350 | | AlmostUnused, [INFO] [stdout] 351 | | |u| u.is_almost_unused() [INFO] [stdout] 352 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 65 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 66 | self.iter.find(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 67 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:77:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn count(self) -> usize { [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] 76 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 77 | self.iter.map(|u| pred(u.borrow()) as usize).sum() [INFO] [stdout] | ^^^^^^^^^ ---- borrow later captured here by closure [INFO] [stdout] | | [INFO] [stdout] | move out of `self.iter` occurs here [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn fold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 85 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 86 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 87 | .fold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.iter` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/units/iter.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 96 | let pred = self.predicate(); [INFO] [stdout] | ---- immutable borrow occurs here [INFO] [stdout] 97 | self.iter.rfind(|u| pred(u.borrow())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] 98 | } [INFO] [stdout] | - immutable borrow might be used here, when `pred` is dropped and runs the destructor for type `impl for<'a> Fn(&'a unit::Unit) -> bool` [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `self.iter` because it is borrowed [INFO] [stdout] --> src/units/iter.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn rfold(self, init: Acc, fold: Fold) -> Acc [INFO] [stdout] | ---- binding `self` declared here [INFO] [stdout] ... [INFO] [stdout] 105 | let pred = self.predicate(); [INFO] [stdout] | ---- borrow of `self` occurs here [INFO] [stdout] 106 | self.iter [INFO] [stdout] | ^^^^^^^^^ move out of `self.iter` occurs here [INFO] [stdout] 107 | .rfold(init, filter_fold(|u| pred(u.borrow()), fold)) [INFO] [stdout] | ---- borrow later captured here by closure [INFO] [stdout] ... [INFO] [stdout] 354 | / make_simple_iterator!( [INFO] [stdout] 355 | | /// An iterator that filters units units visible on current step. [INFO] [stdout] 356 | | Visible, [INFO] [stdout] 357 | | |u| u.is_visible() [INFO] [stdout] 358 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `double_ended_iterator_methods` which comes from the expansion of the macro `make_simple_iterator` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 65 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0502, E0505. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0502`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 65 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0502, E0505. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0502`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rust-sc2` (lib test) due to 66 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `rust-sc2` (lib) due to 66 previous errors [INFO] running `Command { std: "docker" "inspect" "089fccc01cd5a67c72cbf69ce1c82349434b55448c8c39cda4ddcf041afb1e3c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "089fccc01cd5a67c72cbf69ce1c82349434b55448c8c39cda4ddcf041afb1e3c", kill_on_drop: false }` [INFO] [stdout] 089fccc01cd5a67c72cbf69ce1c82349434b55448c8c39cda4ddcf041afb1e3c