[INFO] fetching crate libreda-lefdef 0.0.5... [INFO] testing libreda-lefdef-0.0.5 against try#b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b for pr-145330-1 [INFO] extracting crate libreda-lefdef 0.0.5 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate libreda-lefdef 0.0.5 [INFO] finished tweaking crates.io crate libreda-lefdef 0.0.5 [INFO] tweaked toml for crates.io crate libreda-lefdef 0.0.5 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate libreda-lefdef 0.0.5 on toolchain b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 52 packages to latest compatible versions [INFO] [stderr] Adding itertools v0.13.0 (available: v0.14.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 365e2960105ac2fc6d94b8eb92984142e60baefd2d2265972fb3eed755bc2054 [INFO] running `Command { std: "docker" "start" "-a" "365e2960105ac2fc6d94b8eb92984142e60baefd2d2265972fb3eed755bc2054", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "365e2960105ac2fc6d94b8eb92984142e60baefd2d2265972fb3eed755bc2054", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "365e2960105ac2fc6d94b8eb92984142e60baefd2d2265972fb3eed755bc2054", kill_on_drop: false }` [INFO] [stdout] 365e2960105ac2fc6d94b8eb92984142e60baefd2d2265972fb3eed755bc2054 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dd183d9318dd5cb4109999d23a790f2fd799a980ac5735c9a8187985df0231f5 [INFO] running `Command { std: "docker" "start" "-a" "dd183d9318dd5cb4109999d23a790f2fd799a980ac5735c9a8187985df0231f5", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling cfg-if v1.0.3 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling libc v0.2.176 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling hash32 v0.2.1 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling libreda-splay v0.1.1 [INFO] [stderr] Compiling libreda-stream-parser v0.2.0 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling heapless v0.7.17 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling rstar v0.9.3 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling portrait-framework v0.2.1 [INFO] [stderr] Compiling portrait-codegen v0.2.3 [INFO] [stderr] Compiling portrait v0.2.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling iron-shapes v0.1.1 [INFO] [stderr] Compiling iron-shapes-booleanop v0.1.0 [INFO] [stderr] Compiling libreda-db v0.0.12 [INFO] [stderr] Compiling libreda-lefdef v0.0.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | for v in &def.version { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 65 - for v in &def.version { [INFO] [stdout] 65 + while let Some(v) = &def.version { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 65 - for v in &def.version { [INFO] [stdout] 65 + if let Some(v) = &def.version { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:83:14 [INFO] [stdout] | [INFO] [stdout] 83 | for n in &def.design_name { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 83 - for n in &def.design_name { [INFO] [stdout] 83 + while let Some(n) = &def.design_name { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 83 - for n in &def.design_name { [INFO] [stdout] 83 + if let Some(n) = &def.design_name { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:88:14 [INFO] [stdout] | [INFO] [stdout] 88 | for n in &def.technology { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 88 - for n in &def.technology { [INFO] [stdout] 88 + while let Some(n) = &def.technology { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 88 - for n in &def.technology { [INFO] [stdout] 88 + if let Some(n) = &def.technology { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:204:32 [INFO] [stdout] | [INFO] [stdout] 204 | for region_type in ®ion.region_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 204 - for region_type in ®ion.region_type { [INFO] [stdout] 204 + while let Some(region_type) = ®ion.region_type { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 204 - for region_type in ®ion.region_type { [INFO] [stdout] 204 + if let Some(region_type) = ®ion.region_type { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:223:22 [INFO] [stdout] | [INFO] [stdout] 223 | for m in &comp.eeq_master { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 223 - for m in &comp.eeq_master { [INFO] [stdout] 223 + while let Some(m) = &comp.eeq_master { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 223 - for m in &comp.eeq_master { [INFO] [stdout] 223 + if let Some(m) = &comp.eeq_master { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:242:53 [INFO] [stdout] | [INFO] [stdout] 242 | for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] 242 + while let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] 242 + if let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:250:49 [INFO] [stdout] | [INFO] [stdout] 250 | for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] 250 + while let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] 250 + if let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:260:22 [INFO] [stdout] | [INFO] [stdout] 260 | for r in &comp.region { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 260 - for r in &comp.region { [INFO] [stdout] 260 + while let Some(r) = &comp.region { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 260 - for r in &comp.region { [INFO] [stdout] 260 + if let Some(r) = &comp.region { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.24s [INFO] running `Command { std: "docker" "inspect" "dd183d9318dd5cb4109999d23a790f2fd799a980ac5735c9a8187985df0231f5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd183d9318dd5cb4109999d23a790f2fd799a980ac5735c9a8187985df0231f5", kill_on_drop: false }` [INFO] [stdout] dd183d9318dd5cb4109999d23a790f2fd799a980ac5735c9a8187985df0231f5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a5ab47a9defd2cd920e26ad5689187c406dfdccef3bf524fd9f2cc99fe0be0bf [INFO] running `Command { std: "docker" "start" "-a" "a5ab47a9defd2cd920e26ad5689187c406dfdccef3bf524fd9f2cc99fe0be0bf", kill_on_drop: false }` [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | for v in &def.version { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 65 - for v in &def.version { [INFO] [stdout] 65 + while let Some(v) = &def.version { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 65 - for v in &def.version { [INFO] [stdout] 65 + if let Some(v) = &def.version { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:83:14 [INFO] [stdout] | [INFO] [stdout] 83 | for n in &def.design_name { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 83 - for n in &def.design_name { [INFO] [stdout] 83 + while let Some(n) = &def.design_name { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 83 - for n in &def.design_name { [INFO] [stdout] 83 + if let Some(n) = &def.design_name { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:88:14 [INFO] [stdout] | [INFO] [stdout] 88 | for n in &def.technology { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 88 - for n in &def.technology { [INFO] [stdout] 88 + while let Some(n) = &def.technology { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 88 - for n in &def.technology { [INFO] [stdout] 88 + if let Some(n) = &def.technology { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:204:32 [INFO] [stdout] | [INFO] [stdout] 204 | for region_type in ®ion.region_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 204 - for region_type in ®ion.region_type { [INFO] [stdout] 204 + while let Some(region_type) = ®ion.region_type { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 204 - for region_type in ®ion.region_type { [INFO] [stdout] 204 + if let Some(region_type) = ®ion.region_type { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:223:22 [INFO] [stdout] | [INFO] [stdout] 223 | for m in &comp.eeq_master { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 223 - for m in &comp.eeq_master { [INFO] [stdout] 223 + while let Some(m) = &comp.eeq_master { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 223 - for m in &comp.eeq_master { [INFO] [stdout] 223 + if let Some(m) = &comp.eeq_master { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:242:53 [INFO] [stdout] | [INFO] [stdout] 242 | for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] 242 + while let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] 242 + if let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:250:49 [INFO] [stdout] | [INFO] [stdout] 250 | for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] 250 + while let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] 250 + if let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:260:22 [INFO] [stdout] | [INFO] [stdout] 260 | for r in &comp.region { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 260 - for r in &comp.region { [INFO] [stdout] 260 + while let Some(r) = &comp.region { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 260 - for r in &comp.region { [INFO] [stdout] 260 + if let Some(r) = &comp.region { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling libreda-lefdef v0.0.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | for v in &def.version { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 65 - for v in &def.version { [INFO] [stdout] 65 + while let Some(v) = &def.version { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 65 - for v in &def.version { [INFO] [stdout] 65 + if let Some(v) = &def.version { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:83:14 [INFO] [stdout] | [INFO] [stdout] 83 | for n in &def.design_name { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 83 - for n in &def.design_name { [INFO] [stdout] 83 + while let Some(n) = &def.design_name { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 83 - for n in &def.design_name { [INFO] [stdout] 83 + if let Some(n) = &def.design_name { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:88:14 [INFO] [stdout] | [INFO] [stdout] 88 | for n in &def.technology { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 88 - for n in &def.technology { [INFO] [stdout] 88 + while let Some(n) = &def.technology { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 88 - for n in &def.technology { [INFO] [stdout] 88 + if let Some(n) = &def.technology { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:204:32 [INFO] [stdout] | [INFO] [stdout] 204 | for region_type in ®ion.region_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 204 - for region_type in ®ion.region_type { [INFO] [stdout] 204 + while let Some(region_type) = ®ion.region_type { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 204 - for region_type in ®ion.region_type { [INFO] [stdout] 204 + if let Some(region_type) = ®ion.region_type { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:223:22 [INFO] [stdout] | [INFO] [stdout] 223 | for m in &comp.eeq_master { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 223 - for m in &comp.eeq_master { [INFO] [stdout] 223 + while let Some(m) = &comp.eeq_master { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 223 - for m in &comp.eeq_master { [INFO] [stdout] 223 + if let Some(m) = &comp.eeq_master { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:242:53 [INFO] [stdout] | [INFO] [stdout] 242 | for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] 242 + while let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stdout] 242 + if let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:250:49 [INFO] [stdout] | [INFO] [stdout] 250 | for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] 250 + while let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stdout] 250 + if let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/def_writer.rs:260:22 [INFO] [stdout] | [INFO] [stdout] 260 | for r in &comp.region { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 260 - for r in &comp.region { [INFO] [stdout] 260 + while let Some(r) = &comp.region { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 260 - for r in &comp.region { [INFO] [stdout] 260 + if let Some(r) = &comp.region { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 6.23s [INFO] running `Command { std: "docker" "inspect" "a5ab47a9defd2cd920e26ad5689187c406dfdccef3bf524fd9f2cc99fe0be0bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a5ab47a9defd2cd920e26ad5689187c406dfdccef3bf524fd9f2cc99fe0be0bf", kill_on_drop: false }` [INFO] [stdout] a5ab47a9defd2cd920e26ad5689187c406dfdccef3bf524fd9f2cc99fe0be0bf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] eb694a2be49eeffa068ab60a352dcd9fe1b129b2ee6c68f1319885fd2a597508 [INFO] running `Command { std: "docker" "start" "-a" "eb694a2be49eeffa068ab60a352dcd9fe1b129b2ee6c68f1319885fd2a597508", kill_on_drop: false }` [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for v in &def.version { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 65 - for v in &def.version { [INFO] [stderr] 65 + while let Some(v) = &def.version { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 65 - for v in &def.version { [INFO] [stderr] 65 + if let Some(v) = &def.version { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:83:14 [INFO] [stderr] | [INFO] [stderr] 83 | for n in &def.design_name { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 83 - for n in &def.design_name { [INFO] [stderr] 83 + while let Some(n) = &def.design_name { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 83 - for n in &def.design_name { [INFO] [stderr] 83 + if let Some(n) = &def.design_name { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:88:14 [INFO] [stderr] | [INFO] [stderr] 88 | for n in &def.technology { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 88 - for n in &def.technology { [INFO] [stderr] 88 + while let Some(n) = &def.technology { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 88 - for n in &def.technology { [INFO] [stderr] 88 + if let Some(n) = &def.technology { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:204:32 [INFO] [stderr] | [INFO] [stderr] 204 | for region_type in ®ion.region_type { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 204 - for region_type in ®ion.region_type { [INFO] [stderr] 204 + while let Some(region_type) = ®ion.region_type { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 204 - for region_type in ®ion.region_type { [INFO] [stderr] 204 + if let Some(region_type) = ®ion.region_type { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:223:22 [INFO] [stderr] | [INFO] [stderr] 223 | for m in &comp.eeq_master { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 223 - for m in &comp.eeq_master { [INFO] [stderr] 223 + while let Some(m) = &comp.eeq_master { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 223 - for m in &comp.eeq_master { [INFO] [stderr] 223 + if let Some(m) = &comp.eeq_master { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:242:53 [INFO] [stderr] | [INFO] [stderr] 242 | for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stderr] 242 + while let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 242 - for (soft, left, bottom, right, top) in &comp.halo { [INFO] [stderr] 242 + if let Some((soft, left, bottom, right, top)) = &comp.halo { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:250:49 [INFO] [stderr] | [INFO] [stderr] 250 | for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stderr] 250 + while let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 250 - for (dist, min_layer, max_layer) in &comp.route_halo { [INFO] [stderr] 250 + if let Some((dist, min_layer, max_layer)) = &comp.route_halo { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: for loop over a `&Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/def_writer.rs:260:22 [INFO] [stderr] | [INFO] [stderr] 260 | for r in &comp.region { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 260 - for r in &comp.region { [INFO] [stderr] 260 + while let Some(r) = &comp.region { [INFO] [stderr] | [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 260 - for r in &comp.region { [INFO] [stderr] 260 + if let Some(r) = &comp.region { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `libreda-lefdef` (lib) generated 8 warnings [INFO] [stderr] warning: `libreda-lefdef` (lib test) generated 8 warnings (8 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/libreda_lefdef-ead28a9bbaa48383) [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test import::test_orient_to_transform ... ok [INFO] [stdout] test export::test_export_to_def ... ok [INFO] [stdout] test lef_tech_adapter::tests::test_lef_rule_adapter_default_width ... ok [INFO] [stdout] test def_impl::test_lefdef_hierarchy_view ... ok [INFO] [stdout] test lef_tech_adapter::tests::test_lef_rule_adapter_pitch ... ok [INFO] [stdout] test def_parser::test_read_def ... ok [INFO] [stdout] test lef_tech_adapter::tests::test_lef_rule_adapter_min_width ... ok [INFO] [stdout] test import::test_lefdef_to_chip ... ok [INFO] [stdout] test lef_parser::test_read_lef_small ... ok [INFO] [stdout] test stream_parser::test_read_token ... ok [INFO] [stdout] test lef_tech_adapter::tests::test_lef_rule_adapter_spacing_table ... ok [INFO] [stdout] test lef_tech_adapter::tests::test_lef_rule_adapter_min_spacing ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/read_lef.rs (/opt/rustwide/target/debug/deps/read_lef-8c223fc8bf47afaa) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test test_read_lef_asap7 ... ok [INFO] [stdout] test test_read_lef_sky130 ... ok [INFO] [stdout] test test_read_lef_freepdk45 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Running tests/test_def_units.rs (/opt/rustwide/target/debug/deps/test_def_units-15bba3ad9618c739) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test test_read_tracks ... ok [INFO] [stdout] test test_read_rows ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/test_read_write_def.rs (/opt/rustwide/target/debug/deps/test_read_write_def-e38b65a642947361) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_read_write_def ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests libreda_lefdef [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test src/lib.rs - (line 131) ... ok [INFO] [stdout] test src/lib.rs - (line 104) ... ok [INFO] [stdout] test src/lib.rs - (line 58) ... ok [INFO] [stdout] test src/lib.rs - (line 26) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.67s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "eb694a2be49eeffa068ab60a352dcd9fe1b129b2ee6c68f1319885fd2a597508", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eb694a2be49eeffa068ab60a352dcd9fe1b129b2ee6c68f1319885fd2a597508", kill_on_drop: false }` [INFO] [stdout] eb694a2be49eeffa068ab60a352dcd9fe1b129b2ee6c68f1319885fd2a597508