[INFO] fetching crate windows-interface 0.100.0...
[INFO] testing windows-interface-0.100.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate windows-interface 0.100.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate windows-interface 0.100.0
[INFO] finished tweaking crates.io crate windows-interface 0.100.0
[INFO] tweaked toml for crates.io crate windows-interface 0.100.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate windows-interface 0.100.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate windows-interface 0.100.0 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" "+1.100.0-beta.1" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1
[INFO] running `Command { std: "docker" "start" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling windows-interface v0.100.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 8.21s
[INFO] running `Command { std: "docker" "inspect" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling windows-interface v0.100.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3.93s
[INFO] running `Command { std: "docker" "inspect" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/windows-interface/38937ffc6e73d60b/out/windows_interface-38937ffc6e73d60b)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stderr] error: 'rustfmt' is not installed for the toolchain '1.100.0-beta.1-x86_64-unknown-linux-gnu'.
[INFO] [stderr] help: run `rustup component add --toolchain 1.100.0-beta.1-x86_64-unknown-linux-gnu rustfmt` to install it
[INFO] [stderr] error: 'rustfmt' is not installed for the toolchain '1.100.0-beta.1-x86_64-unknown-linux-gnu'.
[INFO] [stderr] help: run `rustup component add --toolchain 1.100.0-beta.1-x86_64-unknown-linux-gnu rustfmt` to install it
[INFO] [stdout] test tests::public_visibility ... ok
[INFO] [stderr] error: 'rustfmt' is not installed for the toolchain '1.100.0-beta.1-x86_64-unknown-linux-gnu'.
[INFO] [stderr] help: run `rustup component add --toolchain 1.100.0-beta.1-x86_64-unknown-linux-gnu rustfmt` to install it
[INFO] [stdout] test tests::com_interface_with_parent ... FAILED
[INFO] [stdout] test tests::non_com_interface ... FAILED
[INFO] [stderr] error: 'rustfmt' is not installed for the toolchain '1.100.0-beta.1-x86_64-unknown-linux-gnu'.
[INFO] [stderr] help: run `rustup component add --toolchain 1.100.0-beta.1-x86_64-unknown-linux-gnu rustfmt` to install it
[INFO] [stdout] test tests::interface_no_guid ... FAILED
[INFO] [stderr] error: 'rustfmt' is not installed for the toolchain '1.100.0-beta.1-x86_64-unknown-linux-gnu'.
[INFO] [stderr] help: run `rustup component add --toolchain 1.100.0-beta.1-x86_64-unknown-linux-gnu rustfmt` to install it
[INFO] [stdout] test tests::interface_with_result_return ... FAILED
[INFO] [stderr] error: 'rustfmt' is not installed for the toolchain '1.100.0-beta.1-x86_64-unknown-linux-gnu'.
[INFO] [stderr] help: run `rustup component add --toolchain 1.100.0-beta.1-x86_64-unknown-linux-gnu rustfmt` to install it
[INFO] [stdout] test tests::com_interface_inheriting_parent ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::com_interface_with_parent stdout ----
[INFO] [stdout] rustfmt terminated with failure status code
[INFO] [stdout] // output of #[interface] :
[INFO] [stdout] 
[INFO] [stdout] # [repr (transparent)] struct IFoo (IUnknown) ; impl IFoo { # [inline (always)] unsafe fn GetValue < > (& self , value : * mut i32) -> HRESULT { (:: windows_core :: Interface :: vtable (self) . GetValue) (:: windows_core :: Interface :: as_raw (self) , value) } } unsafe impl :: windows_core :: Interface for IFoo { type Vtable = IFoo_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID { data1 : 0x094d70d6 , data2 : 0x5202 , data3 : 0x44b8 , data4 : [0xab , 0xb8 , 0x43 , 0x86 , 0x0d , 0xa5 , 0xac , 0xa2] } ; } impl :: windows_core :: RuntimeName for IFoo { } impl :: core :: ops :: Deref for IFoo { type Target = IUnknown ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait IFoo_Impl : Sized + { unsafe fn GetValue (& self , value : * mut i32) -> HRESULT ; } # [repr (C)] # [doc (hidden)] struct IFoo_Vtbl { pub base__ : < IUnknown as :: windows_core :: Interface > :: Vtable , pub GetValue : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , value : * mut i32) -> HRESULT , } impl IFoo_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : IFoo_Impl { unsafe extern "system" fn GetValue < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize > (this : * mut :: core :: ffi :: c_void , value : * mut i32) -> HRESULT where Identity : IFoo_Impl { let this_outer : & Identity = & * ((this as * const * const ()) . offset (OFFSET) as * const Identity) ; < Identity as IFoo_Impl > :: GetValue (this_outer , value) . into () } Self { base__ : < IUnknown as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , GetValue : GetValue :: < Identity , OFFSET > } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < IFoo as :: windows_core :: Interface > :: IID } } impl :: core :: convert :: From < IFoo > for :: windows_core :: IUnknown { fn from (value : IFoo) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & IFoo > for :: windows_core :: IUnknown { fn from (value : & IFoo) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for IFoo { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for IFoo { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for IFoo { } impl :: core :: fmt :: Debug for IFoo { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("IFoo") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::com_interface_with_parent' (292) panicked at src/tests.rs:70:9:
[INFO] [stdout] output does not contain expected item:
[INFO] [stdout]   expected: unsafe impl ::windows_core::Interface for IFoo
[INFO] [stdout] 
[INFO] [stdout] full output:
[INFO] [stdout] # [repr (transparent)] struct IFoo (IUnknown) ; impl IFoo { # [inline (always)] unsafe fn GetValue < > (& self , value : * mut i32) -> HRESULT { (:: windows_core :: Interface :: vtable (self) . GetValue) (:: windows_core :: Interface :: as_raw (self) , value) } } unsafe impl :: windows_core :: Interface for IFoo { type Vtable = IFoo_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID { data1 : 0x094d70d6 , data2 : 0x5202 , data3 : 0x44b8 , data4 : [0xab , 0xb8 , 0x43 , 0x86 , 0x0d , 0xa5 , 0xac , 0xa2] } ; } impl :: windows_core :: RuntimeName for IFoo { } impl :: core :: ops :: Deref for IFoo { type Target = IUnknown ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait IFoo_Impl : Sized + { unsafe fn GetValue (& self , value : * mut i32) -> HRESULT ; } # [repr (C)] # [doc (hidden)] struct IFoo_Vtbl { pub base__ : < IUnknown as :: windows_core :: Interface > :: Vtable , pub GetValue : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , value : * mut i32) -> HRESULT , } impl IFoo_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : IFoo_Impl { unsafe extern "system" fn GetValue < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize > (this : * mut :: core :: ffi :: c_void , value : * mut i32) -> HRESULT where Identity : IFoo_Impl { let this_outer : & Identity = & * ((this as * const * const ()) . offset (OFFSET) as * const Identity) ; < Identity as IFoo_Impl > :: GetValue (this_outer , value) . into () } Self { base__ : < IUnknown as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , GetValue : GetValue :: < Identity , OFFSET > } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < IFoo as :: windows_core :: Interface > :: IID } } impl :: core :: convert :: From < IFoo > for :: windows_core :: IUnknown { fn from (value : IFoo) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & IFoo > for :: windows_core :: IUnknown { fn from (value : & IFoo) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for IFoo { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for IFoo { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for IFoo { } impl :: core :: fmt :: Debug for IFoo { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("IFoo") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x7e3f872788c1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x7e3f872788c1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x7e3f872bf44a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x7e3f872bf44a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x7e3f8728950c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x7e3f8728950c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x7e3f87241e26 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x7e3f87241e26 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x7e3f87269869 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5dd36d77ef20 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]   12:     0x7e3f87269b92 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   13:     0x7e3f87269b92 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   14:     0x7e3f87241ed2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   15:     0x7e3f87239499 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   16:     0x7e3f872439bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   17:     0x7e3f872bfedc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   18:     0x5dd36d766775 - <windows_interface[d3c1a272a2327f30]::tests::com_interface_with_parent::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5dd36d77236b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   20:     0x5dd36d77f545 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5dd36d778e34 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5dd36d7825d2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x7e3f87274dff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   24:     0x7e3f87274dff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   25:     0x7e3f86fd1dfa - <unknown>
[INFO] [stdout]   26:     0x7e3f870653d4 - clone
[INFO] [stdout]   27:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::non_com_interface stdout ----
[INFO] [stdout] rustfmt terminated with failure status code
[INFO] [stdout] // output of #[interface] :
[INFO] [stdout] 
[INFO] [stdout] # [repr (transparent)] struct ICallback (:: core :: ptr :: NonNull < :: core :: ffi :: c_void >) ; impl ICallback { # [inline (always)] unsafe fn Invoke < > (& self , result : i32) { (:: windows_core :: Interface :: vtable (self) . Invoke) (:: windows_core :: Interface :: as_raw (self) , result) } } unsafe impl :: windows_core :: Interface for ICallback { type Vtable = ICallback_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID :: zeroed () ; } impl :: windows_core :: RuntimeName for ICallback { } impl :: core :: ops :: Deref for ICallback { type Target = :: core :: ptr :: NonNull < :: core :: ffi :: c_void > ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait ICallback_Impl : Sized + { unsafe fn Invoke (& self , result : i32) ; } # [repr (C)] # [doc (hidden)] struct ICallback_Vtbl { pub Invoke : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , result : i32) , } impl ICallback_Vtbl { pub const fn new < Impl : ICallback_Impl > () -> Self { unsafe extern "system" fn Invoke < Impl : ICallback_Impl > (this : * mut :: core :: ffi :: c_void , result : i32) { let this = (this as * mut * mut :: core :: ffi :: c_void) as * const :: windows_core :: ScopedHeap ; let this = (* this) . this as * const Impl ; (* this) . Invoke (result) . into () } Self { Invoke : Invoke :: < Impl > } } } struct ICallback_ImplVtbl < T : ICallback_Impl > (:: core :: marker :: PhantomData < T >) ; impl < T : ICallback_Impl > ICallback_ImplVtbl < T > { const VTABLE : ICallback_Vtbl = ICallback_Vtbl :: new :: < T > () ; } impl ICallback { fn new < 'a , T : ICallback_Impl > (this : & 'a T) -> :: windows_core :: ScopedInterface < 'a , ICallback > { let this = :: windows_core :: ScopedHeap { vtable : & ICallback_ImplVtbl :: < T > :: VTABLE as * const _ as * const _ , this : this as * const _ as * const _ } ; let this = :: core :: mem :: ManuallyDrop :: new (:: windows_core :: imp :: box_new (this)) ; unsafe { :: windows_core :: ScopedInterface :: new (:: core :: mem :: transmute (& this . vtable)) } } } impl :: core :: convert :: From < ICallback > for :: windows_core :: IUnknown { fn from (value : ICallback) -> Self { unsafe { :: core :: mem :: transmute (value) } } } impl :: core :: convert :: From < & ICallback > for :: windows_core :: IUnknown { fn from (value : & ICallback) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for ICallback { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for ICallback { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for ICallback { } impl :: core :: fmt :: Debug for ICallback { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("ICallback") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::non_com_interface' (295) panicked at src/tests.rs:70:9:
[INFO] [stdout] output does not contain expected item:
[INFO] [stdout]   expected: unsafe impl ::windows_core::Interface for ICallback
[INFO] [stdout] 
[INFO] [stdout] full output:
[INFO] [stdout] # [repr (transparent)] struct ICallback (:: core :: ptr :: NonNull < :: core :: ffi :: c_void >) ; impl ICallback { # [inline (always)] unsafe fn Invoke < > (& self , result : i32) { (:: windows_core :: Interface :: vtable (self) . Invoke) (:: windows_core :: Interface :: as_raw (self) , result) } } unsafe impl :: windows_core :: Interface for ICallback { type Vtable = ICallback_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID :: zeroed () ; } impl :: windows_core :: RuntimeName for ICallback { } impl :: core :: ops :: Deref for ICallback { type Target = :: core :: ptr :: NonNull < :: core :: ffi :: c_void > ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait ICallback_Impl : Sized + { unsafe fn Invoke (& self , result : i32) ; } # [repr (C)] # [doc (hidden)] struct ICallback_Vtbl { pub Invoke : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , result : i32) , } impl ICallback_Vtbl { pub const fn new < Impl : ICallback_Impl > () -> Self { unsafe extern "system" fn Invoke < Impl : ICallback_Impl > (this : * mut :: core :: ffi :: c_void , result : i32) { let this = (this as * mut * mut :: core :: ffi :: c_void) as * const :: windows_core :: ScopedHeap ; let this = (* this) . this as * const Impl ; (* this) . Invoke (result) . into () } Self { Invoke : Invoke :: < Impl > } } } struct ICallback_ImplVtbl < T : ICallback_Impl > (:: core :: marker :: PhantomData < T >) ; impl < T : ICallback_Impl > ICallback_ImplVtbl < T > { const VTABLE : ICallback_Vtbl = ICallback_Vtbl :: new :: < T > () ; } impl ICallback { fn new < 'a , T : ICallback_Impl > (this : & 'a T) -> :: windows_core :: ScopedInterface < 'a , ICallback > { let this = :: windows_core :: ScopedHeap { vtable : & ICallback_ImplVtbl :: < T > :: VTABLE as * const _ as * const _ , this : this as * const _ as * const _ } ; let this = :: core :: mem :: ManuallyDrop :: new (:: windows_core :: imp :: box_new (this)) ; unsafe { :: windows_core :: ScopedInterface :: new (:: core :: mem :: transmute (& this . vtable)) } } } impl :: core :: convert :: From < ICallback > for :: windows_core :: IUnknown { fn from (value : ICallback) -> Self { unsafe { :: core :: mem :: transmute (value) } } } impl :: core :: convert :: From < & ICallback > for :: windows_core :: IUnknown { fn from (value : & ICallback) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for ICallback { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for ICallback { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for ICallback { } impl :: core :: fmt :: Debug for ICallback { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("ICallback") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x7e3f872788c1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x7e3f872788c1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x7e3f872bf44a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x7e3f872bf44a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x7e3f8728950c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x7e3f8728950c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x7e3f87241e26 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x7e3f87241e26 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x7e3f87269869 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5dd36d77ef20 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]   12:     0x7e3f87269b92 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   13:     0x7e3f87269b92 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   14:     0x7e3f87241ed2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   15:     0x7e3f87239499 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   16:     0x7e3f872439bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   17:     0x7e3f872bfedc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   18:     0x5dd36d765fc0 - <windows_interface[d3c1a272a2327f30]::tests::non_com_interface::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5dd36d77236b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   20:     0x5dd36d77f545 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5dd36d778e34 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5dd36d7825d2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x7e3f87274dff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   24:     0x7e3f87274dff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   25:     0x7e3f86fd1dfa - <unknown>
[INFO] [stdout]   26:     0x7e3f870653d4 - clone
[INFO] [stdout]   27:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::interface_no_guid stdout ----
[INFO] [stdout] rustfmt terminated with failure status code
[INFO] [stdout] // output of #[interface] :
[INFO] [stdout] 
[INFO] [stdout] # [repr (transparent)] struct INoGuid (IUnknown) ; impl INoGuid { } unsafe impl :: windows_core :: Interface for INoGuid { type Vtable = INoGuid_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID :: zeroed () ; } impl :: windows_core :: RuntimeName for INoGuid { } impl :: core :: ops :: Deref for INoGuid { type Target = IUnknown ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait INoGuid_Impl : Sized + { } # [repr (C)] # [doc (hidden)] struct INoGuid_Vtbl { pub base__ : < IUnknown as :: windows_core :: Interface > :: Vtable , } impl INoGuid_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : INoGuid_Impl { Self { base__ : < IUnknown as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < INoGuid as :: windows_core :: Interface > :: IID } } impl :: core :: convert :: From < INoGuid > for :: windows_core :: IUnknown { fn from (value : INoGuid) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & INoGuid > for :: windows_core :: IUnknown { fn from (value : & INoGuid) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for INoGuid { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for INoGuid { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for INoGuid { } impl :: core :: fmt :: Debug for INoGuid { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("INoGuid") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::interface_no_guid' (293) panicked at src/tests.rs:70:9:
[INFO] [stdout] output does not contain expected item:
[INFO] [stdout]   expected: ::windows_core::GUID::zeroed()
[INFO] [stdout] 
[INFO] [stdout] full output:
[INFO] [stdout] # [repr (transparent)] struct INoGuid (IUnknown) ; impl INoGuid { } unsafe impl :: windows_core :: Interface for INoGuid { type Vtable = INoGuid_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID :: zeroed () ; } impl :: windows_core :: RuntimeName for INoGuid { } impl :: core :: ops :: Deref for INoGuid { type Target = IUnknown ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait INoGuid_Impl : Sized + { } # [repr (C)] # [doc (hidden)] struct INoGuid_Vtbl { pub base__ : < IUnknown as :: windows_core :: Interface > :: Vtable , } impl INoGuid_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : INoGuid_Impl { Self { base__ : < IUnknown as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < INoGuid as :: windows_core :: Interface > :: IID } } impl :: core :: convert :: From < INoGuid > for :: windows_core :: IUnknown { fn from (value : INoGuid) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & INoGuid > for :: windows_core :: IUnknown { fn from (value : & INoGuid) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for INoGuid { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for INoGuid { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for INoGuid { } impl :: core :: fmt :: Debug for INoGuid { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("INoGuid") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x7e3f872788c1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x7e3f872788c1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x7e3f872bf44a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x7e3f872bf44a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x7e3f8728950c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x7e3f8728950c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x7e3f87241e26 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x7e3f87241e26 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x7e3f87269869 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5dd36d77ef20 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]   12:     0x7e3f87269b92 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   13:     0x7e3f87269b92 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   14:     0x7e3f87241ed2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   15:     0x7e3f87239499 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   16:     0x7e3f872439bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   17:     0x7e3f872bfedc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   18:     0x5dd36d765bd6 - <windows_interface[d3c1a272a2327f30]::tests::interface_no_guid::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5dd36d77236b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   20:     0x5dd36d77f545 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5dd36d778e34 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5dd36d7825d2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x7e3f87274dff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   24:     0x7e3f87274dff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   25:     0x7e3f86fd1dfa - <unknown>
[INFO] [stdout]   26:     0x7e3f870653d4 - clone
[INFO] [stdout]   27:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::interface_with_result_return stdout ----
[INFO] [stdout] rustfmt terminated with failure status code
[INFO] [stdout] // output of #[interface] :
[INFO] [stdout] 
[INFO] [stdout] # [repr (transparent)] struct IReader (IUnknown) ; impl IReader { # [inline (always)] unsafe fn Read < > (& self , buf : * mut u8 , len : u32) -> Result < u32 > { (:: windows_core :: Interface :: vtable (self) . Read) (:: windows_core :: Interface :: as_raw (self) , buf , len) . ok () } } unsafe impl :: windows_core :: Interface for IReader { type Vtable = IReader_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID { data1 : 0x00000000 , data2 : 0x0000 , data3 : 0x0000 , data4 : [0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03] } ; } impl :: windows_core :: RuntimeName for IReader { } impl :: core :: ops :: Deref for IReader { type Target = IUnknown ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait IReader_Impl : Sized + { unsafe fn Read (& self , buf : * mut u8 , len : u32) -> Result < u32 > ; } # [repr (C)] # [doc (hidden)] struct IReader_Vtbl { pub base__ : < IUnknown as :: windows_core :: Interface > :: Vtable , pub Read : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , buf : * mut u8 , len : u32) -> :: windows_core :: HRESULT , } impl IReader_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : IReader_Impl { unsafe extern "system" fn Read < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize > (this : * mut :: core :: ffi :: c_void , buf : * mut u8 , len : u32) -> :: windows_core :: HRESULT where Identity : IReader_Impl { let this_outer : & Identity = & * ((this as * const * const ()) . offset (OFFSET) as * const Identity) ; < Identity as IReader_Impl > :: Read (this_outer , buf , len) . into () } Self { base__ : < IUnknown as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , Read : Read :: < Identity , OFFSET > } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < IReader as :: windows_core :: Interface > :: IID } } impl :: core :: convert :: From < IReader > for :: windows_core :: IUnknown { fn from (value : IReader) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & IReader > for :: windows_core :: IUnknown { fn from (value : & IReader) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for IReader { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for IReader { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for IReader { } impl :: core :: fmt :: Debug for IReader { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("IReader") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::interface_with_result_return' (294) panicked at src/tests.rs:70:9:
[INFO] [stdout] output does not contain expected item:
[INFO] [stdout]   expected: .ok()
[INFO] [stdout] 
[INFO] [stdout] full output:
[INFO] [stdout] # [repr (transparent)] struct IReader (IUnknown) ; impl IReader { # [inline (always)] unsafe fn Read < > (& self , buf : * mut u8 , len : u32) -> Result < u32 > { (:: windows_core :: Interface :: vtable (self) . Read) (:: windows_core :: Interface :: as_raw (self) , buf , len) . ok () } } unsafe impl :: windows_core :: Interface for IReader { type Vtable = IReader_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID { data1 : 0x00000000 , data2 : 0x0000 , data3 : 0x0000 , data4 : [0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03] } ; } impl :: windows_core :: RuntimeName for IReader { } impl :: core :: ops :: Deref for IReader { type Target = IUnknown ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait IReader_Impl : Sized + { unsafe fn Read (& self , buf : * mut u8 , len : u32) -> Result < u32 > ; } # [repr (C)] # [doc (hidden)] struct IReader_Vtbl { pub base__ : < IUnknown as :: windows_core :: Interface > :: Vtable , pub Read : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , buf : * mut u8 , len : u32) -> :: windows_core :: HRESULT , } impl IReader_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : IReader_Impl { unsafe extern "system" fn Read < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize > (this : * mut :: core :: ffi :: c_void , buf : * mut u8 , len : u32) -> :: windows_core :: HRESULT where Identity : IReader_Impl { let this_outer : & Identity = & * ((this as * const * const ()) . offset (OFFSET) as * const Identity) ; < Identity as IReader_Impl > :: Read (this_outer , buf , len) . into () } Self { base__ : < IUnknown as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , Read : Read :: < Identity , OFFSET > } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < IReader as :: windows_core :: Interface > :: IID } } impl :: core :: convert :: From < IReader > for :: windows_core :: IUnknown { fn from (value : IReader) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & IReader > for :: windows_core :: IUnknown { fn from (value : & IReader) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for IReader { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for IReader { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for IReader { } impl :: core :: fmt :: Debug for IReader { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("IReader") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x7e3f872788c1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x7e3f872788c1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x7e3f872bf44a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x7e3f872bf44a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x7e3f8728950c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x7e3f8728950c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x7e3f87241e26 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x7e3f87241e26 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x7e3f87269869 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5dd36d77ef20 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]   12:     0x7e3f87269b92 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   13:     0x7e3f87269b92 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   14:     0x7e3f87241ed2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   15:     0x7e3f87239499 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   16:     0x7e3f872439bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   17:     0x7e3f872bfedc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   18:     0x5dd36d766b86 - <windows_interface[d3c1a272a2327f30]::tests::interface_with_result_return::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5dd36d77236b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   20:     0x5dd36d77f545 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5dd36d778e34 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5dd36d7825d2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x7e3f87274dff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   24:     0x7e3f87274dff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   25:     0x7e3f86fd1dfa - <unknown>
[INFO] [stdout]   26:     0x7e3f870653d4 - clone
[INFO] [stdout]   27:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::com_interface_inheriting_parent stdout ----
[INFO] [stdout] rustfmt terminated with failure status code
[INFO] [stdout] // output of #[interface] :
[INFO] [stdout] 
[INFO] [stdout] # [repr (transparent)] struct IBar (IFoo) ; impl IBar { # [inline (always)] unsafe fn SetValue < > (& self , value : i32) -> HRESULT { (:: windows_core :: Interface :: vtable (self) . SetValue) (:: windows_core :: Interface :: as_raw (self) , value) } } unsafe impl :: windows_core :: Interface for IBar { type Vtable = IBar_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID { data1 : 0x00000000 , data2 : 0x0000 , data3 : 0x0000 , data4 : [0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02] } ; } impl :: windows_core :: RuntimeName for IBar { } impl :: core :: ops :: Deref for IBar { type Target = IFoo ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait IBar_Impl : Sized + IFoo_Impl { unsafe fn SetValue (& self , value : i32) -> HRESULT ; } # [repr (C)] # [doc (hidden)] struct IBar_Vtbl { pub base__ : < IFoo as :: windows_core :: Interface > :: Vtable , pub SetValue : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , value : i32) -> HRESULT , } impl IBar_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : IBar_Impl { unsafe extern "system" fn SetValue < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize > (this : * mut :: core :: ffi :: c_void , value : i32) -> HRESULT where Identity : IBar_Impl { let this_outer : & Identity = & * ((this as * const * const ()) . offset (OFFSET) as * const Identity) ; < Identity as IBar_Impl > :: SetValue (this_outer , value) . into () } Self { base__ : < IFoo as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , SetValue : SetValue :: < Identity , OFFSET > } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < IBar as :: windows_core :: Interface > :: IID || < < IFoo as :: windows_core :: Interface > :: Vtable > :: matches (iid) } } impl :: core :: convert :: From < IBar > for :: windows_core :: IUnknown { fn from (value : IBar) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & IBar > for :: windows_core :: IUnknown { fn from (value : & IBar) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for IBar { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for IBar { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for IBar { } impl :: core :: fmt :: Debug for IBar { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("IBar") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::com_interface_inheriting_parent' (291) panicked at src/tests.rs:70:9:
[INFO] [stdout] output does not contain expected item:
[INFO] [stdout]   expected: unsafe impl ::windows_core::Interface for IBar
[INFO] [stdout] 
[INFO] [stdout] full output:
[INFO] [stdout] # [repr (transparent)] struct IBar (IFoo) ; impl IBar { # [inline (always)] unsafe fn SetValue < > (& self , value : i32) -> HRESULT { (:: windows_core :: Interface :: vtable (self) . SetValue) (:: windows_core :: Interface :: as_raw (self) , value) } } unsafe impl :: windows_core :: Interface for IBar { type Vtable = IBar_Vtbl ; const IID : :: windows_core :: GUID = :: windows_core :: GUID { data1 : 0x00000000 , data2 : 0x0000 , data3 : 0x0000 , data4 : [0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02] } ; } impl :: windows_core :: RuntimeName for IBar { } impl :: core :: ops :: Deref for IBar { type Target = IFoo ; fn deref (& self) -> & Self :: Target { & self . 0 } } # [allow (non_camel_case_types)] trait IBar_Impl : Sized + IFoo_Impl { unsafe fn SetValue (& self , value : i32) -> HRESULT ; } # [repr (C)] # [doc (hidden)] struct IBar_Vtbl { pub base__ : < IFoo as :: windows_core :: Interface > :: Vtable , pub SetValue : unsafe extern "system" fn (this : * mut :: core :: ffi :: c_void , value : i32) -> HRESULT , } impl IBar_Vtbl { pub const fn new < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize , > () -> Self where Identity : IBar_Impl { unsafe extern "system" fn SetValue < Identity : :: windows_core :: IUnknownImpl , const OFFSET : isize > (this : * mut :: core :: ffi :: c_void , value : i32) -> HRESULT where Identity : IBar_Impl { let this_outer : & Identity = & * ((this as * const * const ()) . offset (OFFSET) as * const Identity) ; < Identity as IBar_Impl > :: SetValue (this_outer , value) . into () } Self { base__ : < IFoo as :: windows_core :: Interface > :: Vtable :: new :: < Identity , OFFSET > () , SetValue : SetValue :: < Identity , OFFSET > } } # [inline (always)] pub fn matches (iid : & :: windows_core :: GUID) -> bool { * iid == < IBar as :: windows_core :: Interface > :: IID || < < IFoo as :: windows_core :: Interface > :: Vtable > :: matches (iid) } } impl :: core :: convert :: From < IBar > for :: windows_core :: IUnknown { fn from (value : IBar) -> Self { :: windows_core :: IUnknown :: from (value . 0) } } impl :: core :: convert :: From < & IBar > for :: windows_core :: IUnknown { fn from (value : & IBar) -> Self { :: core :: convert :: From :: from (:: core :: clone :: Clone :: clone (value)) } } impl :: core :: clone :: Clone for IBar { fn clone (& self) -> Self { Self (self . 0 . clone ()) } } impl :: core :: cmp :: PartialEq for IBar { fn eq (& self , other : & Self) -> bool { self . 0 == other . 0 } } impl :: core :: cmp :: Eq for IBar { } impl :: core :: fmt :: Debug for IBar { fn fmt (& self , f : & mut :: core :: fmt :: Formatter) -> :: core :: fmt :: Result { f . debug_tuple ("IBar") . field (& :: windows_core :: Interface :: as_raw (self)) . finish () } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x7e3f872788c1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x7e3f872788c1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x7e3f872788c1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x7e3f872bf44a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x7e3f872bf44a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x7e3f8728950c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x7e3f8728950c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x7e3f87241e26 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x7e3f87241e26 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x7e3f87269869 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5dd36d77ef20 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]   12:     0x7e3f87269b92 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   13:     0x7e3f87269b92 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   14:     0x7e3f87241ed2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   15:     0x7e3f87239499 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   16:     0x7e3f872439bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   17:     0x7e3f872bfedc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   18:     0x5dd36d76703b - <windows_interface[d3c1a272a2327f30]::tests::com_interface_inheriting_parent::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5dd36d77236b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   20:     0x5dd36d77f545 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5dd36d778e34 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5dd36d7825d2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x7e3f87274dff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   24:     0x7e3f87274dff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   25:     0x7e3f86fd1dfa - <unknown>
[INFO] [stdout]   26:     0x7e3f870653d4 - clone
[INFO] [stdout]   27:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::com_interface_inheriting_parent
[INFO] [stdout]     tests::com_interface_with_parent
[INFO] [stdout]     tests::interface_no_guid
[INFO] [stdout]     tests::interface_with_result_return
[INFO] [stdout]     tests::non_com_interface
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1", kill_on_drop: false }`
[INFO] [stdout] b8c853e3d01196648e3d2321ebcb73c74ce985e6027954ae151ebff8a9665aa1
