diff options
author | David Tolnay <dtolnay@chromium.org> | 2019-03-08 16:56:14 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-04-08 02:51:37 -0700 |
commit | fdac5ede468e0fddfe527d6108430ee932b02fc3 (patch) | |
tree | 398c2ace79eea2babb4439810c43b793068fd8cc /arch/src/lib.rs | |
parent | 98895ac05d42ed346a161035134600b0d0e0bb87 (diff) | |
download | crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.gz crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.bz2 crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.lz crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.xz crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.zst crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.zip |
edition: Use dyn syntax for trait objects
Found by running: `cargo rustc -- -D bare_trait_objects` Bare trait objects like `&Trait` and `Box<Trait>` are soft-deprecated in 2018 edition and will start warning at some point. As part of this, I replaced `Box<Trait + 'static>` with `Box<dyn Trait>` because the 'static bound is implied for boxed trait objects. TEST=cargo check --all-features TEST=cargo check --target aarch64-unknown-linux-gnu TEST=local kokoro Change-Id: I41c4f13530bece8a34a8ed1c1afd7035b8f86f19 Reviewed-on: https://chromium-review.googlesource.com/1513059 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: David Tolnay <dtolnay@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: David Tolnay <dtolnay@chromium.org>
Diffstat (limited to 'arch/src/lib.rs')
-rw-r--r-- | arch/src/lib.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/src/lib.rs b/arch/src/lib.rs index 318762e..9cc55e1 100644 --- a/arch/src/lib.rs +++ b/arch/src/lib.rs @@ -61,7 +61,7 @@ pub struct RunnableLinuxVm { /// The device and optional jail. pub struct VirtioDeviceStub { - pub dev: Box<VirtioDevice>, + pub dev: Box<dyn VirtioDevice>, pub jail: Option<Minijail>, } @@ -83,7 +83,7 @@ pub trait LinuxArch { create_devices: F, ) -> Result<RunnableLinuxVm, Self::Error> where - F: FnOnce(&GuestMemory, &EventFd) -> Result<Vec<(Box<PciDevice>, Option<Minijail>)>, E>, + F: FnOnce(&GuestMemory, &EventFd) -> Result<Vec<(Box<dyn PciDevice>, Option<Minijail>)>, E>, E: StdError + 'static; } @@ -144,7 +144,7 @@ impl Display for DeviceRegistrationError { /// Creates a root PCI device for use by this Vm. pub fn generate_pci_root( - devices: Vec<(Box<PciDevice>, Option<Minijail>)>, + devices: Vec<(Box<dyn PciDevice>, Option<Minijail>)>, mmio_bus: &mut Bus, resources: &mut SystemAllocator, vm: &mut Vm, @@ -191,7 +191,7 @@ pub fn generate_pci_root( .map_err(DeviceRegistrationError::RegisterIoevent)?; keep_fds.push(event.as_raw_fd()); } - let arced_dev: Arc<Mutex<BusDevice>> = if let Some(jail) = jail { + let arced_dev: Arc<Mutex<dyn BusDevice>> = if let Some(jail) = jail { let proxy = ProxyDevice::new(device, &jail, keep_fds) .map_err(DeviceRegistrationError::ProxyDeviceCreation)?; pid_labels.insert(proxy.pid() as u32, proxy.debug_label()); |