rust-lang / log

Logging implementation for Rust
https://docs.rs/log
Apache License 2.0
2.16k stars 250 forks source link

Building failed on x86_64-pc-windows-msvc nightly #564

Closed DarcJC closed 1 year ago

DarcJC commented 1 year ago

See https://github.com/rust-lang/log/actions/runs/5099423637/jobs/9167113151

Using v1.71.0 nightly (1a5f8bce7 2023-05-26). log = "0.4.17"

DarcJC commented 1 year ago

cargo run's output:

error: to use a constant of type `TypeId` in a pattern, `TypeId` must be annotated with `#[derive(PartialEq, Eq)]`
  --> C:\Users\i\.cargo\registry\src\index.crates.io-6f17d22bba15001f\value-bag-1.0.0-alpha.9\src\internal\cast\primitive.rs:43:33
   |
43 |                                   $const_ident => |v| Some(Internal::from(unsafe { &*(*v as *const Self as *const $ty) })),
   |                                   ^^^^^^^^^^^^
...
71 | /         to_internal![
72 | |             usize: (USIZE, OPTION_USIZE),
73 | |             u8: (U8, OPTION_U8),
74 | |             u16: (U16, OPTION_U16),
...  |
96 | |             String: (STRING, OPTION_STRING),
97 | |         ];
   | |_________- in this macro invocation
   |
   = note: the traits must be derived, manual `impl`s are not sufficient
   = note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
   = note: this error originates in the macro `to_internal` (in Nightly builds, run with -Z macro-backtrace for more info)

error: to use a constant of type `TypeId` in a pattern, `TypeId` must be annotated with `#[derive(PartialEq, Eq)]`
  --> C:\Users\i\.cargo\registry\src\index.crates.io-6f17d22bba15001f\value-bag-1.0.0-alpha.9\src\internal\cast\primitive.rs:46:33
   |
46 |                                   $option_ident => |v| Some({
   |                                   ^^^^^^^^^^^^^
...
71 | /         to_internal![
72 | |             usize: (USIZE, OPTION_USIZE),
73 | |             u8: (U8, OPTION_U8),
74 | |             u16: (U16, OPTION_U16),
...  |
96 | |             String: (STRING, OPTION_STRING),
97 | |         ];
   | |_________- in this macro invocation
   |
   = note: the traits must be derived, manual `impl`s are not sufficient
   = note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
   = note: this error originates in the macro `to_internal` (in Nightly builds, run with -Z macro-backtrace for more info)

error: to use a constant of type `TypeId` in a pattern, `TypeId` must be annotated with `#[derive(PartialEq, Eq)]`
  --> C:\Users\i\.cargo\registry\src\index.crates.io-6f17d22bba15001f\value-bag-1.0.0-alpha.9\src\internal\cast\primitive.rs:55:29
   |
55 |                               STR => |v| Some(Internal::from(unsafe { &**(v as *const &'a Self as *const &'a str) })),
   |                               ^^^
...
71 | /         to_internal![
72 | |             usize: (USIZE, OPTION_USIZE),
73 | |             u8: (U8, OPTION_U8),
74 | |             u16: (U16, OPTION_U16),
96 | |             String: (STRING, OPTION_STRING),
97 | |         ];
   | |_________- in this macro invocation
   |
   = note: the traits must be derived, manual `impl`s are not sufficient
   = note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
   = note: this error originates in the macro `to_internal` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `value-bag` (lib) due to 3 previous errors
DarcJC commented 1 year ago

Seems like nightly rust is broken. Compile successfully on nightly-2023-05-21-x86_64-pc-windows-msvc.

Indy2222 commented 1 year ago

Related https://github.com/sval-rs/value-bag/issues/62.

KodrAus commented 1 year ago

It’ll be a few hours before I’m in front of a machine to fix this but have a plan in mind:

  1. Revert the MSRV bumping changes in log we’re holding off our release for
  2. Release main
  3. Re-apply the MSRV bump and continue waiting for June 10th for it

I have been waiting for this to break for some time so worked around it a while ago, but the exact alpha version pinned in the currently released version of log is still using the old code.