[INFO] cloning repository https://github.com/jacklee1792/dmoj_rubiks
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jacklee1792/dmoj_rubiks" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjacklee1792%2Fdmoj_rubiks", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjacklee1792%2Fdmoj_rubiks'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9828ba68cd4e1b208972193a85837ba75f57e460
[INFO] checking jacklee1792/dmoj_rubiks/9828ba68cd4e1b208972193a85837ba75f57e460 against master#12f35ad39ed3e39df4d953c46d4f6cc6c82adc96 for pr-155299
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjacklee1792%2Fdmoj_rubiks" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jacklee1792/dmoj_rubiks
[INFO] finished tweaking git repo https://github.com/jacklee1792/dmoj_rubiks
[INFO] tweaked toml for git repo https://github.com/jacklee1792/dmoj_rubiks written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jacklee1792/dmoj_rubiks on toolchain 12f35ad39ed3e39df4d953c46d4f6cc6c82adc96
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+12f35ad39ed3e39df4d953c46d4f6cc6c82adc96" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jacklee1792/dmoj_rubiks 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" "+12f35ad39ed3e39df4d953c46d4f6cc6c82adc96" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+12f35ad39ed3e39df4d953c46d4f6cc6c82adc96" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3f28d0fd30847d3c6355dbb9978cbc9089ae38a85c2a435a8dd17ea31ef5ca53
[INFO] running `Command { std: "docker" "start" "-a" "3f28d0fd30847d3c6355dbb9978cbc9089ae38a85c2a435a8dd17ea31ef5ca53", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3f28d0fd30847d3c6355dbb9978cbc9089ae38a85c2a435a8dd17ea31ef5ca53", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f28d0fd30847d3c6355dbb9978cbc9089ae38a85c2a435a8dd17ea31ef5ca53", kill_on_drop: false }`
[INFO] [stdout] 3f28d0fd30847d3c6355dbb9978cbc9089ae38a85c2a435a8dd17ea31ef5ca53
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+12f35ad39ed3e39df4d953c46d4f6cc6c82adc96" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] db34b243aac3fb20c7da7a45c95ed567830a2b013727b80dc936fed135e5dfd7
[INFO] running `Command { std: "docker" "start" "-a" "db34b243aac3fb20c7da7a45c95ed567830a2b013727b80dc936fed135e5dfd7", kill_on_drop: false }`
[INFO] [stderr]     Checking dmoj_rubiks v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `F`
[INFO] [stdout]    --> src/cube.rs:375:13
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let F: Cube = Move::F.into();
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_F`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `R3`
[INFO] [stdout]    --> src/cube.rs:376:13
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let R3: Cube = Move::R3.into();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_R3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `U3`
[INFO] [stdout]    --> src/cube.rs:377:13
[INFO] [stdout]     |
[INFO] [stdout] 377 |         let U3: Cube = Move::U3.into();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_U3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `F3`
[INFO] [stdout]    --> src/cube.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let F3: Cube = Move::F3.into();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_F3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_cube_net` is never used
[INFO] [stdout]    --> src/main.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn read_cube_net() -> Cube {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `NAME` is never used
[INFO] [stdout]  --> src/coord/coord.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait Coord {
[INFO] [stdout]   |           ----- associated constant in this trait
[INFO] [stdout] 7 |     /// Name of the coordinate, used for debugging purposes.
[INFO] [stdout] 8 |     const NAME: &'static str;
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cube.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl CO {
[INFO] [stdout]    | ------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cube.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl EO {
[INFO] [stdout]    | ------- associated function in this implementation
[INFO] [stdout] 97 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `edge_at`, `find_edge`, `apply_move_edges`, `apply_move_corners`, and `repr_string` are never used
[INFO] [stdout]    --> src/cube.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl Cube {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 168 |     pub fn new(eo: EO, co: CO, ep: Perm<12>, cp: Perm<8>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn edge_at(&self, slot: Edge) -> Edge {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn find_edge(&self, edge: Edge) -> Edge {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn apply_move_edges(&self, m: Move) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn apply_move_corners(&self, m: Move) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn repr_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `decompose`, `is_half_turn`, `is_clockwise_turn`, `is_counterclockwise_turn`, and `is_quarter_turn` are never used
[INFO] [stdout]    --> src/mov.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl Move {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn decompose(&self) -> (Face, i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn is_half_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn is_clockwise_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn is_counterclockwise_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn is_quarter_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_swap`, `source`, `transform`, and `index_partial` are never used
[INFO] [stdout]    --> src/perm.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl<const N: usize> Perm<N> {
[INFO] [stdout]     | ---------------------------- associated items in this implementation
[INFO] [stdout]  43 |     // The identity permutation.
[INFO] [stdout]  44 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn from_swap(i: usize, j: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn source(&self, i: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn transform<T>(&self, a: &[T; N]) -> [T; N]
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn index_partial(&self, indices: &[usize]) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_coord` is never used
[INFO] [stdout]   --> src/piece.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl Edge {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn from_coord(coord: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `decompose_coord` is never used
[INFO] [stdout]   --> src/pruning.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | / impl<R, C> PrunTable<R, C>
[INFO] [stdout] 19 | | where
[INFO] [stdout] 20 | |     R: Coord,
[INFO] [stdout] 21 | |     C: Coord,
[INFO] [stdout]    | |_____________- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |       fn decompose_coord(coord: usize) -> (usize, usize) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `X2`, `Y2`, `Y`, and `LR` are never used
[INFO] [stdout]   --> src/sym.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Sym {
[INFO] [stdout]    | -------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     const X2: Cube = Cube::from_repr(0x000, 0x0000, 0x89ab30127456, 0x01234567);
[INFO] [stdout]    |           ^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     const Y2: Cube = Cube::from_repr(0x000, 0x0000, 0x98ba54761032, 0x54761032);
[INFO] [stdout]    |           ^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     const Y: Cube = Cube::from_repr(0x000, 0x0000, 0x8ba947650321, 0x47650321);
[INFO] [stdout]    |           ^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     const LR: Cube = Cube::from_repr(0x000, 0x0000, 0xab8956741230, 0x67452301);
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> src/cube.rs:373:13
[INFO] [stdout]     |
[INFO] [stdout] 373 |         let R: Cube = Move::R.into();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U` should have a snake case name
[INFO] [stdout]    --> src/cube.rs:374:13
[INFO] [stdout]     |
[INFO] [stdout] 374 |         let U: Cube = Move::U.into();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case (notice the capitalization): `u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/cube.rs:375:13
[INFO] [stdout]     |
[INFO] [stdout] 375 |         let F: Cube = Move::F.into();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R3` should have a snake case name
[INFO] [stdout]    --> src/cube.rs:376:13
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let R3: Cube = Move::R3.into();
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `r3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U3` should have a snake case name
[INFO] [stdout]    --> src/cube.rs:377:13
[INFO] [stdout]     |
[INFO] [stdout] 377 |         let U3: Cube = Move::U3.into();
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `u3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F3` should have a snake case name
[INFO] [stdout]    --> src/cube.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let F3: Cube = Move::F3.into();
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `f3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_cube_net` is never used
[INFO] [stdout]    --> src/main.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn read_cube_net() -> Cube {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `NAME` is never used
[INFO] [stdout]  --> src/coord/coord.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait Coord {
[INFO] [stdout]   |           ----- associated constant in this trait
[INFO] [stdout] 7 |     /// Name of the coordinate, used for debugging purposes.
[INFO] [stdout] 8 |     const NAME: &'static str;
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_assoc` are never used
[INFO] [stdout]   --> src/cube.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl CO {
[INFO] [stdout]    | ------- associated functions in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_assoc(assoc: &[(Corner, u8)]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_bad_edges` are never used
[INFO] [stdout]    --> src/cube.rs:97:12
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl EO {
[INFO] [stdout]     | ------- associated functions in this implementation
[INFO] [stdout]  97 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn from_bad_edges(edges: &[Edge]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `edge_at`, `find_edge`, `apply_move_edges`, `apply_move_corners`, and `repr_string` are never used
[INFO] [stdout]    --> src/cube.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl Cube {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 168 |     pub fn new(eo: EO, co: CO, ep: Perm<12>, cp: Perm<8>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn edge_at(&self, slot: Edge) -> Edge {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn find_edge(&self, edge: Edge) -> Edge {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn apply_move_edges(&self, m: Move) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn apply_move_corners(&self, m: Move) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn repr_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `decompose`, `is_half_turn`, `is_clockwise_turn`, `is_counterclockwise_turn`, and `is_quarter_turn` are never used
[INFO] [stdout]    --> src/mov.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl Move {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn decompose(&self) -> (Face, i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn is_half_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn is_clockwise_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn is_counterclockwise_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn is_quarter_turn(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/perm.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl<const N: usize> Perm<N> {
[INFO] [stdout]     | ---------------------------- associated items in this implementation
[INFO] [stdout]  43 |     // The identity permutation.
[INFO] [stdout]  44 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn repr(&self) -> u64 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn from_swap(i: usize, j: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn from_cycle(cycle: &[usize]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn set_dest(&mut self, i: usize, dest: usize) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn source(&self, i: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn transform<T>(&self, a: &[T; N]) -> [T; N]
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn index_partial(&self, indices: &[usize]) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_coord` is never used
[INFO] [stdout]   --> src/piece.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl Edge {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn from_coord(coord: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `decompose_coord` is never used
[INFO] [stdout]   --> src/pruning.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | / impl<R, C> PrunTable<R, C>
[INFO] [stdout] 19 | | where
[INFO] [stdout] 20 | |     R: Coord,
[INFO] [stdout] 21 | |     C: Coord,
[INFO] [stdout]    | |_____________- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |       fn decompose_coord(coord: usize) -> (usize, usize) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `X2`, `Y2`, `Y`, `LR`, and `compose` are never used
[INFO] [stdout]   --> src/sym.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Sym {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     const X2: Cube = Cube::from_repr(0x000, 0x0000, 0x89ab30127456, 0x01234567);
[INFO] [stdout]    |           ^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     const Y2: Cube = Cube::from_repr(0x000, 0x0000, 0x98ba54761032, 0x54761032);
[INFO] [stdout]    |           ^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     const Y: Cube = Cube::from_repr(0x000, 0x0000, 0x8ba947650321, 0x47650321);
[INFO] [stdout]    |           ^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     const LR: Cube = Cube::from_repr(0x000, 0x0000, 0xab8956741230, 0x67452301);
[INFO] [stdout]    |           ^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn compose(self, rhs: Sym) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.58s
[INFO] running `Command { std: "docker" "inspect" "db34b243aac3fb20c7da7a45c95ed567830a2b013727b80dc936fed135e5dfd7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db34b243aac3fb20c7da7a45c95ed567830a2b013727b80dc936fed135e5dfd7", kill_on_drop: false }`
[INFO] [stdout] db34b243aac3fb20c7da7a45c95ed567830a2b013727b80dc936fed135e5dfd7
