[INFO] cloning repository https://github.com/benjvmin93/dm-simu-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/benjvmin93/dm-simu-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenjvmin93%2Fdm-simu-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenjvmin93%2Fdm-simu-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b10e67345c904f2e9f16791cb4565884f15a0e21 [INFO] building benjvmin93/dm-simu-rs against master#44f415c1d617ebc7b931a243b7b321ef8a6ca47c for pr-142134-abi-ast-error [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenjvmin93%2Fdm-simu-rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/benjvmin93/dm-simu-rs on toolchain 44f415c1d617ebc7b931a243b7b321ef8a6ca47c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/benjvmin93/dm-simu-rs [INFO] finished tweaking git repo https://github.com/benjvmin93/dm-simu-rs [INFO] tweaked toml for git repo https://github.com/benjvmin93/dm-simu-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 57 packages to latest compatible versions [INFO] [stderr] Adding numpy v0.21.0 (available: v0.25.0) [INFO] [stderr] Adding pyo3 v0.21.2 (available: v0.25.0) [INFO] [stderr] Adding rand v0.8.5 (available: v0.9.1) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e10f27e6648e34b0dfd2f65470afc7d611318b8cda7c994fe248351ee07095b9 [INFO] running `Command { std: "docker" "start" "-a" "e10f27e6648e34b0dfd2f65470afc7d611318b8cda7c994fe248351ee07095b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e10f27e6648e34b0dfd2f65470afc7d611318b8cda7c994fe248351ee07095b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e10f27e6648e34b0dfd2f65470afc7d611318b8cda7c994fe248351ee07095b9", kill_on_drop: false }` [INFO] [stdout] e10f27e6648e34b0dfd2f65470afc7d611318b8cda7c994fe248351ee07095b9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 603928f6de91a953d0d940c50e326b1161819dc5b9e67e2b4f46a1e30335b690 [INFO] running `Command { std: "docker" "start" "-a" "603928f6de91a953d0d940c50e326b1161819dc5b9e67e2b4f46a1e30335b690", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling target-lexicon v0.12.16 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling unindent v0.2.4 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling pyo3-build-config v0.21.2 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling pyo3-ffi v0.21.2 [INFO] [stderr] Compiling pyo3 v0.21.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling ndarray v0.15.6 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling pyo3-macros-backend v0.21.2 [INFO] [stderr] Compiling pyo3-macros v0.21.2 [INFO] [stderr] Compiling numpy v0.21.0 [INFO] [stderr] Compiling dm-simu-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `re_diff` [INFO] [stdout] --> src/tools.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let re_diff = (a.re - b.re).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_re_diff` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `im_diff` [INFO] [stdout] --> src/tools.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let im_diff = (a.im - b.im).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_im_diff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `py` [INFO] [stdout] --> src/lib.rs:347:9 [INFO] [stdout] | [INFO] [stdout] 347 | py: pyo3::prelude::Python<'py>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_py` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `py` [INFO] [stdout] --> src/lib.rs:417:9 [INFO] [stdout] | [INFO] [stdout] 417 | py: Python<'py>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_py` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_krauss_channel` is never used [INFO] [stdout] --> src/lib.rs:377:8 [INFO] [stdout] | [INFO] [stdout] 377 | fn parse_krauss_channel<'py>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | m.add("Zero", State::ZERO); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 20 | let _ = m.add("Zero", State::ZERO); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | m.add("Plus", State::PLUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 21 | let _ = m.add("Plus", State::PLUS); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | m.add("One", State::ONE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 22 | let _ = m.add("One", State::ONE); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | m.add("Minus", State::MINUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 23 | let _ = m.add("Minus", State::MINUS); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | fn get_op_ref<'py>(op: PyVec<'py>) -> &Operator { [INFO] [stdout] | ^^^ --------- the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 43 | fn get_op_ref<'py>(op: PyVec<'py>) -> &'py Operator { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:47:34 [INFO] [stdout] | [INFO] [stdout] 47 | fn get_dm_ref<'py>(dm: PyVec<'py>) -> &DensityMatrix { [INFO] [stdout] | ^^^ -------------- the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 47 | fn get_dm_ref<'py>(dm: PyVec<'py>) -> &'py DensityMatrix { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:51:38 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_dm_mut_ref<'py>(dm: PyVec<'py>) -> &mut DensityMatrix { [INFO] [stdout] | ^^^ ------------------ the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 51 | fn get_dm_mut_ref<'py>(dm: PyVec<'py>) -> &'py mut DensityMatrix { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `re_diff` [INFO] [stdout] --> src/tools.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let re_diff = (a.re - b.re).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_re_diff` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `im_diff` [INFO] [stdout] --> src/tools.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let im_diff = (a.im - b.im).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_im_diff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DensityMatrix` is never constructed [INFO] [stdout] --> src/density_matrix.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct DensityMatrix { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/density_matrix.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl DensityMatrix { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 34 | pub fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn new(nqubits: usize, initial_state: State) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn from_statevec(statevec: &[Complex]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn from_vec(vec: &[Complex]) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn print(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn get(&self, i: usize, j: usize) -> Complex { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn set(&mut self, i: usize, j: usize, value: Complex) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn expectation_single(&self, op: &Operator, index: usize) -> Result, &str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn trace(&self) -> Complex { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn normalize(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn evolve_single_new(&mut self, op: &Operator, index: usize) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn evolve_single(&self, op: &Operator, index: usize) -> Result>, String> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub fn evolve_new(&mut self, op: &Operator, indices: &[usize]) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn evolve(&self, op: &Operator, indices: &[usize]) -> Result>, String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | pub fn equals(&self, other: &DensityMatrix, tol: f64) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 386 | pub fn tensor(&mut self, other: &DensityMatrix) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | pub fn ptrace(&mut self, qargs: &[usize]) -> Result<(), &str> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | pub fn cz(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 514 | pub fn swap(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 558 | pub fn cnot(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 562 | pub fn apply_channel(&self, krauss_channel: &Vec<(Complex, Vec>)>, qargs: &[usize]) -> Result>, St... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OneQubitOp` is never used [INFO] [stdout] --> src/operators.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum OneQubitOp { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TwoQubitsOp` is never used [INFO] [stdout] --> src/operators.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum TwoQubitsOp { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Operator` is never constructed [INFO] [stdout] --> src/operators.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Operator` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `one_qubit`, `two_qubits`, `conj`, `transpose`, and `transconj` are never used [INFO] [stdout] --> src/operators.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 48 | impl Operator { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 49 | pub fn new(data: &[Complex]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn one_qubit(gate: OneQubitOp) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn two_qubits(gate: TwoQubitsOp) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn conj(&self) -> Operator { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn transpose(&self) -> Operator { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn transconj(&self) -> Operator { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DisplayComplex` is never constructed [INFO] [stdout] --> src/tools.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DisplayComplex(pub Complex); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complex_approx_eq` is never used [INFO] [stdout] --> src/tools.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn complex_approx_eq(a: Complex, b: Complex, tol: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `are_elements_unique` is never used [INFO] [stdout] --> src/tools.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn are_elements_unique(slice: &[T]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.39s [INFO] running `Command { std: "docker" "inspect" "603928f6de91a953d0d940c50e326b1161819dc5b9e67e2b4f46a1e30335b690", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "603928f6de91a953d0d940c50e326b1161819dc5b9e67e2b4f46a1e30335b690", kill_on_drop: false }` [INFO] [stdout] 603928f6de91a953d0d940c50e326b1161819dc5b9e67e2b4f46a1e30335b690 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8c116b947f13fdb751c181b6ca06fa570ca617db33b33cb39f3bd0d82d370f52 [INFO] running `Command { std: "docker" "start" "-a" "8c116b947f13fdb751c181b6ca06fa570ca617db33b33cb39f3bd0d82d370f52", kill_on_drop: false }` [INFO] [stderr] Compiling dm-simu-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `re_diff` [INFO] [stdout] --> src/tools.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let re_diff = (a.re - b.re).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_re_diff` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `im_diff` [INFO] [stdout] --> src/tools.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let im_diff = (a.im - b.im).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_im_diff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `py` [INFO] [stdout] --> src/lib.rs:347:9 [INFO] [stdout] | [INFO] [stdout] 347 | py: pyo3::prelude::Python<'py>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_py` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `py` [INFO] [stdout] --> src/lib.rs:417:9 [INFO] [stdout] | [INFO] [stdout] 417 | py: Python<'py>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_py` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_krauss_channel` is never used [INFO] [stdout] --> src/lib.rs:377:8 [INFO] [stdout] | [INFO] [stdout] 377 | fn parse_krauss_channel<'py>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | m.add("Zero", State::ZERO); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 20 | let _ = m.add("Zero", State::ZERO); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | m.add("Plus", State::PLUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 21 | let _ = m.add("Plus", State::PLUS); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | m.add("One", State::ONE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 22 | let _ = m.add("One", State::ONE); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | m.add("Minus", State::MINUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 23 | let _ = m.add("Minus", State::MINUS); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | fn get_op_ref<'py>(op: PyVec<'py>) -> &Operator { [INFO] [stdout] | ^^^ --------- the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 43 | fn get_op_ref<'py>(op: PyVec<'py>) -> &'py Operator { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:47:34 [INFO] [stdout] | [INFO] [stdout] 47 | fn get_dm_ref<'py>(dm: PyVec<'py>) -> &DensityMatrix { [INFO] [stdout] | ^^^ -------------- the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 47 | fn get_dm_ref<'py>(dm: PyVec<'py>) -> &'py DensityMatrix { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:51:38 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_dm_mut_ref<'py>(dm: PyVec<'py>) -> &mut DensityMatrix { [INFO] [stdout] | ^^^ ------------------ the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 51 | fn get_dm_mut_ref<'py>(dm: PyVec<'py>) -> &'py mut DensityMatrix { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `re_diff` [INFO] [stdout] --> src/tools.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let re_diff = (a.re - b.re).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_re_diff` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `im_diff` [INFO] [stdout] --> src/tools.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let im_diff = (a.im - b.im).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_im_diff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DensityMatrix` is never constructed [INFO] [stdout] --> src/density_matrix.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct DensityMatrix { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/density_matrix.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl DensityMatrix { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 34 | pub fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn new(nqubits: usize, initial_state: State) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn from_statevec(statevec: &[Complex]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn from_vec(vec: &[Complex]) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn print(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn get(&self, i: usize, j: usize) -> Complex { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn set(&mut self, i: usize, j: usize, value: Complex) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn expectation_single(&self, op: &Operator, index: usize) -> Result, &str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn trace(&self) -> Complex { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn normalize(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn evolve_single_new(&mut self, op: &Operator, index: usize) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn evolve_single(&self, op: &Operator, index: usize) -> Result>, String> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub fn evolve_new(&mut self, op: &Operator, indices: &[usize]) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn evolve(&self, op: &Operator, indices: &[usize]) -> Result>, String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | pub fn equals(&self, other: &DensityMatrix, tol: f64) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 386 | pub fn tensor(&mut self, other: &DensityMatrix) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | pub fn ptrace(&mut self, qargs: &[usize]) -> Result<(), &str> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | pub fn cz(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 514 | pub fn swap(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 558 | pub fn cnot(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 562 | pub fn apply_channel(&self, krauss_channel: &Vec<(Complex, Vec>)>, qargs: &[usize]) -> Result>, St... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OneQubitOp` is never used [INFO] [stdout] --> src/operators.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum OneQubitOp { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TwoQubitsOp` is never used [INFO] [stdout] --> src/operators.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum TwoQubitsOp { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Operator` is never constructed [INFO] [stdout] --> src/operators.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Operator` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `one_qubit`, `two_qubits`, `conj`, `transpose`, and `transconj` are never used [INFO] [stdout] --> src/operators.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 48 | impl Operator { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 49 | pub fn new(data: &[Complex]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn one_qubit(gate: OneQubitOp) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn two_qubits(gate: TwoQubitsOp) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn conj(&self) -> Operator { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn transpose(&self) -> Operator { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn transconj(&self) -> Operator { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DisplayComplex` is never constructed [INFO] [stdout] --> src/tools.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DisplayComplex(pub Complex); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complex_approx_eq` is never used [INFO] [stdout] --> src/tools.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn complex_approx_eq(a: Complex, b: Complex, tol: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `are_elements_unique` is never used [INFO] [stdout] --> src/tools.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn are_elements_unique(slice: &[T]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1365:13 [INFO] [stdout] | [INFO] [stdout] 1365 | let mut rho = DensityMatrix::new(1, State::ZERO); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1375:13 [INFO] [stdout] | [INFO] [stdout] 1375 | let mut rho = DensityMatrix::new(2, State::ZERO); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1386:13 [INFO] [stdout] | [INFO] [stdout] 1386 | let mut rho = DensityMatrix::new(3, State::ZERO); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1397:13 [INFO] [stdout] | [INFO] [stdout] 1397 | let mut rho = DensityMatrix::new(1, State::PLUS); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1408:13 [INFO] [stdout] | [INFO] [stdout] 1408 | let mut rho = DensityMatrix::new(2, State::PLUS); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1419:13 [INFO] [stdout] | [INFO] [stdout] 1419 | let mut rho = DensityMatrix::new(4, State::PLUS); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1430:13 [INFO] [stdout] | [INFO] [stdout] 1430 | let mut rho = DensityMatrix::new(8, State::PLUS); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1441:13 [INFO] [stdout] | [INFO] [stdout] 1441 | let mut rho = DensityMatrix::new(2, State::PLUS); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1452:13 [INFO] [stdout] | [INFO] [stdout] 1452 | let mut rho = DensityMatrix::new(2, State::PLUS); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/tests_density_matrix.rs:1463:13 [INFO] [stdout] | [INFO] [stdout] 1463 | let mut rho = DensityMatrix::new(1, State::ONE); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_matrices` is never used [INFO] [stdout] --> tests/tests_density_matrix.rs:290:8 [INFO] [stdout] | [INFO] [stdout] 290 | fn compare_matrices(m1: &[Complex], m2: &[Complex], tol: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `re_diff` [INFO] [stdout] --> src/tools.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let re_diff = (a.re - b.re).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_re_diff` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `im_diff` [INFO] [stdout] --> src/tools.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let im_diff = (a.im - b.im).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_im_diff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DensityMatrix` is never constructed [INFO] [stdout] --> src/density_matrix.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct DensityMatrix { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/density_matrix.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl DensityMatrix { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 34 | pub fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn new(nqubits: usize, initial_state: State) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn from_statevec(statevec: &[Complex]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn from_vec(vec: &[Complex]) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn print(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn get(&self, i: usize, j: usize) -> Complex { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn set(&mut self, i: usize, j: usize, value: Complex) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn expectation_single(&self, op: &Operator, index: usize) -> Result, &str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn trace(&self) -> Complex { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn normalize(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn evolve_single_new(&mut self, op: &Operator, index: usize) -> () { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn evolve_single(&self, op: &Operator, index: usize) -> Result>, String> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub fn evolve_new(&mut self, op: &Operator, indices: &[usize]) -> () { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn evolve(&self, op: &Operator, indices: &[usize]) -> Result>, String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | pub fn equals(&self, other: &DensityMatrix, tol: f64) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 386 | pub fn tensor(&mut self, other: &DensityMatrix) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 417 | pub fn ptrace(&mut self, qargs: &[usize]) -> Result<(), &str> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | pub fn cz(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 514 | pub fn swap(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 558 | pub fn cnot(&self, edge: &(usize, usize)) -> Result>, String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 562 | pub fn apply_channel(&self, krauss_channel: &Vec<(Complex, Vec>)>, qargs: &[usize]) -> Result>, St... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OneQubitOp` is never used [INFO] [stdout] --> src/operators.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum OneQubitOp { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TwoQubitsOp` is never used [INFO] [stdout] --> src/operators.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum TwoQubitsOp { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Operator` is never constructed [INFO] [stdout] --> src/operators.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Operator` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `one_qubit`, `two_qubits`, `conj`, `transpose`, and `transconj` are never used [INFO] [stdout] --> src/operators.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 48 | impl Operator { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 49 | pub fn new(data: &[Complex]) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn one_qubit(gate: OneQubitOp) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn two_qubits(gate: TwoQubitsOp) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn conj(&self) -> Operator { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn transpose(&self) -> Operator { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn transconj(&self) -> Operator { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DisplayComplex` is never constructed [INFO] [stdout] --> src/tools.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DisplayComplex(pub Complex); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `complex_approx_eq` is never used [INFO] [stdout] --> src/tools.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn complex_approx_eq(a: Complex, b: Complex, tol: f64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `are_elements_unique` is never used [INFO] [stdout] --> src/tools.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn are_elements_unique(slice: &[T]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `re_diff` [INFO] [stdout] --> src/tools.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let re_diff = (a.re - b.re).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_re_diff` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `im_diff` [INFO] [stdout] --> src/tools.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let im_diff = (a.im - b.im).abs(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_im_diff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `py` [INFO] [stdout] --> src/lib.rs:347:9 [INFO] [stdout] | [INFO] [stdout] 347 | py: pyo3::prelude::Python<'py>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_py` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `py` [INFO] [stdout] --> src/lib.rs:417:9 [INFO] [stdout] | [INFO] [stdout] 417 | py: Python<'py>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_py` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_krauss_channel` is never used [INFO] [stdout] --> src/lib.rs:377:8 [INFO] [stdout] | [INFO] [stdout] 377 | fn parse_krauss_channel<'py>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | m.add("Zero", State::ZERO); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 20 | let _ = m.add("Zero", State::ZERO); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | m.add("Plus", State::PLUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 21 | let _ = m.add("Plus", State::PLUS); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | m.add("One", State::ONE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 22 | let _ = m.add("One", State::ONE); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | m.add("Minus", State::MINUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 23 | let _ = m.add("Minus", State::MINUS); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | fn get_op_ref<'py>(op: PyVec<'py>) -> &Operator { [INFO] [stdout] | ^^^ --------- the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 43 | fn get_op_ref<'py>(op: PyVec<'py>) -> &'py Operator { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:47:34 [INFO] [stdout] | [INFO] [stdout] 47 | fn get_dm_ref<'py>(dm: PyVec<'py>) -> &DensityMatrix { [INFO] [stdout] | ^^^ -------------- the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 47 | fn get_dm_ref<'py>(dm: PyVec<'py>) -> &'py DensityMatrix { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/lib.rs:51:38 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_dm_mut_ref<'py>(dm: PyVec<'py>) -> &mut DensityMatrix { [INFO] [stdout] | ^^^ ------------------ the lifetime gets resolved as `'py` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'py` [INFO] [stdout] | [INFO] [stdout] 51 | fn get_dm_mut_ref<'py>(dm: PyVec<'py>) -> &'py mut DensityMatrix { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.16s [INFO] running `Command { std: "docker" "inspect" "8c116b947f13fdb751c181b6ca06fa570ca617db33b33cb39f3bd0d82d370f52", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c116b947f13fdb751c181b6ca06fa570ca617db33b33cb39f3bd0d82d370f52", kill_on_drop: false }` [INFO] [stdout] 8c116b947f13fdb751c181b6ca06fa570ca617db33b33cb39f3bd0d82d370f52