[INFO] fetching crate mangle 0.0.5... [INFO] checking mangle-0.0.5 against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] extracting crate mangle 0.0.5 into /workspace/builds/worker-7-tc1/source [INFO] validating manifest of crates.io crate mangle 0.0.5 on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate mangle 0.0.5 [INFO] finished tweaking crates.io crate mangle 0.0.5 [INFO] tweaked toml for crates.io crate mangle 0.0.5 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate crates.io crate mangle 0.0.5 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded endian-type v0.1.2 [INFO] [stderr] Downloaded termtree v0.2.4 [INFO] [stderr] Downloaded str-buf v1.0.5 [INFO] [stderr] Downloaded predicates-tree v1.0.5 [INFO] [stderr] Downloaded utf8parse v0.2.0 [INFO] [stderr] Downloaded nibble_vec v0.1.0 [INFO] [stderr] Downloaded redox_syscall v0.2.13 [INFO] [stderr] Downloaded assert_cmd v2.0.4 [INFO] [stderr] Downloaded predicates-core v1.0.3 [INFO] [stderr] Downloaded quote v1.0.17 [INFO] [stderr] Downloaded clap_derive v3.1.7 [INFO] [stderr] Downloaded indexmap v1.8.1 [INFO] [stderr] Downloaded proc-macro2 v1.0.36 [INFO] [stderr] Downloaded rustyline v9.1.2 [INFO] [stderr] Downloaded itertools v0.10.3 [INFO] [stderr] Downloaded memchr v2.4.1 [INFO] [stderr] Downloaded radix_trie v0.2.1 [INFO] [stderr] Downloaded textwrap v0.15.0 [INFO] [stderr] Downloaded clap v3.1.8 [INFO] [stderr] Downloaded io-lifetimes v0.6.1 [INFO] [stderr] Downloaded fd-lock v3.0.5 [INFO] [stderr] Downloaded syn v1.0.91 [INFO] [stderr] Downloaded rustix v0.34.2 [INFO] [stderr] Downloaded smallvec v1.8.0 [INFO] [stderr] Downloaded os_str_bytes v6.0.0 [INFO] [stderr] Downloaded bstr v0.2.17 [INFO] [stderr] Downloaded predicates v2.1.1 [INFO] [stderr] Downloaded clipboard-win v4.4.1 [INFO] [stderr] Downloaded libc v0.2.121 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.30.0 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.30.0 [INFO] [stderr] Downloaded linux-raw-sys v0.0.42 [INFO] [stderr] Downloaded windows_i686_gnu v0.30.0 [INFO] [stderr] Downloaded windows_i686_msvc v0.30.0 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.30.0 [INFO] [stderr] Downloaded windows-sys v0.30.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 75498e289c3ae69c5182b710ebe955c6f808b492f980d06fec3a25c10543917e [INFO] running `Command { std: "docker" "start" "-a" "75498e289c3ae69c5182b710ebe955c6f808b492f980d06fec3a25c10543917e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "75498e289c3ae69c5182b710ebe955c6f808b492f980d06fec3a25c10543917e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "75498e289c3ae69c5182b710ebe955c6f808b492f980d06fec3a25c10543917e", kill_on_drop: false }` [INFO] [stdout] 75498e289c3ae69c5182b710ebe955c6f808b492f980d06fec3a25c10543917e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c3410ab40d4998996a0248c8f4a82a66d3775f37d32da13ad263809f64accf08 [INFO] running `Command { std: "docker" "start" "-a" "c3410ab40d4998996a0248c8f4a82a66d3775f37d32da13ad263809f64accf08", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.121 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.91 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling io-lifetimes v0.6.1 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling rustix v0.34.2 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling indexmap v1.8.1 [INFO] [stderr] Checking smallvec v1.8.0 [INFO] [stderr] Compiling log v0.4.16 [INFO] [stderr] Checking linux-raw-sys v0.0.42 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Compiling heck v0.4.0 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking os_str_bytes v6.0.0 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Compiling quote v1.0.17 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking predicates-core v1.0.3 [INFO] [stderr] Checking utf8parse v0.2.0 [INFO] [stderr] Checking unicode-segmentation v1.9.0 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking termcolor v1.1.3 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking nix v0.23.1 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking textwrap v0.15.0 [INFO] [stderr] Checking itertools v0.10.3 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Checking dirs v4.0.0 [INFO] [stderr] Checking termtree v0.2.4 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Checking predicates-tree v1.0.5 [INFO] [stderr] Checking bstr v0.2.17 [INFO] [stderr] Checking fd-lock v3.0.5 [INFO] [stderr] Checking regex v1.5.5 [INFO] [stderr] Checking predicates v2.1.1 [INFO] [stderr] Checking assert_cmd v2.0.4 [INFO] [stderr] Compiling clap_derive v3.1.7 [INFO] [stderr] Checking rustyline v9.1.2 [INFO] [stderr] Checking clap v3.1.8 [INFO] [stderr] Checking mangle v0.0.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `scope` is never read [INFO] [stdout] --> src/interpreter.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | word_separator: char, [INFO] [stdout] 7 | scope: Scope, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `scope` is never read [INFO] [stdout] --> src/interpreter.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | word_separator: char, [INFO] [stdout] 7 | scope: Scope, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> tests/readfile.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | drop(cmd_stdin); [INFO] [stdout] | ^^^^^---------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut ChildStdin` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 28 - drop(cmd_stdin); [INFO] [stdout] 28 + let _ = cmd_stdin; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.98s [INFO] running `Command { std: "docker" "inspect" "c3410ab40d4998996a0248c8f4a82a66d3775f37d32da13ad263809f64accf08", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c3410ab40d4998996a0248c8f4a82a66d3775f37d32da13ad263809f64accf08", kill_on_drop: false }` [INFO] [stdout] c3410ab40d4998996a0248c8f4a82a66d3775f37d32da13ad263809f64accf08 [INFO] checking mangle-0.0.5 against try#f9935d29d867449445ee008640ccca1bf1ae0889+rustflags=-Dtail_expr_drop_order for crater-rollup-uwu [INFO] extracting crate mangle 0.0.5 into /workspace/builds/worker-7-tc2/source [INFO] validating manifest of crates.io crate mangle 0.0.5 on toolchain f9935d29d867449445ee008640ccca1bf1ae0889 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate mangle 0.0.5 [INFO] finished tweaking crates.io crate mangle 0.0.5 [INFO] tweaked toml for crates.io crate mangle 0.0.5 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] crate crates.io crate mangle 0.0.5 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" "+f9935d29d867449445ee008640ccca1bf1ae0889" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1539e28cc129f1030481975cfb8833d77ee3dc61dad889d3d14aab2200a32ba5 [INFO] running `Command { std: "docker" "start" "-a" "1539e28cc129f1030481975cfb8833d77ee3dc61dad889d3d14aab2200a32ba5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1539e28cc129f1030481975cfb8833d77ee3dc61dad889d3d14aab2200a32ba5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1539e28cc129f1030481975cfb8833d77ee3dc61dad889d3d14aab2200a32ba5", kill_on_drop: false }` [INFO] [stdout] 1539e28cc129f1030481975cfb8833d77ee3dc61dad889d3d14aab2200a32ba5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail_expr_drop_order" "-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c31d962c7c1096148ceb4ce9cfbdd6f90c059a52266137108686953ef353bad0 [INFO] running `Command { std: "docker" "start" "-a" "c31d962c7c1096148ceb4ce9cfbdd6f90c059a52266137108686953ef353bad0", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.121 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling io-lifetimes v0.6.1 [INFO] [stderr] Compiling syn v1.0.91 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling rustix v0.34.2 [INFO] [stderr] Compiling indexmap v1.8.1 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling log v0.4.16 [INFO] [stderr] Checking linux-raw-sys v0.0.42 [INFO] [stderr] Checking smallvec v1.8.0 [INFO] [stderr] Compiling heck v0.4.0 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Compiling quote v1.0.17 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking os_str_bytes v6.0.0 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking termcolor v1.1.3 [INFO] [stderr] Checking utf8parse v0.2.0 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking textwrap v0.15.0 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking predicates-core v1.0.3 [INFO] [stderr] Checking unicode-segmentation v1.9.0 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking nix v0.23.1 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Checking dirs v4.0.0 [INFO] [stderr] Checking itertools v0.10.3 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking termtree v0.2.4 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Checking predicates-tree v1.0.5 [INFO] [stderr] Checking bstr v0.2.17 [INFO] [stderr] Checking fd-lock v3.0.5 [INFO] [stderr] Checking regex v1.5.5 [INFO] [stderr] Checking predicates v2.1.1 [INFO] [stderr] Compiling clap_derive v3.1.7 [INFO] [stderr] Checking assert_cmd v2.0.4 [INFO] [stderr] Checking rustyline v9.1.2 [INFO] [stderr] Checking clap v3.1.8 [INFO] [stderr] Checking mangle v0.0.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `scope` is never read [INFO] [stdout] --> src/interpreter.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | word_separator: char, [INFO] [stdout] 7 | scope: Scope, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `scope` is never read [INFO] [stdout] --> src/interpreter.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | word_separator: char, [INFO] [stdout] 7 | scope: Scope, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> tests/readfile.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | drop(cmd_stdin); [INFO] [stdout] | ^^^^^---------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&mut ChildStdin` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 28 - drop(cmd_stdin); [INFO] [stdout] 28 + let _ = cmd_stdin; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/main.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 26 | fn read_lines
(filename: P) -> io::Result (filename: P) -> io::Result