facebookincubator / reindeer

Reindeer is a tool to transform Rust Cargo dependencies into generated Buck build rules
MIT License
179 stars 28 forks source link

Crates in lockfile are incompatible with current nightly Rust #16

Closed dtolnay closed 1 year ago

dtolnay commented 1 year ago

The readme's recommended installation instruction of cargo install --locked --git https://github.com/facebookincubator/reindeer fails on nightly:

error: to use a constant of type `TypeId` in a pattern, `TypeId` must be annotated with `#[derive(PartialEq, Eq)]`
  --> value-bag-1.0.0-alpha.9/src/internal/cast/primitive.rs:43:33
   |
43 |   ...                           $const_ident => |v| Some(Internal::from(unsafe { &*(*...
   |                                 ^^^^^^^^^^^^
...
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)]`
  --> 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)]`
  --> value-bag-1.0.0-alpha.9/src/internal/cast/primitive.rs:55:29
   |
55 |   ...                       STR => |v| Some(Internal::from(unsafe { &**(v as *const &...
   |                             ^^^
...
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

Without --locked, it installs successfully using a newer version of value-bag.