[INFO] fetching crate flowclib 0.8.8... [INFO] testing flowclib-0.8.8 against try#8262275854dc0e5381c9d42d56257d94932c5a87 for pr-90799 [INFO] extracting crate flowclib 0.8.8 into /workspace/builds/worker-114/source [INFO] validating manifest of crates.io crate flowclib 0.8.8 on toolchain 8262275854dc0e5381c9d42d56257d94932c5a87 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate flowclib 0.8.8 [INFO] finished tweaking crates.io crate flowclib 0.8.8 [INFO] tweaked toml for crates.io crate flowclib 0.8.8 written to /workspace/builds/worker-114/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded strfmt v0.1.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b59a10b65418316dc640af09d36a6047979bed39148bc9db8d44e6f7d483ee7c [INFO] running `Command { std: "docker" "start" "-a" "b59a10b65418316dc640af09d36a6047979bed39148bc9db8d44e6f7d483ee7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b59a10b65418316dc640af09d36a6047979bed39148bc9db8d44e6f7d483ee7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b59a10b65418316dc640af09d36a6047979bed39148bc9db8d44e6f7d483ee7c", kill_on_drop: false }` [INFO] [stdout] b59a10b65418316dc640af09d36a6047979bed39148bc9db8d44e6f7d483ee7c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f32f2fb300a79510e22f6dcdb2572106fbe94dd08c347bdeb9c88a76a9bb2149 [INFO] running `Command { std: "docker" "start" "-a" "f32f2fb300a79510e22f6dcdb2572106fbe94dd08c347bdeb9c88a76a9bb2149", kill_on_drop: false }` [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling memory_units v0.3.0 [INFO] [stderr] Compiling strfmt v0.1.6 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Compiling itertools v0.8.2 [INFO] [stderr] Compiling instant v0.1.12 [INFO] [stderr] Compiling multimap v0.5.0 [INFO] [stderr] Compiling erased-serde v0.3.16 [INFO] [stderr] Compiling toml v0.4.10 [INFO] [stderr] Compiling flow_impl v0.8.5 [INFO] [stderr] Compiling serde_derive v1.0.130 [INFO] [stderr] Compiling parity-wasm v0.31.3 [INFO] [stderr] Compiling shrinkwraprs v0.2.3 [INFO] [stderr] Compiling wasmi-validation v0.1.0 [INFO] [stderr] Compiling wasmi v0.4.5 [INFO] [stderr] Compiling backtrace v0.3.63 [INFO] [stderr] Compiling serde_yaml v0.8.21 [INFO] [stderr] Compiling flowrlib v0.8.8 [INFO] [stderr] Compiling flowclib v0.8.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/model/flow.rs:320:9 [INFO] [stdout] | [INFO] [stdout] 320 | replace(&mut self.connections, Some(connections)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 50.76s [INFO] running `Command { std: "docker" "inspect" "f32f2fb300a79510e22f6dcdb2572106fbe94dd08c347bdeb9c88a76a9bb2149", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f32f2fb300a79510e22f6dcdb2572106fbe94dd08c347bdeb9c88a76a9bb2149", kill_on_drop: false }` [INFO] [stdout] f32f2fb300a79510e22f6dcdb2572106fbe94dd08c347bdeb9c88a76a9bb2149 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cfd7508a5174a26c4f71837cf9d16903b4465ee5e8e55902c3fa9acfe4b27a2e [INFO] running `Command { std: "docker" "start" "-a" "cfd7508a5174a26c4f71837cf9d16903b4465ee5e8e55902c3fa9acfe4b27a2e", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling tinyvec_macros v0.1.0 [INFO] [stderr] Compiling matches v0.1.9 [INFO] [stderr] Compiling unicode-bidi v0.3.7 [INFO] [stderr] Compiling remove_dir_all v0.5.3 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/model/flow.rs:320:9 [INFO] [stdout] | [INFO] [stdout] 320 | replace(&mut self.connections, Some(connections)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling tinyvec v1.5.1 [INFO] [stderr] Compiling tempdir v0.3.7 [INFO] [stderr] Compiling unicode-normalization v0.1.19 [INFO] [stderr] Compiling idna v0.2.3 [INFO] [stderr] Compiling url v2.1.1 [INFO] [stderr] Compiling flowclib v0.8.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/model/flow.rs:320:9 [INFO] [stdout] | [INFO] [stdout] 320 | replace(&mut self.connections, Some(connections)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 9.73s [INFO] running `Command { std: "docker" "inspect" "cfd7508a5174a26c4f71837cf9d16903b4465ee5e8e55902c3fa9acfe4b27a2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cfd7508a5174a26c4f71837cf9d16903b4465ee5e8e55902c3fa9acfe4b27a2e", kill_on_drop: false }` [INFO] [stdout] cfd7508a5174a26c4f71837cf9d16903b4465ee5e8e55902c3fa9acfe4b27a2e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-114/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 88ca97b6928a571b083b12d83398c97098675663e2dd26816743769cd516f00d [INFO] running `Command { std: "docker" "start" "-a" "88ca97b6928a571b083b12d83398c97098675663e2dd26816743769cd516f00d", kill_on_drop: false }` [INFO] [stderr] warning: unused return value of `std::mem::replace` that must be used [INFO] [stderr] --> src/model/flow.rs:320:9 [INFO] [stderr] | [INFO] [stderr] 320 | replace(&mut self.connections, Some(connections)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stderr] [INFO] [stderr] warning: `flowclib` (lib) generated 1 warning [INFO] [stderr] warning: `flowclib` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/flowclib-691be31ecfdf5241) [INFO] [stdout] [INFO] [stdout] running 93 tests [INFO] [stdout] test compiler::checker::test::collapse_double_connection ... ok [INFO] [stdout] test compiler::connector::test::collapses_connection_into_subflow ... ok [INFO] [stdout] test compiler::connector::test::collapse_a_connection ... ok [INFO] [stdout] test compiler::connector::test::drop_useless_connections ... ok [INFO] [stdout] test compiler::connector::test::doesnt_collapse_a_non_connection ... ok [INFO] [stdout] test compiler::compile::test::dead_function ... ok [INFO] [stdout] test compiler::connector::test::two_connections_from_flow_boundary ... ok [INFO] [stdout] test deserializers::deserializer_helper::test::invalid_extension ... ok [INFO] [stdout] test deserializers::deserializer_helper::test::no_extension ... ok [INFO] [stdout] test compiler::loader::test::deserialize_library ... ok [INFO] [stdout] test deserializers::deserializer_helper::test::toml_extension_loader ... ok [INFO] [stdout] test deserializers::deserializer_helper::test::valid_file_extension ... ok [INFO] [stdout] test deserializers::deserializer_helper::test::valid_http_extension ... ok [INFO] [stdout] test deserializers::deserializer_helper::test::yaml_extension_loader ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::default_optional_values ... ok [INFO] [stdout] test deserializers::json_deserializer::test::simple_context_loads ... ok [INFO] [stdout] test deserializers::json_deserializer::test::invalid_json ... ok [INFO] [stdout] test deserializers::json_deserializer::test::invalid_context_fails ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::flow_has_optional_values ... ok [INFO] [stdout] test deserializers::json_deserializer::test::simplest_context_loads ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::flow_errors_on_unknown_fields ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::flow_with_function_from_lib ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::flow_with_function_without_source ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::function_errors_on_unknown_fields ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::flow_with_unknown_lib_key ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::function_parses ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::function_lacks_name ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::load_fails_if_no_alias ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::invalid_toml ... ok [INFO] [stdout] test deserializers::yaml_deserializer::test::invalid_yaml ... ok [INFO] [stdout] test deserializers::toml_deserializer::test::simple_context_loads ... ok [INFO] [stdout] test generator::generate::test::function_to_code_with_debug_generation ... ok [INFO] [stdout] test generator::generate::test::function_generation ... ok [INFO] [stdout] test deserializers::yaml_deserializer::test::simple_context_loads ... ok [INFO] [stdout] test generator::generate::test::function_with_array_input_generation ... ok [INFO] [stdout] test generator::generate::test::function_with_array_element_output_generation ... ok [INFO] [stdout] test generator::generate::test::function_with_constant_input_generation ... ok [INFO] [stdout] test generator::generate::test::function_with_initialized_input_generation ... ok [INFO] [stdout] test info::test::can_get_version ... ok [INFO] [stdout] test generator::generate::test::function_with_sub_route_output_generation ... ok [INFO] [stdout] test model::connection::test::array_to_array_depth_1 ... ok [INFO] [stdout] test model::connection::test::array_to_array_depth_more_than_1 ... ok [INFO] [stdout] test model::connection::test::array_to_simple_depth_1 ... ok [INFO] [stdout] test model::connection::test::array_to_simple_depth_1_mismatch ... ok [INFO] [stdout] test model::connection::test::array_to_simple_depth_more_than_1 ... ok [INFO] [stdout] test model::connection::test::deserialize_simple ... ok [INFO] [stdout] test model::connection::test::detect_array_at_output_subpath ... ok [INFO] [stdout] test model::connection::test::detect_array_at_output_root ... ok [INFO] [stdout] test model::connection::test::just_slash_no_change ... ok [INFO] [stdout] test model::connection::test::no_path_no_change ... ok [INFO] [stdout] test model::connection::test::no_trailing_number_no_change ... ok [INFO] [stdout] test model::connection::test::simple_to_array ... ok [INFO] [stdout] test model::connection::test::simple_to_array_mismatch ... ok [INFO] [stdout] test model::connection::test::simple_to_simple_depth_1 ... ok [INFO] [stdout] test model::connection::test::simple_to_simple_depth_greater_than_1 ... ok [INFO] [stdout] test model::connection::test::simple_to_simple_depth_1_mismatch ... ok [INFO] [stdout] test model::datatype::is_array_false ... ok [INFO] [stdout] test model::datatype::is_array_true ... ok [INFO] [stdout] test model::datatype::valid_data_json_type ... ok [INFO] [stdout] test model::datatype::valid_data_string_type ... ok [INFO] [stdout] test model::function::test::deserialize_default_output ... ok [INFO] [stdout] test model::function::test::deserialize_output_empty ... ok [INFO] [stdout] test model::function::test::deserialize_output_specified ... ok [INFO] [stdout] test model::function::test::deserialize_two_outputs_specified ... ok [INFO] [stdout] test model::function::test::get_array_element_of_root_output ... ok [INFO] [stdout] test model::function::test::set_routes ... ok [INFO] [stdout] test model::io::test::deserialize_empty_string ... ok [INFO] [stdout] test model::io::test::deserialize_name ... ok [INFO] [stdout] test model::io::test::deserialize_valid_json_type ... ok [INFO] [stdout] test model::io::test::deserialize_valid_string_type ... ok [INFO] [stdout] test model::io::test::methods_work ... ok [INFO] [stdout] test model::io::test::deserialize_valid_type ... ok [INFO] [stdout] test model::io::test::unique_io_names_validate ... ok [INFO] [stdout] test model::name::test::validates_when_has_value ... ok [INFO] [stdout] test model::process_reference::test::deserialize_simple ... ok [INFO] [stdout] test model::process_reference::test::deserialize_with_constant_input_initialization ... ok [INFO] [stdout] test model::process_reference::test::deserialize_with_constant_input_initialization_inline_table ... ok [INFO] [stdout] test model::process_reference::test::deserialize_with_multiple_input_initialization ... ok [INFO] [stdout] test model::process_reference::test::deserialize_with_input_initialization ... ok [INFO] [stdout] test model::process_reference::test::serialize_with_constant_input_initialization ... ok [INFO] [stdout] test model::connection::test::deserialize_extra_field_fails - should panic ... ok [INFO] [stdout] test model::function::test::deserialize_extra_field_fails - should panic ... ok [INFO] [stdout] test model::function::test::deserialize_missing_name - should panic ... ok [INFO] [stdout] test model::function::test::deserialize_invalid - should panic ... ok [INFO] [stdout] test model::io::test::deserialize_extra_field_fails - should panic ... ok [INFO] [stdout] test model::process_reference::test::deserialize_extra_field_fails - should panic ... ok [INFO] [stdout] test model::function::test::function_with_no_io_not_valid ... ok [INFO] [stdout] test model::datatype::invalid_data_type - should panic ... ok [INFO] [stdout] test model::name::test::number_does_not_validate ... ok [INFO] [stdout] test model::name::test::does_not_validate_when_empty ... ok [INFO] [stdout] test model::io::test::deserialize_invalid_type - should panic ... ok [INFO] [stdout] test model::io::test::non_unique_io_names_wont_validate - should panic ... ok [INFO] [stdout] test model::io::test::multiple_inputs_empty_name_not_allowed - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 93 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s [INFO] [stdout] [INFO] [stderr] Doc-tests flowclib [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test src/dumper/dump_tables.rs - dumper::dump_tables::dump_tables (line 16) ... ok [INFO] [stdout] test src/compiler/loader.rs - compiler::loader::load_context (line 38) ... ok [INFO] [stdout] test src/dumper/dump_flow.rs - dumper::dump_flow::dump_flow (line 16) ... ok [INFO] [stdout] test src/dumper/dump_tables.rs - dumper::dump_tables::dump_functions (line 88) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.09s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "88ca97b6928a571b083b12d83398c97098675663e2dd26816743769cd516f00d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "88ca97b6928a571b083b12d83398c97098675663e2dd26816743769cd516f00d", kill_on_drop: false }` [INFO] [stdout] 88ca97b6928a571b083b12d83398c97098675663e2dd26816743769cd516f00d