From f2fe12a8ab85ab7e579bcc74246e6c7fea9f1015 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Sat, 2 Feb 2019 19:00:02 +0100 Subject: [PATCH 1/3] libpanic_unwind => 2018 --- src/libpanic_unwind/Cargo.toml | 1 + src/libpanic_unwind/dwarf/eh.rs | 6 +++--- src/libpanic_unwind/emcc.rs | 2 +- src/libpanic_unwind/gcc.rs | 2 +- src/libpanic_unwind/lib.rs | 6 +++--- src/libpanic_unwind/seh.rs | 4 ++-- src/libpanic_unwind/seh64_gnu.rs | 4 ++-- 7 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/libpanic_unwind/Cargo.toml b/src/libpanic_unwind/Cargo.toml index c9fce621608..1b3901ac11a 100644 --- a/src/libpanic_unwind/Cargo.toml +++ b/src/libpanic_unwind/Cargo.toml @@ -2,6 +2,7 @@ authors = ["The Rust Project Developers"] name = "panic_unwind" version = "0.0.0" +edition = "2018" [lib] path = "lib.rs" diff --git a/src/libpanic_unwind/dwarf/eh.rs b/src/libpanic_unwind/dwarf/eh.rs index ce24406b556..07fa2971847 100644 --- a/src/libpanic_unwind/dwarf/eh.rs +++ b/src/libpanic_unwind/dwarf/eh.rs @@ -11,7 +11,7 @@ #![allow(non_upper_case_globals)] #![allow(unused)] -use dwarf::DwarfReader; +use crate::dwarf::DwarfReader; use core::mem; pub const DW_EH_PE_omit: u8 = 0xFF; @@ -51,7 +51,7 @@ pub enum EHAction { pub const USING_SJLJ_EXCEPTIONS: bool = cfg!(all(target_os = "ios", target_arch = "arm")); -pub unsafe fn find_eh_action(lsda: *const u8, context: &EHContext) +pub unsafe fn find_eh_action(lsda: *const u8, context: &EHContext<'_>) -> Result { if lsda.is_null() { @@ -145,7 +145,7 @@ fn round_up(unrounded: usize, align: usize) -> Result { } unsafe fn read_encoded_pointer(reader: &mut DwarfReader, - context: &EHContext, + context: &EHContext<'_>, encoding: u8) -> Result { if encoding == DW_EH_PE_omit { diff --git a/src/libpanic_unwind/emcc.rs b/src/libpanic_unwind/emcc.rs index 1f5ccfb0f12..18e9006468e 100644 --- a/src/libpanic_unwind/emcc.rs +++ b/src/libpanic_unwind/emcc.rs @@ -10,10 +10,10 @@ use core::any::Any; use core::ptr; +use core::mem; use alloc::boxed::Box; use libc::{self, c_int}; use unwind as uw; -use core::mem; pub fn payload() -> *mut u8 { ptr::null_mut() diff --git a/src/libpanic_unwind/gcc.rs b/src/libpanic_unwind/gcc.rs index 607fe28e3f2..e2b743b3797 100644 --- a/src/libpanic_unwind/gcc.rs +++ b/src/libpanic_unwind/gcc.rs @@ -52,7 +52,7 @@ use alloc::boxed::Box; use unwind as uw; use libc::{c_int, uintptr_t}; -use dwarf::eh::{self, EHContext, EHAction}; +use crate::dwarf::eh::{self, EHContext, EHAction}; #[repr(C)] struct Exception { diff --git a/src/libpanic_unwind/lib.rs b/src/libpanic_unwind/lib.rs index fa7a0916d42..0369880a8d1 100644 --- a/src/libpanic_unwind/lib.rs +++ b/src/libpanic_unwind/lib.rs @@ -17,6 +17,8 @@ #![doc(html_root_url = "https://doc.rust-lang.org/nightly/", issue_tracker_base_url = "https://github.com/rust-lang/rust/issues/")] +#![deny(rust_2018_idioms)] + #![feature(allocator_api)] #![feature(alloc)] #![feature(core_intrinsics)] @@ -32,8 +34,6 @@ #![panic_runtime] #![feature(panic_runtime)] -extern crate alloc; -extern crate libc; #[cfg(not(any(target_env = "msvc", all(windows, target_arch = "x86_64", target_env = "gnu"))))] extern crate unwind; @@ -87,7 +87,7 @@ pub unsafe extern "C" fn __rust_maybe_catch_panic(f: fn(*mut u8), vtable_ptr: *mut usize) -> u32 { let mut payload = imp::payload(); - if intrinsics::try(f, data, &mut payload as *mut _ as *mut _) == 0 { + if intrinsics::r#try(f, data, &mut payload as *mut _ as *mut _) == 0 { 0 } else { let obj = mem::transmute::<_, raw::TraitObject>(imp::cleanup(payload)); diff --git a/src/libpanic_unwind/seh.rs b/src/libpanic_unwind/seh.rs index f52d010815c..996fdb931ef 100644 --- a/src/libpanic_unwind/seh.rs +++ b/src/libpanic_unwind/seh.rs @@ -52,7 +52,7 @@ use core::any::Any; use core::mem; use core::raw; -use windows as c; +use crate::windows as c; use libc::{c_int, c_uint}; // First up, a whole bunch of type definitions. There's a few platform-specific @@ -301,5 +301,5 @@ pub unsafe fn cleanup(payload: [u64; 2]) -> Box { #[lang = "eh_personality"] #[cfg(not(test))] fn rust_eh_personality() { - unsafe { ::core::intrinsics::abort() } + unsafe { core::intrinsics::abort() } } diff --git a/src/libpanic_unwind/seh64_gnu.rs b/src/libpanic_unwind/seh64_gnu.rs index 56ff6082190..457ffcd34f9 100644 --- a/src/libpanic_unwind/seh64_gnu.rs +++ b/src/libpanic_unwind/seh64_gnu.rs @@ -9,8 +9,8 @@ use alloc::boxed::Box; use core::any::Any; use core::intrinsics; use core::ptr; -use dwarf::eh::{EHContext, EHAction, find_eh_action}; -use windows as c; +use crate::dwarf::eh::{EHContext, EHAction, find_eh_action}; +use crate::windows as c; // Define our exception codes: // according to http://msdn.microsoft.com/en-us/library/het71c37(v=VS.80).aspx, From f9e9c9196a196e95d8f39aa57ed30857525be5e6 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Wed, 13 Feb 2019 00:07:22 +0100 Subject: [PATCH 2/3] libpanic_unwind => 2018: fix ICEs. --- src/librustc_typeck/check/method/suggest.rs | 5 ++--- src/librustdoc/visit_lib.rs | 8 +++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/librustc_typeck/check/method/suggest.rs b/src/librustc_typeck/check/method/suggest.rs index aa6f73b29b4..b3248018b55 100644 --- a/src/librustc_typeck/check/method/suggest.rs +++ b/src/librustc_typeck/check/method/suggest.rs @@ -752,12 +752,11 @@ fn compute_all_traits<'a, 'gcx, 'tcx>(tcx: TyCtxt<'a, 'gcx, 'tcx>) -> Vec traits: &mut Vec, external_mods: &mut FxHashSet, def: Def) { - let def_id = def.def_id(); match def { - Def::Trait(..) => { + Def::Trait(def_id) => { traits.push(def_id); } - Def::Mod(..) => { + Def::Mod(def_id) => { if !external_mods.insert(def_id) { return; } diff --git a/src/librustdoc/visit_lib.rs b/src/librustdoc/visit_lib.rs index 7413a917f05..bd5cae861e9 100644 --- a/src/librustdoc/visit_lib.rs +++ b/src/librustdoc/visit_lib.rs @@ -60,9 +60,11 @@ impl<'a, 'tcx, 'rcx> LibEmbargoVisitor<'a, 'tcx, 'rcx> { } for item in self.cx.tcx.item_children(def_id).iter() { - if self.cx.tcx.def_key(item.def.def_id()).parent.map_or(false, |d| d == def_id.index) || - item.vis == Visibility::Public { - self.visit_item(item.def); + if let Some(def_id) = item.def.opt_def_id() { + if self.cx.tcx.def_key(def_id).parent.map_or(false, |d| d == def_id.index) || + item.vis == Visibility::Public { + self.visit_item(item.def); + } } } } From bb08499626d22504a6e212ead546e7ed5190c5e6 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Wed, 13 Feb 2019 18:08:53 +0100 Subject: [PATCH 3/3] libpanic_unwind => 2018: remove unused extern crate. --- src/libpanic_unwind/lib.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/libpanic_unwind/lib.rs b/src/libpanic_unwind/lib.rs index 0369880a8d1..9d3d8f6185b 100644 --- a/src/libpanic_unwind/lib.rs +++ b/src/libpanic_unwind/lib.rs @@ -34,9 +34,6 @@ #![panic_runtime] #![feature(panic_runtime)] -#[cfg(not(any(target_env = "msvc", all(windows, target_arch = "x86_64", target_env = "gnu"))))] -extern crate unwind; - use alloc::boxed::Box; use core::intrinsics; use core::mem;