summary refs log tree commit diff
path: root/src/linux.rs
diff options
context:
space:
mode:
authorDavid Tolnay <dtolnay@chromium.org>2019-03-08 16:56:14 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-04-08 02:51:37 -0700
commitfdac5ede468e0fddfe527d6108430ee932b02fc3 (patch)
tree398c2ace79eea2babb4439810c43b793068fd8cc /src/linux.rs
parent98895ac05d42ed346a161035134600b0d0e0bb87 (diff)
downloadcrosvm-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 'src/linux.rs')
-rw-r--r--src/linux.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/linux.rs b/src/linux.rs
index 4674241..7960dc1 100644
--- a/src/linux.rs
+++ b/src/linux.rs
@@ -4,7 +4,7 @@
 
 use std;
 use std::cmp::min;
-use std::error;
+use std::error::Error as StdError;
 use std::ffi::CStr;
 use std::fmt::{self, Display};
 use std::fs::{File, OpenOptions};
@@ -92,7 +92,7 @@ pub enum Error {
     InvalidFdPath,
     InvalidWaylandPath,
     IoJail(io_jail::Error),
-    LoadKernel(Box<error::Error>),
+    LoadKernel(Box<dyn StdError>),
     NetDeviceNew(virtio::NetError),
     OpenAndroidFstab(PathBuf, io::Error),
     OpenInitrd(PathBuf, io::Error),
@@ -302,14 +302,14 @@ fn create_block_device(
             // Access as a raw block device.
             let dev = virtio::Block::new(raw_image, disk.read_only, Some(disk_device_socket))
                 .map_err(Error::BlockDeviceNew)?;
-            Box::new(dev) as Box<VirtioDevice>
+            Box::new(dev) as Box<dyn VirtioDevice>
         }
         ImageType::Qcow2 => {
             // Valid qcow header present
             let qcow_image = QcowFile::from(raw_image).map_err(Error::QcowDeviceCreate)?;
             let dev = virtio::Block::new(qcow_image, disk.read_only, Some(disk_device_socket))
                 .map_err(Error::BlockDeviceNew)?;
-            Box::new(dev) as Box<VirtioDevice>
+            Box::new(dev) as Box<dyn VirtioDevice>
         }
     };
 
@@ -484,11 +484,11 @@ fn create_net_device(
         let dev =
             virtio::vhost::Net::<Tap, vhost::Net<Tap>>::new(host_ip, netmask, mac_address, mem)
                 .map_err(Error::VhostNetDeviceNew)?;
-        Box::new(dev) as Box<VirtioDevice>
+        Box::new(dev) as Box<dyn VirtioDevice>
     } else {
         let dev =
             virtio::Net::<Tap>::new(host_ip, netmask, mac_address).map_err(Error::NetDeviceNew)?;
-        Box::new(dev) as Box<VirtioDevice>
+        Box::new(dev) as Box<dyn VirtioDevice>
     };
 
     let policy = if cfg.vhost_net {
@@ -768,7 +768,7 @@ fn create_devices(
     balloon_device_socket: UnixSeqpacket,
     disk_device_sockets: &mut Vec<UnixSeqpacket>,
     usb_provider: HostBackendDeviceProvider,
-) -> DeviceResult<Vec<(Box<PciDevice>, Option<Minijail>)>> {
+) -> DeviceResult<Vec<(Box<dyn PciDevice>, Option<Minijail>)>> {
     let stubs = create_virtio_devices(
         &cfg,
         mem,
@@ -782,7 +782,7 @@ fn create_devices(
 
     for stub in stubs {
         let dev = VirtioPciDevice::new(mem.clone(), stub.dev).map_err(Error::VirtioPciDev)?;
-        let dev = Box::new(dev) as Box<PciDevice>;
+        let dev = Box::new(dev) as Box<dyn PciDevice>;
         pci_devices.push((dev, stub.jail));
     }