Skip to content

Conversation

Darksonn
Copy link
Contributor

This was suggested by @tmandry.

diff library/core/src/marker.rs library/core/src/ops/unsize.rs
@@ -10,7 +10,7 @@
 /// By using the macro, the following example will compile:
 /// ```
 /// #![feature(derive_coerce_pointee)]
-/// use std::marker::CoercePointee;
+/// use std::ops::CoercePointee;
 /// use std::ops::Deref;
 ///
 /// #[derive(CoercePointee)]
@@ -57,7 +57,7 @@
 ///
 /// ```
 /// #![feature(arbitrary_self_types, derive_coerce_pointee)]
-/// use std::marker::CoercePointee;
+/// use std::ops::CoercePointee;
 /// use std::ops::Deref;
 ///
 /// #[derive(CoercePointee)]
@@ -111,7 +111,7 @@
 ///   (reference, raw pointer, `NonNull`, `Box`, `Rc`, `Arc`, etc.) or another user-defined type
 ///   also using the `#[derive(CoercePointee)]` macro.
 /// * Zero-sized fields must not mention any generic parameters unless the zero-sized field has
-///   type [`PhantomData`].
+///   type [`PhantomData`](crate::marker::PhantomData).
 ///
 /// ## Multiple type parameters
 ///
@@ -119,7 +119,8 @@
 /// used for dynamic dispatch. For example:
 /// ```
 /// # #![feature(derive_coerce_pointee)]
-/// # use std::marker::{CoercePointee, PhantomData};
+/// # use std::marker::PhantomData;
+/// # use std::ops::CoercePointee;
 /// #[derive(CoercePointee)]
 /// #[repr(transparent)]
 /// struct MySmartPointer<#[pointee] T: ?Sized, U> {
@@ -134,7 +135,7 @@
 /// A custom implementation of the `Rc` type:
 /// ```
 /// #![feature(derive_coerce_pointee)]
-/// use std::marker::CoercePointee;
+/// use std::ops::CoercePointee;
 /// use std::ops::Deref;
 /// use std::ptr::NonNull;
 ///

@Darksonn Darksonn added the F-derive_coerce_pointee Feature: RFC 3621's oft-renamed implementation label Sep 26, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 26, 2025

Some changes occurred in src/tools/cargo

cc @ehuss

rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead.

cc @rust-lang/rust-analyzer

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. labels Sep 26, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 26, 2025

r? @tgross35

rustbot has assigned @tgross35.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

The job pr-check-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/files.rs:406:5
    |
