[INFO] cloning repository https://github.com/meowjesty/get_file_version_example [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/meowjesty/get_file_version_example" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeowjesty%2Fget_file_version_example", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeowjesty%2Fget_file_version_example'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8f9ace261a3637e2860423d6347363131b66c8c0 [INFO] building meowjesty/get_file_version_example against try#8b8eff55bd72abbb57167bc42222a7f91d41cb0d for pr-142134-abi-ast-error [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeowjesty%2Fget_file_version_example" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/meowjesty/get_file_version_example on toolchain 8b8eff55bd72abbb57167bc42222a7f91d41cb0d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/meowjesty/get_file_version_example [INFO] finished tweaking git repo https://github.com/meowjesty/get_file_version_example [INFO] tweaked toml for git repo https://github.com/meowjesty/get_file_version_example written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/meowjesty/get_file_version_example 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" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b6461746688b6054ba7e727d50fcbc503be7c849884984f8d19378ea86a29bba [INFO] running `Command { std: "docker" "start" "-a" "b6461746688b6054ba7e727d50fcbc503be7c849884984f8d19378ea86a29bba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b6461746688b6054ba7e727d50fcbc503be7c849884984f8d19378ea86a29bba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b6461746688b6054ba7e727d50fcbc503be7c849884984f8d19378ea86a29bba", kill_on_drop: false }` [INFO] [stdout] b6461746688b6054ba7e727d50fcbc503be7c849884984f8d19378ea86a29bba [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ff07496cdae314be55f7047480b818d4d7c2ef6a478b6a6d52a5abe57c64f1e0 [INFO] running `Command { std: "docker" "start" "-a" "ff07496cdae314be55f7047480b818d4d7c2ef6a478b6a6d52a5abe57c64f1e0", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.28 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.75 [INFO] [stderr] Compiling windows_reader v0.19.0 [INFO] [stderr] Compiling windows_quote v0.19.0 [INFO] [stderr] Compiling const-sha1 v0.2.0 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling windows_gen v0.19.0 [INFO] [stderr] Compiling windows_macros v0.19.0 [INFO] [stderr] Compiling windows v0.19.0 [INFO] [stderr] Compiling get-file-version v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/get-file-version-7c8fe5c53c56dfef/out/windows.rs:1:3933 [INFO] [stdout] | [INFO] [stdout] 1 | ... { if ! value . 0 . is_null ( ) { unsafe { :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: Into... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Win32 { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: default :: Default , :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct BOOL ( pub i32 ) ; unsafe impl :: windows :: Abi for BOOL { type Abi = Self ; type DefaultType = Self ; } impl BOOL { # [ inline ] pub fn as_bool ( self ) -> bool { ! ( self . 0 == 0 ) } # [ inline ] pub fn ok ( self ) -> :: windows :: Result < ( ) > { if self . as_bool ( ) { Ok ( ( ) ) } else { Err ( :: windows :: HRESULT :: from_thread ( ) . into ( ) ) } } # [ inline ] # [ track_caller ] pub fn unwrap ( self ) { self . ok ( ) . unwrap ( ) ; } # [ inline ] # [ track_caller ] pub fn expect ( self , msg : & str ) { self . ok ( ) . expect ( msg ) ; } } impl :: std :: convert :: From < BOOL > for bool { fn from ( value : BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < & BOOL > for bool { fn from ( value : & BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < bool > for BOOL { fn from ( value : bool ) -> Self { if value { BOOL ( 1 ) } else { BOOL ( 0 ) } } } impl :: std :: convert :: From < & bool > for BOOL { fn from ( value : & bool ) -> Self { ( * value ) . into ( ) } } impl :: std :: cmp :: PartialEq < bool > for BOOL { fn eq ( & self , other : & bool ) -> bool { self . as_bool ( ) == * other } } impl :: std :: cmp :: PartialEq < BOOL > for bool { fn eq ( & self , other : & BOOL ) -> bool { * self == other . as_bool ( ) } } impl std :: ops :: Not for BOOL { type Output = Self ; fn not ( self ) -> Self :: Output { if self . as_bool ( ) { BOOL ( 0 ) } else { BOOL ( 1 ) } } } impl < 'a > :: windows :: IntoParam < 'a , BOOL > for bool { fn into_param ( self ) -> :: windows :: Param < 'a , BOOL > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct HINSTANCE ( pub isize ) ; impl HINSTANCE { } impl :: std :: default :: Default for HINSTANCE { fn default ( ) -> Self { Self ( 0 ) } } impl HINSTANCE { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for HINSTANCE { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "HINSTANCE" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for HINSTANCE { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for HINSTANCE { } unsafe impl :: windows :: Abi for HINSTANCE { type Abi = Self ; type DefaultType = Self ; } # [ repr ( transparent ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct PSTR ( pub * mut u8 ) ; impl PSTR { pub const NULL : Self = Self ( :: std :: ptr :: null_mut ( ) ) ; pub fn is_null ( & self ) -> bool { self . 0 . is_null ( ) } } impl :: std :: default :: Default for PSTR { fn default ( ) -> Self { Self ( :: std :: ptr :: null_mut ( ) ) } } impl :: std :: cmp :: PartialEq for PSTR { fn eq ( & self , other : & Self ) -> bool { self . 0 == other . 0 } } unsafe impl :: windows :: Abi for PSTR { type Abi = Self ; type DefaultType = Self ; fn drop_param ( param : & mut :: windows :: Param < '_ , Self > ) { if let :: windows :: Param :: Boxed ( value ) = param { if ! value . 0 . is_null ( ) { unsafe { let _ = :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for & 'a str { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for String { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileSystem { pub unsafe fn GetFileVersionInfoA < 'a , > ( lptstrfilename : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , dwhandle : u32 , dwlen : u32 , lpdata : * mut :: std :: ffi :: c_void , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="VERSION" ) ] extern "system" { fn GetFileVersionInfoA ( lptstrfilename : super::super::Foundation:: PSTR , dwhandle : u32 , dwlen : u32 , lpdata : * mut :: std :: ffi :: c_void ) -> super::super::Foundation:: BOOL ; } GetFileVersionInfoA ( lptstrfilename . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( dwhandle ) , :: std :: mem :: transmute ( dwlen ) , :: std :: mem :: transmute ( lpdata ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn GetFileVersionInfoSizeA < 'a , > ( lptstrfilename : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , lpdwhandle : * mut u32 , ) -> u32 { # [ cfg ( windows ) ] { # [ link ( name ="VERSION" ) ] extern "system" { fn GetFileVersionInfoSizeA ( lptstrfilename : super::super::Foundation:: PSTR , lpdwhandle : * mut u32 ) -> u32 ; } GetFileVersionInfoSizeA ( lptstrfilename . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpdwhandle ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct VS_FIXEDFILEINFO { pub dwSignature : u32 , pub dwStrucVersion : u32 , pub dwFileVersionMS : u32 , pub dwFileVersionLS : u32 , pub dwProductVersionMS : u32 , pub dwProductVersionLS : u32 , pub dwFileFlagsMask : u32 , pub dwFileFlags : VS_FIXEDFILEINFO_FILE_FLAGS , pub dwFileOS : VS_FIXEDFILEINFO_FILE_OS , pub dwFileType : VS_FIXEDFILEINFO_FILE_TYPE , pub dwFileSubtype : VS_FIXEDFILEINFO_FILE_SUBTYPE , pub dwFileDateMS : u32 , pub dwFileDateLS : u32 } impl VS_FIXEDFILEINFO { } impl :: std :: default :: Default for VS_FIXEDFILEINFO { fn default ( ) -> Self { Self { dwSignature : 0 , dwStrucVersion : 0 , dwFileVersionMS : 0 , dwFileVersionLS : 0 , dwProductVersionMS : 0 , dwProductVersionLS : 0 , dwFileFlagsMask : 0 , dwFileFlags : :: std :: default :: Default :: default ( ) , dwFileOS : :: std :: default :: Default :: default ( ) , dwFileType : :: std :: default :: Default :: default ( ) , dwFileSubtype : :: std :: default :: Default :: default ( ) , dwFileDateMS : 0 , dwFileDateLS : 0 } } } impl :: std :: fmt :: Debug for VS_FIXEDFILEINFO { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "VS_FIXEDFILEINFO" ) . field ( "dwSignature" , & self . dwSignature ) . field ( "dwStrucVersion" , & self . dwStrucVersion ) . field ( "dwFileVersionMS" , & self . dwFileVersionMS ) . field ( "dwFileVersionLS" , & self . dwFileVersionLS ) . field ( "dwProductVersionMS" , & self . dwProductVersionMS ) . field ( "dwProductVersionLS" , & self . dwProductVersionLS ) . field ( "dwFileFlagsMask" , & self . dwFileFlagsMask ) . field ( "dwFileFlags" , & self . dwFileFlags ) . field ( "dwFileOS" , & self . dwFileOS ) . field ( "dwFileType" , & self . dwFileType ) . field ( "dwFileSubtype" , & self . dwFileSubtype ) . field ( "dwFileDateMS" , & self . dwFileDateMS ) . field ( "dwFileDateLS" , & self . dwFileDateLS ) . finish ( ) } } impl :: std :: cmp :: PartialEq for VS_FIXEDFILEINFO { fn eq ( & self , other : & Self ) -> bool { self . dwSignature == other . dwSignature && self . dwStrucVersion == other . dwStrucVersion && self . dwFileVersionMS == other . dwFileVersionMS && self . dwFileVersionLS == other . dwFileVersionLS && self . dwProductVersionMS == other . dwProductVersionMS && self . dwProductVersionLS == other . dwProductVersionLS && self . dwFileFlagsMask == other . dwFileFlagsMask && self . dwFileFlags == other . dwFileFlags && self . dwFileOS == other . dwFileOS && self . dwFileType == other . dwFileType && self . dwFileSubtype == other . dwFileSubtype && self . dwFileDateMS == other . dwFileDateMS && self . dwFileDateLS == other . dwFileDateLS } } impl :: std :: cmp :: Eq for VS_FIXEDFILEINFO { } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_FLAGS ( pub u32 ) ; pub const VS_FF_DEBUG : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 1u32 ) ; pub const VS_FF_PRERELEASE : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 2u32 ) ; pub const VS_FF_PATCHED : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 4u32 ) ; pub const VS_FF_PRIVATEBUILD : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 8u32 ) ; pub const VS_FF_INFOINFERRED : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 16u32 ) ; pub const VS_FF_SPECIALBUILD : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 32u32 ) ; impl :: std :: convert :: From < u32 > for VS_FIXEDFILEINFO_FILE_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for VS_FIXEDFILEINFO_FILE_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for VS_FIXEDFILEINFO_FILE_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for VS_FIXEDFILEINFO_FILE_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for VS_FIXEDFILEINFO_FILE_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_OS ( pub i32 ) ; pub const VOS_UNKNOWN : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 0i32 ) ; pub const VOS_DOS : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 65536i32 ) ; pub const VOS_OS216 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 131072i32 ) ; pub const VOS_OS232 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 196608i32 ) ; pub const VOS_NT : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 262144i32 ) ; pub const VOS_WINCE : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 327680i32 ) ; pub const VOS__BASE : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 0i32 ) ; pub const VOS__WINDOWS16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 1i32 ) ; pub const VOS__PM16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 2i32 ) ; pub const VOS__PM32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 3i32 ) ; pub const VOS__WINDOWS32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 4i32 ) ; pub const VOS_DOS_WINDOWS16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 65537i32 ) ; pub const VOS_DOS_WINDOWS32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 65540i32 ) ; pub const VOS_OS216_PM16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 131074i32 ) ; pub const VOS_OS232_PM32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 196611i32 ) ; pub const VOS_NT_WINDOWS32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 262148i32 ) ; impl :: std :: convert :: From < i32 > for VS_FIXEDFILEINFO_FILE_OS { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_OS { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_SUBTYPE ( pub i32 ) ; pub const VFT2_UNKNOWN : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 0i32 ) ; pub const VFT2_DRV_PRINTER : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 1i32 ) ; pub const VFT2_DRV_KEYBOARD : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 2i32 ) ; pub const VFT2_DRV_LANGUAGE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 3i32 ) ; pub const VFT2_DRV_DISPLAY : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 4i32 ) ; pub const VFT2_DRV_MOUSE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 5i32 ) ; pub const VFT2_DRV_NETWORK : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 6i32 ) ; pub const VFT2_DRV_SYSTEM : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 7i32 ) ; pub const VFT2_DRV_INSTALLABLE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 8i32 ) ; pub const VFT2_DRV_SOUND : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 9i32 ) ; pub const VFT2_DRV_COMM : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 10i32 ) ; pub const VFT2_DRV_INPUTMETHOD : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 11i32 ) ; pub const VFT2_DRV_VERSIONED_PRINTER : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 12i32 ) ; pub const VFT2_FONT_RASTER : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 1i32 ) ; pub const VFT2_FONT_VECTOR : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 2i32 ) ; pub const VFT2_FONT_TRUETYPE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 3i32 ) ; impl :: std :: convert :: From < i32 > for VS_FIXEDFILEINFO_FILE_SUBTYPE { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_SUBTYPE { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_TYPE ( pub i32 ) ; pub const VFT_UNKNOWN : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 0i32 ) ; pub const VFT_APP : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 1i32 ) ; pub const VFT_DLL : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 2i32 ) ; pub const VFT_DRV : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 3i32 ) ; pub const VFT_FONT : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 4i32 ) ; pub const VFT_VXD : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 5i32 ) ; pub const VFT_STATIC_LIB : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 7i32 ) ; impl :: std :: convert :: From < i32 > for VS_FIXEDFILEINFO_FILE_TYPE { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_TYPE { type Abi = Self ; type DefaultType = Self ; } pub unsafe fn VerQueryValueA < 'a , > ( pblock : * const :: std :: ffi :: c_void , lpsubblock : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , lplpbuffer : * mut * mut :: std :: ffi :: c_void , pulen : * mut u32 , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="VERSION" ) ] extern "system" { fn VerQueryValueA ( pblock : * const :: std :: ffi :: c_void , lpsubblock : super::super::Foundation:: PSTR , lplpbuffer : * mut * mut :: std :: ffi :: c_void , pulen : * mut u32 ) -> super::super::Foundation:: BOOL ; } VerQueryValueA ( :: std :: mem :: transmute ( pblock ) , lpsubblock . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lplpbuffer ) , :: std :: mem :: transmute ( pulen ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod LibraryLoader { pub unsafe fn GetModuleFileNameA < 'a , > ( hmodule : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HINSTANCE > , lpfilename : super::super::Foundation:: PSTR , nsize : u32 , ) -> u32 { # [ cfg ( windows ) ] { # [ link ( name ="KERNEL32" ) ] extern "system" { fn GetModuleFileNameA ( hmodule : super::super::Foundation:: HINSTANCE , lpfilename : super::super::Foundation:: PSTR , nsize : u32 ) -> u32 ; } GetModuleFileNameA ( hmodule . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpfilename ) , :: std :: mem :: transmute ( nsize ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } } } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.26s [INFO] running `Command { std: "docker" "inspect" "ff07496cdae314be55f7047480b818d4d7c2ef6a478b6a6d52a5abe57c64f1e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff07496cdae314be55f7047480b818d4d7c2ef6a478b6a6d52a5abe57c64f1e0", kill_on_drop: false }` [INFO] [stdout] ff07496cdae314be55f7047480b818d4d7c2ef6a478b6a6d52a5abe57c64f1e0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+8b8eff55bd72abbb57167bc42222a7f91d41cb0d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 79e02228df00ebe43b8d08c577a92234da23ca4c130d341d5a0c7e6b60f54f11 [INFO] running `Command { std: "docker" "start" "-a" "79e02228df00ebe43b8d08c577a92234da23ca4c130d341d5a0c7e6b60f54f11", kill_on_drop: false }` [INFO] [stderr] Compiling get-file-version v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> /opt/rustwide/target/debug/build/get-file-version-7c8fe5c53c56dfef/out/windows.rs:1:3933 [INFO] [stdout] | [INFO] [stdout] 1 | ... { if ! value . 0 . is_null ( ) { unsafe { :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: Into... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Win32 { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: default :: Default , :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct BOOL ( pub i32 ) ; unsafe impl :: windows :: Abi for BOOL { type Abi = Self ; type DefaultType = Self ; } impl BOOL { # [ inline ] pub fn as_bool ( self ) -> bool { ! ( self . 0 == 0 ) } # [ inline ] pub fn ok ( self ) -> :: windows :: Result < ( ) > { if self . as_bool ( ) { Ok ( ( ) ) } else { Err ( :: windows :: HRESULT :: from_thread ( ) . into ( ) ) } } # [ inline ] # [ track_caller ] pub fn unwrap ( self ) { self . ok ( ) . unwrap ( ) ; } # [ inline ] # [ track_caller ] pub fn expect ( self , msg : & str ) { self . ok ( ) . expect ( msg ) ; } } impl :: std :: convert :: From < BOOL > for bool { fn from ( value : BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < & BOOL > for bool { fn from ( value : & BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < bool > for BOOL { fn from ( value : bool ) -> Self { if value { BOOL ( 1 ) } else { BOOL ( 0 ) } } } impl :: std :: convert :: From < & bool > for BOOL { fn from ( value : & bool ) -> Self { ( * value ) . into ( ) } } impl :: std :: cmp :: PartialEq < bool > for BOOL { fn eq ( & self , other : & bool ) -> bool { self . as_bool ( ) == * other } } impl :: std :: cmp :: PartialEq < BOOL > for bool { fn eq ( & self , other : & BOOL ) -> bool { * self == other . as_bool ( ) } } impl std :: ops :: Not for BOOL { type Output = Self ; fn not ( self ) -> Self :: Output { if self . as_bool ( ) { BOOL ( 0 ) } else { BOOL ( 1 ) } } } impl < 'a > :: windows :: IntoParam < 'a , BOOL > for bool { fn into_param ( self ) -> :: windows :: Param < 'a , BOOL > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct HINSTANCE ( pub isize ) ; impl HINSTANCE { } impl :: std :: default :: Default for HINSTANCE { fn default ( ) -> Self { Self ( 0 ) } } impl HINSTANCE { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for HINSTANCE { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "HINSTANCE" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for HINSTANCE { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for HINSTANCE { } unsafe impl :: windows :: Abi for HINSTANCE { type Abi = Self ; type DefaultType = Self ; } # [ repr ( transparent ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct PSTR ( pub * mut u8 ) ; impl PSTR { pub const NULL : Self = Self ( :: std :: ptr :: null_mut ( ) ) ; pub fn is_null ( & self ) -> bool { self . 0 . is_null ( ) } } impl :: std :: default :: Default for PSTR { fn default ( ) -> Self { Self ( :: std :: ptr :: null_mut ( ) ) } } impl :: std :: cmp :: PartialEq for PSTR { fn eq ( & self , other : & Self ) -> bool { self . 0 == other . 0 } } unsafe impl :: windows :: Abi for PSTR { type Abi = Self ; type DefaultType = Self ; fn drop_param ( param : & mut :: windows :: Param < '_ , Self > ) { if let :: windows :: Param :: Boxed ( value ) = param { if ! value . 0 . is_null ( ) { unsafe { let _ = :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for & 'a str { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for String { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Storage { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod FileSystem { pub unsafe fn GetFileVersionInfoA < 'a , > ( lptstrfilename : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , dwhandle : u32 , dwlen : u32 , lpdata : * mut :: std :: ffi :: c_void , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="VERSION" ) ] extern "system" { fn GetFileVersionInfoA ( lptstrfilename : super::super::Foundation:: PSTR , dwhandle : u32 , dwlen : u32 , lpdata : * mut :: std :: ffi :: c_void ) -> super::super::Foundation:: BOOL ; } GetFileVersionInfoA ( lptstrfilename . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( dwhandle ) , :: std :: mem :: transmute ( dwlen ) , :: std :: mem :: transmute ( lpdata ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn GetFileVersionInfoSizeA < 'a , > ( lptstrfilename : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , lpdwhandle : * mut u32 , ) -> u32 { # [ cfg ( windows ) ] { # [ link ( name ="VERSION" ) ] extern "system" { fn GetFileVersionInfoSizeA ( lptstrfilename : super::super::Foundation:: PSTR , lpdwhandle : * mut u32 ) -> u32 ; } GetFileVersionInfoSizeA ( lptstrfilename . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpdwhandle ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct VS_FIXEDFILEINFO { pub dwSignature : u32 , pub dwStrucVersion : u32 , pub dwFileVersionMS : u32 , pub dwFileVersionLS : u32 , pub dwProductVersionMS : u32 , pub dwProductVersionLS : u32 , pub dwFileFlagsMask : u32 , pub dwFileFlags : VS_FIXEDFILEINFO_FILE_FLAGS , pub dwFileOS : VS_FIXEDFILEINFO_FILE_OS , pub dwFileType : VS_FIXEDFILEINFO_FILE_TYPE , pub dwFileSubtype : VS_FIXEDFILEINFO_FILE_SUBTYPE , pub dwFileDateMS : u32 , pub dwFileDateLS : u32 } impl VS_FIXEDFILEINFO { } impl :: std :: default :: Default for VS_FIXEDFILEINFO { fn default ( ) -> Self { Self { dwSignature : 0 , dwStrucVersion : 0 , dwFileVersionMS : 0 , dwFileVersionLS : 0 , dwProductVersionMS : 0 , dwProductVersionLS : 0 , dwFileFlagsMask : 0 , dwFileFlags : :: std :: default :: Default :: default ( ) , dwFileOS : :: std :: default :: Default :: default ( ) , dwFileType : :: std :: default :: Default :: default ( ) , dwFileSubtype : :: std :: default :: Default :: default ( ) , dwFileDateMS : 0 , dwFileDateLS : 0 } } } impl :: std :: fmt :: Debug for VS_FIXEDFILEINFO { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "VS_FIXEDFILEINFO" ) . field ( "dwSignature" , & self . dwSignature ) . field ( "dwStrucVersion" , & self . dwStrucVersion ) . field ( "dwFileVersionMS" , & self . dwFileVersionMS ) . field ( "dwFileVersionLS" , & self . dwFileVersionLS ) . field ( "dwProductVersionMS" , & self . dwProductVersionMS ) . field ( "dwProductVersionLS" , & self . dwProductVersionLS ) . field ( "dwFileFlagsMask" , & self . dwFileFlagsMask ) . field ( "dwFileFlags" , & self . dwFileFlags ) . field ( "dwFileOS" , & self . dwFileOS ) . field ( "dwFileType" , & self . dwFileType ) . field ( "dwFileSubtype" , & self . dwFileSubtype ) . field ( "dwFileDateMS" , & self . dwFileDateMS ) . field ( "dwFileDateLS" , & self . dwFileDateLS ) . finish ( ) } } impl :: std :: cmp :: PartialEq for VS_FIXEDFILEINFO { fn eq ( & self , other : & Self ) -> bool { self . dwSignature == other . dwSignature && self . dwStrucVersion == other . dwStrucVersion && self . dwFileVersionMS == other . dwFileVersionMS && self . dwFileVersionLS == other . dwFileVersionLS && self . dwProductVersionMS == other . dwProductVersionMS && self . dwProductVersionLS == other . dwProductVersionLS && self . dwFileFlagsMask == other . dwFileFlagsMask && self . dwFileFlags == other . dwFileFlags && self . dwFileOS == other . dwFileOS && self . dwFileType == other . dwFileType && self . dwFileSubtype == other . dwFileSubtype && self . dwFileDateMS == other . dwFileDateMS && self . dwFileDateLS == other . dwFileDateLS } } impl :: std :: cmp :: Eq for VS_FIXEDFILEINFO { } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_FLAGS ( pub u32 ) ; pub const VS_FF_DEBUG : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 1u32 ) ; pub const VS_FF_PRERELEASE : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 2u32 ) ; pub const VS_FF_PATCHED : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 4u32 ) ; pub const VS_FF_PRIVATEBUILD : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 8u32 ) ; pub const VS_FF_INFOINFERRED : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 16u32 ) ; pub const VS_FF_SPECIALBUILD : VS_FIXEDFILEINFO_FILE_FLAGS = VS_FIXEDFILEINFO_FILE_FLAGS ( 32u32 ) ; impl :: std :: convert :: From < u32 > for VS_FIXEDFILEINFO_FILE_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for VS_FIXEDFILEINFO_FILE_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for VS_FIXEDFILEINFO_FILE_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for VS_FIXEDFILEINFO_FILE_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for VS_FIXEDFILEINFO_FILE_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_OS ( pub i32 ) ; pub const VOS_UNKNOWN : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 0i32 ) ; pub const VOS_DOS : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 65536i32 ) ; pub const VOS_OS216 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 131072i32 ) ; pub const VOS_OS232 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 196608i32 ) ; pub const VOS_NT : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 262144i32 ) ; pub const VOS_WINCE : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 327680i32 ) ; pub const VOS__BASE : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 0i32 ) ; pub const VOS__WINDOWS16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 1i32 ) ; pub const VOS__PM16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 2i32 ) ; pub const VOS__PM32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 3i32 ) ; pub const VOS__WINDOWS32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 4i32 ) ; pub const VOS_DOS_WINDOWS16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 65537i32 ) ; pub const VOS_DOS_WINDOWS32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 65540i32 ) ; pub const VOS_OS216_PM16 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 131074i32 ) ; pub const VOS_OS232_PM32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 196611i32 ) ; pub const VOS_NT_WINDOWS32 : VS_FIXEDFILEINFO_FILE_OS = VS_FIXEDFILEINFO_FILE_OS ( 262148i32 ) ; impl :: std :: convert :: From < i32 > for VS_FIXEDFILEINFO_FILE_OS { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_OS { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_SUBTYPE ( pub i32 ) ; pub const VFT2_UNKNOWN : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 0i32 ) ; pub const VFT2_DRV_PRINTER : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 1i32 ) ; pub const VFT2_DRV_KEYBOARD : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 2i32 ) ; pub const VFT2_DRV_LANGUAGE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 3i32 ) ; pub const VFT2_DRV_DISPLAY : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 4i32 ) ; pub const VFT2_DRV_MOUSE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 5i32 ) ; pub const VFT2_DRV_NETWORK : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 6i32 ) ; pub const VFT2_DRV_SYSTEM : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 7i32 ) ; pub const VFT2_DRV_INSTALLABLE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 8i32 ) ; pub const VFT2_DRV_SOUND : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 9i32 ) ; pub const VFT2_DRV_COMM : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 10i32 ) ; pub const VFT2_DRV_INPUTMETHOD : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 11i32 ) ; pub const VFT2_DRV_VERSIONED_PRINTER : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 12i32 ) ; pub const VFT2_FONT_RASTER : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 1i32 ) ; pub const VFT2_FONT_VECTOR : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 2i32 ) ; pub const VFT2_FONT_TRUETYPE : VS_FIXEDFILEINFO_FILE_SUBTYPE = VS_FIXEDFILEINFO_FILE_SUBTYPE ( 3i32 ) ; impl :: std :: convert :: From < i32 > for VS_FIXEDFILEINFO_FILE_SUBTYPE { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_SUBTYPE { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct VS_FIXEDFILEINFO_FILE_TYPE ( pub i32 ) ; pub const VFT_UNKNOWN : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 0i32 ) ; pub const VFT_APP : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 1i32 ) ; pub const VFT_DLL : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 2i32 ) ; pub const VFT_DRV : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 3i32 ) ; pub const VFT_FONT : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 4i32 ) ; pub const VFT_VXD : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 5i32 ) ; pub const VFT_STATIC_LIB : VS_FIXEDFILEINFO_FILE_TYPE = VS_FIXEDFILEINFO_FILE_TYPE ( 7i32 ) ; impl :: std :: convert :: From < i32 > for VS_FIXEDFILEINFO_FILE_TYPE { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for VS_FIXEDFILEINFO_FILE_TYPE { type Abi = Self ; type DefaultType = Self ; } pub unsafe fn VerQueryValueA < 'a , > ( pblock : * const :: std :: ffi :: c_void , lpsubblock : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , lplpbuffer : * mut * mut :: std :: ffi :: c_void , pulen : * mut u32 , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="VERSION" ) ] extern "system" { fn VerQueryValueA ( pblock : * const :: std :: ffi :: c_void , lpsubblock : super::super::Foundation:: PSTR , lplpbuffer : * mut * mut :: std :: ffi :: c_void , pulen : * mut u32 ) -> super::super::Foundation:: BOOL ; } VerQueryValueA ( :: std :: mem :: transmute ( pblock ) , lpsubblock . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lplpbuffer ) , :: std :: mem :: transmute ( pulen ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod System { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod LibraryLoader { pub unsafe fn GetModuleFileNameA < 'a , > ( hmodule : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HINSTANCE > , lpfilename : super::super::Foundation:: PSTR , nsize : u32 , ) -> u32 { # [ cfg ( windows ) ] { # [ link ( name ="KERNEL32" ) ] extern "system" { fn GetModuleFileNameA ( hmodule : super::super::Foundation:: HINSTANCE , lpfilename : super::super::Foundation:: PSTR , nsize : u32 ) -> u32 ; } GetModuleFileNameA ( hmodule . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpfilename ) , :: std :: mem :: transmute ( nsize ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } } } } } [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.32s [INFO] running `Command { std: "docker" "inspect" "79e02228df00ebe43b8d08c577a92234da23ca4c130d341d5a0c7e6b60f54f11", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "79e02228df00ebe43b8d08c577a92234da23ca4c130d341d5a0c7e6b60f54f11", kill_on_drop: false }` [INFO] [stdout] 79e02228df00ebe43b8d08c577a92234da23ca4c130d341d5a0c7e6b60f54f11