406 |     fn as_unix<'tcx>(&self, ecx: &MiriInterpCx<'tcx>) -> &dyn UnixFileDescription {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/files.rs:443:30
    |
443 |     pub fds: BTreeMap<FdNum, DynFileDescriptionRef>,
    |                              ^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:134:5
    |
134 |     fn as_unix<'tcx>(&self, _ecx: &MiriInterpCx<'tcx>) -> &dyn UnixFileDescription {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/linux_like/epoll.rs:158:5
    |
158 |     fn as_unix<'tcx>(&self, _ecx: &MiriInterpCx<'tcx>) -> &dyn UnixFileDescription {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/linux_like/epoll.rs:590:14
    |
590 |     fd_ref: &DynFileDescriptionRef,
    |              ^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/linux_like/eventfd.rs:103:5
    |
103 |     fn as_unix<'tcx>(&self, _ecx: &MiriInterpCx<'tcx>) -> &dyn UnixFileDescription {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/files.rs:126:51
    |
126 |     pub fn downcast<T: FileDescription + 'static>(self) -> Option<FileDescriptionRef<T>> {
    |                                                   ^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/files.rs:406:59
    |
406 |     fn as_unix<'tcx>(&self, ecx: &MiriInterpCx<'tcx>) -> &dyn UnixFileDescription {
    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |
help: you might have meant to use `Self` to refer to the implementing type
    |
406 -     fn as_unix<'tcx>(&self, ecx: &MiriInterpCx<'tcx>) -> &dyn UnixFileDescription {
406 +     fn as_unix<'tcx>(&self, ecx: &MiriInterpCx<'tcx>) -> &Self {
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/files.rs:484:38
    |
484 |     pub fn insert(&mut self, fd_ref: DynFileDescriptionRef) -> FdNum {
    |                                      ^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
---
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
---
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
---
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/files.rs:525:9
    |
525 |         self.fds.remove(&fd_num)
    |         ^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/files.rs:529:9
    |
529 |         self.fds.contains_key(&fd_num)
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:75:41
    |
 75 |         let Some(fd) = this.machine.fds.get(old_fd_num) else {
    |                                         ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:78:53
    |
 78 |         interp_ok(Scalar::from_i32(this.machine.fds.insert(fd)))
    |                                                     ^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:84:41
    |
 84 |         let Some(fd) = this.machine.fds.get(old_fd_num) else {
    |                                         ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:90:39
    |
 90 |             if let Some(old_new_fd) = this.machine.fds.fds.insert(new_fd_num, fd) {
    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:100:41
    |
100 |         let Some(fd) = this.machine.fds.get(fd_num) else {
    |                                         ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:125:22
    |
125 |         let result = fd.as_unix(this).flock(this.machine.communicate(), parsed_op)?;
    |                      ^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:125:25
    |
125 |         let result = fd.as_unix(this).flock(this.machine.communicate(), parsed_op)?;
    |                         ^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:175:52
    |
175 |                 if let Some(fd) = this.machine.fds.get(fd_num) {
    |                                                    ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
---
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:191:49
    |
191 |                 let Some(fd) = this.machine.fds.get(fd_num) else {
    |                                                 ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
---
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:222:41
    |
222 |         let Some(fd) = this.machine.fds.remove(fd_num) else {
    |                                         ^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:262:41
    |
262 |         let Some(fd) = this.machine.fds.get(fd_num) else {
    |                                         ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:278:16
    |
278 |             && fd.short_fd_operations()
    |                ^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fd.rs:287:36
     |
 287 |           trace!("read: FD mapped to {fd:?}");
     |           ---------------------------^^^^^^--
     |           |                          |
     |           |                          `FileDescription` is not dyn compatible
     |           in this macro invocation (#1)
     |
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
 884 |               })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
     |                  -------------------------------------------------------------- in this macro invocation (#4)
...
 904 |           $crate::event!(target: $target, $lvl, { $($arg)+ })
     |           --------------------------------------------------- in this macro invocation (#3)
...
1303 |   macro_rules! trace {
     |   ------------------ in this expansion of `trace!` (#1)
...
---
     |   |
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
...
2961 |           $crate::valueset!(@ { (&$next, $crate::__macro_support::Option::Some(&$crate::__macro_support::format_args!($($rest)+) as &dyn Va...
     |                                                                                 ------------------------------------------------ in this macro invocation (#6)
...
2970 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2971 | |                 @ { },
2972 | |                 $crate::__macro_support::Iterator::next(&mut iter).expect("FieldSet corrupted (this is a bug)"),
2973 | |                 $($kvs)+
2974 | |             ))
     | |_____________- in this macro invocation (#5)
     |
    ::: /checkout/library/core/src/macros/mod.rs:992:5
     |
 992 |       macro_rules! format_args {
     |       ------------------------ in this expansion of `$crate::__macro_support::format_args!` (#6)
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:318:17
    |
318 |                 fd.as_unix(this).pread(communicate, offset, buf, count, this, finish)?
    |                 ^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:318:20
    |
318 |                 fd.as_unix(this).pread(communicate, offset, buf, count, this, finish)?
    |                    ^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:348:41
    |
348 |         let Some(fd) = this.machine.fds.get(fd_num) else {
    |                                         ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:367:16
    |
367 |             && fd.short_fd_operations()
    |                ^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:402:17
    |
402 |                 fd.as_unix(this).pwrite(communicate, buf, count, offset, this, finish)?
    |                 ^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `fd::UnixFileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fd.rs:402:20
    |
402 |                 fd.as_unix(this).pwrite(communicate, buf, count, offset, this, finish)?
    |                    ^^^^^^^ `fd::UnixFileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
    |
   ::: src/tools/miri/src/shims/unix/fd.rs:24:11
    |
 24 | pub trait UnixFileDescription: FileDescription {
    |           ------------------- this trait is not dyn compatible...
    = help: the following types implement `fd::UnixFileDescription`:
              shims::files::FileHandle
              shims::unix::unnamed_socket::AnonSocket
              shims::unix::linux_like::epoll::Epoll
              shims::unix::linux_like::eventfd::EventFd
            consider defining an enum where each variant holds one of these types,
            implementing `fd::UnixFileDescription` for this new enum and using it instead
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fs.rs:469:41
    |
469 |         let Some(fd) = this.machine.fds.get(fd_num) else {
    |                                         ^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/fs.rs:472:22
    |
472 |         let result = fd.seek(communicate, seek_from)?.map(|offset| i64::try_from(offset).unwrap());
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
---
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1177:41
     |
1177 |         let Some(fd) = this.machine.fds.get(fd_num) else {
     |                                         ^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1182:23
     |
1182 |         let file = fd.downcast::<FileHandle>().ok_or_else(|| {
     |                       ^^^^^^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1222:41
     |
1222 |         let Some(fd) = this.machine.fds.get(fd_num) else {
     |                                         ^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1226:23
     |
1226 |         let file = fd.downcast::<FileHandle>().ok_or_else(|| {
     |                       ^^^^^^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1245:41
     |
1245 |         let Some(fd) = this.machine.fds.get(fd) else {
     |                                         ^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1249:23
     |
1249 |         let file = fd.downcast::<FileHandle>().ok_or_else(|| {
     |                       ^^^^^^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1287:41
     |
1287 |         let Some(fd) = this.machine.fds.get(fd) else {
     |                                         ^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1291:23
     |
1291 |         let file = fd.downcast::<FileHandle>().ok_or_else(|| {
     |                       ^^^^^^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1347:56
     |
1347 |         let error = if let Some(fd) = this.machine.fds.get(fd) {
     |                                                        ^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
    --> src/tools/miri/src/shims/unix/fs.rs:1348:16
     |
1348 |             if fd.is_tty(this.machine.communicate()) {
     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
     |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
---
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
    --> src/tools/miri/src/shims/files.rs:87:26
     |
  87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
  92 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
 133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
     |           --------------- this trait is not dyn compatible...
...
 143 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
 160 |         self: FileDescriptionRef<Self>,
     |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:160:15
     |
 160 -         self: FileDescriptionRef<Self>,
 160 +         self: &Self,
     |
help: consider changing method `read`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:143:15
     |
 143 -         self: FileDescriptionRef<Self>,
 143 +         self: &Self,
     |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:87:26
     |
  87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
  87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
     |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
    -->  src/tools/miri/src/shims/files.rs:92:15
     |
  92 -         self: FileDescriptionRef<Self>,
  92 +         self: &Self,
     |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:99:17
    |
 99 |             ecx.check_and_update_readiness(peer_fd)?;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0308]: mismatched types
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:99:44
    |
 99 |             ecx.check_and_update_readiness(peer_fd)?;
    |                 -------------------------- ^^^^^^^ expected `FileDescriptionRef<dyn FileDescription>`, found `FileDescriptionRef<AnonSocket>`
    |                 |
    |                 arguments to this method are incorrect
    |
    = note: expected struct `FileDescriptionRef<(dyn FileDescription + 'static)>`
               found struct `FileDescriptionRef<AnonSocket>`
    = help: `AnonSocket` implements `FileDescription` so you could box the found value and coerce it to the trait object `Box<dyn FileDescription>`, you will have to change the expected type as well
note: method defined here
   --> src/tools/miri/src/shims/unix/linux_like/epoll.rs:528:8
    |
528 |     fn check_and_update_readiness(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
529 |         &mut self,
530 |         fd_ref: DynFileDescriptionRef,
    |         -----------------------------

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:279:13
    |
279 |         ecx.check_and_update_readiness(peer_fd)?;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0308]: mismatched types
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:279:40
    |
279 |         ecx.check_and_update_readiness(peer_fd)?;
    |             -------------------------- ^^^^^^^ expected `FileDescriptionRef<dyn FileDescription>`, found `FileDescriptionRef<AnonSocket>`
    |             |
    |             arguments to this method are incorrect
    |
    = note: expected struct `FileDescriptionRef<(dyn FileDescription + 'static)>`
               found struct `FileDescriptionRef<AnonSocket>`
    = help: `AnonSocket` implements `FileDescription` so you could box the found value and coerce it to the trait object `Box<dyn FileDescription>`, you will have to change the expected type as well
note: method defined here
   --> src/tools/miri/src/shims/unix/linux_like/epoll.rs:528:8
    |
528 |     fn check_and_update_readiness(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
529 |         &mut self,
530 |         fd_ref: DynFileDescriptionRef,
    |         -----------------------------

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:372:17
    |
372 |             ecx.check_and_update_readiness(peer_fd)?;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0308]: mismatched types
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:372:44
    |
372 |             ecx.check_and_update_readiness(peer_fd)?;
    |                 -------------------------- ^^^^^^^ expected `FileDescriptionRef<dyn FileDescription>`, found `FileDescriptionRef<AnonSocket>`
    |                 |
    |                 arguments to this method are incorrect
    |
    = note: expected struct `FileDescriptionRef<(dyn FileDescription + 'static)>`
               found struct `FileDescriptionRef<AnonSocket>`
    = help: `AnonSocket` implements `FileDescription` so you could box the found value and coerce it to the trait object `Box<dyn FileDescription>`, you will have to change the expected type as well
note: method defined here
   --> src/tools/miri/src/shims/unix/linux_like/epoll.rs:528:8
    |
528 |     fn check_and_update_readiness(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
529 |         &mut self,
530 |         fd_ref: DynFileDescriptionRef,
    |         -----------------------------

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:512:23
    |
512 |         let sv0 = fds.insert(fd0);
    |                       ^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0308]: mismatched types
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:512:30
    |
512 |         let sv0 = fds.insert(fd0);
    |                       ------ ^^^ expected `FileDescriptionRef<dyn FileDescription>`, found `FileDescriptionRef<AnonSocket>`
    |                       |
    |                       arguments to this method are incorrect
    |
    = note: expected struct `FileDescriptionRef<(dyn FileDescription + 'static)>`
               found struct `FileDescriptionRef<AnonSocket>`
    = help: `AnonSocket` implements `FileDescription` so you could box the found value and coerce it to the trait object `Box<dyn FileDescription>`, you will have to change the expected type as well
note: method defined here
   --> src/tools/miri/src/shims/files.rs:484:12
    |
484 |     pub fn insert(&mut self, fd_ref: DynFileDescriptionRef) -> FdNum {
    |            ^^^^^^            -----------------------------

error[E0038]: the trait `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:513:23
    |
513 |         let sv1 = fds.insert(fd1);
    |                       ^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0308]: mismatched types
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:513:30
    |
513 |         let sv1 = fds.insert(fd1);
    |                       ------ ^^^ expected `FileDescriptionRef<dyn FileDescription>`, found `FileDescriptionRef<AnonSocket>`
    |                       |
    |                       arguments to this method are incorrect
    |
    = note: expected struct `FileDescriptionRef<(dyn FileDescription + 'static)>`
               found struct `FileDescriptionRef<AnonSocket>`
    = help: `AnonSocket` implements `FileDescription` so you could box the found value and coerce it to the trait object `Box<dyn FileDescription>`, you will have to change the expected type as well
note: method defined here
   --> src/tools/miri/src/shims/files.rs:484:12
    |
484 |     pub fn insert(&mut self, fd_ref: DynFileDescriptionRef) -> FdNum {
    |            ^^^^^^            -----------------------------

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:582:27
    |
582 |         let pipefd0 = fds.insert(fd0);
    |                           ^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable
      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 |     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `into_rc_any`'s `self` parameter cannot be dispatched on
...
 92 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `close_ref`'s `self` parameter cannot be dispatched on
...
133 | pub trait FileDescription: std::fmt::Debug + FileDescriptionExt {
    |           --------------- this trait is not dyn compatible...
...
143 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `read`'s `self` parameter cannot be dispatched on
...
160 |         self: FileDescriptionRef<Self>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^ ...because method `write`'s `self` parameter cannot be dispatched on
help: consider changing method `write`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:160:15
    |
160 -         self: FileDescriptionRef<Self>,
160 +         self: &Self,
    |
help: consider changing method `read`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:143:15
    |
143 -         self: FileDescriptionRef<Self>,
143 +         self: &Self,
    |
help: consider changing method `into_rc_any`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:87:26
    |
 87 -     fn into_rc_any(self: FileDescriptionRef<Self>) -> Rc<dyn Any>;
 87 +     fn into_rc_any(self: &Self) -> Rc<dyn Any>;
    |
help: consider changing method `close_ref`'s `self` parameter to be `&self`
   --> src/tools/miri/src/shims/files.rs:92:15
    |
 92 -         self: FileDescriptionRef<Self>,
 92 +         self: &Self,
    |

error[E0308]: mismatched types
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:582:34
    |
582 |         let pipefd0 = fds.insert(fd0);
    |                           ------ ^^^ expected `FileDescriptionRef<dyn FileDescription>`, found `FileDescriptionRef<AnonSocket>`
    |                           |
    |                           arguments to this method are incorrect
    |
    = note: expected struct `FileDescriptionRef<(dyn FileDescription + 'static)>`
               found struct `FileDescriptionRef<AnonSocket>`
    = help: `AnonSocket` implements `FileDescription` so you could box the found value and coerce it to the trait object `Box<dyn FileDescription>`, you will have to change the expected type as well
note: method defined here
   --> src/tools/miri/src/shims/files.rs:484:12
    |
484 |     pub fn insert(&mut self, fd_ref: DynFileDescriptionRef) -> FdNum {
    |            ^^^^^^            -----------------------------

error[E0038]: the trait `FileDescription` is not dyn compatible
   --> src/tools/miri/src/shims/unix/unnamed_socket.rs:583:27
    |
583 |         let pipefd1 = fds.insert(fd1);
    |                           ^^^^^^ `FileDescription` is not dyn compatible
    |
note: for a trait to be dyn compatible it needs to allow building a vtable

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will break rust-analyzer tests as these paths are pulled from our mini core which would also need to be adjusted

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. F-derive_coerce_pointee Feature: RFC 3621's oft-renamed implementation S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants