Skip to content

Rollup of 14 pull requests #52268

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 39 commits into from
Jul 11, 2018
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
b79a83b
Suggestion for print
csmoe Jun 17, 2018
c999b25
add span note
csmoe Jul 4, 2018
88f475c
suggests with whole macro call
csmoe Jul 4, 2018
01b6d7c
libsyntax_pos: Tweak some visibilities
petrochenkov Jun 30, 2018
94ef9f5
hygiene: Decouple transparencies from expansion IDs
petrochenkov Jun 30, 2018
fc74e35
Remove fallback to parent modules from lexical resolution
petrochenkov Jul 7, 2018
39fcfa8
step_by: leave time of item skip unspecified
Emerentius Jul 9, 2018
f511c5e
improve error message shown for unsafe operations: explain why undefi…
RalfJung Jul 10, 2018
296e72f
Deny bare trait objects in in src/liballoc
ljedrz Jul 10, 2018
e28e487
Deny bare trait objects in in src/libsyntax
ljedrz Jul 10, 2018
84dadb6
Pacify tidy
ljedrz Jul 10, 2018
cd44b3d
Add missing dyn in liballoc
ljedrz Jul 10, 2018
0f3f292
remove sync::Once::call_once 'static
CAD97 Jul 11, 2018
217f8fb
Revert borked changes in last commit.
ljedrz Jul 11, 2018
f68323b
fix typo
RalfJung Jul 11, 2018
48e501f
Deny bare trait objects in in src/librustc
ljedrz Jul 11, 2018
5ccaaa8
Deny bare trait objects in in src/librustc_allocator
ljedrz Jul 11, 2018
ea47350
Deny bare trait objects in in src/librustc_codegen_llvm
ljedrz Jul 11, 2018
790c09e
suggest on new snippet
csmoe Jul 11, 2018
ff65bbe
Deny bare trait objects in in src/librustc_data_structures
ljedrz Jul 11, 2018
bbaf45d
Enforce #![deny(bare_trait_objects)] in src/librustc_data_structures …
ljedrz Jul 11, 2018
9cffe90
Deny bare trait objects in in src/librustc_metadata
ljedrz Jul 11, 2018
6cfd49e
add a missing `dyn`
ljedrz Jul 11, 2018
dbab06d
Deny bare trait objects in in src/libpanic_unwind
ljedrz Jul 11, 2018
715b885
Deny bare trait objects in in src/librustc_codegen_utils
ljedrz Jul 11, 2018
d2a8a2b
Rollup merge of #51614 - csmoe:lit_sugg, r=estebank
Mark-Simulacrum Jul 11, 2018
322632a
Rollup merge of #51952 - petrochenkov:transmark, r=alexcrichton
Mark-Simulacrum Jul 11, 2018
74cc821
Rollup merge of #52193 - Emerentius:step_by_note, r=alexcrichton
Mark-Simulacrum Jul 11, 2018
7897ee4
Rollup merge of #52207 - RalfJung:unsafety-errors, r=estebank
Mark-Simulacrum Jul 11, 2018
d096f6a
Rollup merge of #52223 - ljedrz:dyn_liballoc, r=cramertj
Mark-Simulacrum Jul 11, 2018
2d49909
Rollup merge of #52224 - ljedrz:dyn_libsyntax, r=oli-obk
Mark-Simulacrum Jul 11, 2018
b41105b
Rollup merge of #52239 - CAD97:patch-1, r=alexcrichton
Mark-Simulacrum Jul 11, 2018
2774179
Rollup merge of #52247 - ljedrz:dyn_librustc, r=oli-obk
Mark-Simulacrum Jul 11, 2018
8d9a6a7
Rollup merge of #52248 - ljedrz:dyn_librustc_allocator, r=oli-obk
Mark-Simulacrum Jul 11, 2018
dcc536f
Rollup merge of #52252 - ljedrz:dyn_librustc_codegen_llvm, r=varkor
Mark-Simulacrum Jul 11, 2018
59fb178
Rollup merge of #52253 - ljedrz:dyn_librustc_data_structures, r=cramertj
Mark-Simulacrum Jul 11, 2018
e6f6608
Rollup merge of #52254 - ljedrz:dyn_librustc_metadata, r=cramertj
Mark-Simulacrum Jul 11, 2018
7585bd5
Rollup merge of #52261 - ljedrz:dyn_libpanic_unwind, r=alexcrichton
Mark-Simulacrum Jul 11, 2018
a0b288e
Rollup merge of #52265 - ljedrz:dyn_librustc_codegen_utils, r=oli-obk
Mark-Simulacrum Jul 11, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/librustc_codegen_llvm/back/archive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ enum Addition {
},
Archive {
archive: ArchiveRO,
skip: Box<FnMut(&str) -> bool>,
skip: Box<dyn FnMut(&str) -> bool>,
},
}

Expand Down
16 changes: 8 additions & 8 deletions src/librustc_codegen_llvm/back/link.rs
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ fn filename_for_metadata(sess: &Session, crate_name: &str, outputs: &OutputFilen

pub(crate) fn each_linked_rlib(sess: &Session,
info: &CrateInfo,
f: &mut FnMut(CrateNum, &Path)) -> Result<(), String> {
f: &mut dyn FnMut(CrateNum, &Path)) -> Result<(), String> {
let crates = info.used_crates_static.iter();
let fmts = sess.dependency_formats.borrow();
let fmts = fmts.get(&config::CrateTypeExecutable)
Expand Down Expand Up @@ -984,7 +984,7 @@ fn exec_linker(sess: &Session, cmd: &mut Command, out_filename: &Path, tmpdir: &
}
}

fn link_args(cmd: &mut Linker,
fn link_args(cmd: &mut dyn Linker,
sess: &Session,
crate_type: config::CrateType,
tmpdir: &Path,
Expand Down Expand Up @@ -1195,7 +1195,7 @@ fn link_args(cmd: &mut Linker,
// Also note that the native libraries linked here are only the ones located
// in the current crate. Upstream crates with native library dependencies
// may have their native library pulled in above.
fn add_local_native_libraries(cmd: &mut Linker,
fn add_local_native_libraries(cmd: &mut dyn Linker,
sess: &Session,
codegen_results: &CodegenResults) {
sess.target_filesearch(PathKind::All).for_each_lib_search_path(|path, k| {
Expand Down Expand Up @@ -1226,7 +1226,7 @@ fn add_local_native_libraries(cmd: &mut Linker,
// Rust crates are not considered at all when creating an rlib output. All
// dependencies will be linked when producing the final output (instead of
// the intermediate rlib version)
fn add_upstream_rust_crates(cmd: &mut Linker,
fn add_upstream_rust_crates(cmd: &mut dyn Linker,
sess: &Session,
codegen_results: &CodegenResults,
crate_type: config::CrateType,
Expand Down Expand Up @@ -1350,7 +1350,7 @@ fn add_upstream_rust_crates(cmd: &mut Linker,
// it's packed in a .rlib, it contains stuff that are not objects that will
// make the linker error. So we must remove those bits from the .rlib before
// linking it.
fn link_sanitizer_runtime(cmd: &mut Linker,
fn link_sanitizer_runtime(cmd: &mut dyn Linker,
sess: &Session,
codegen_results: &CodegenResults,
tmpdir: &Path,
Expand Down Expand Up @@ -1419,7 +1419,7 @@ fn add_upstream_rust_crates(cmd: &mut Linker,
// (aka we're making an executable), we can just pass the rlib blindly to
// the linker (fast) because it's fine if it's not actually included as
// we're at the end of the dependency chain.
fn add_static_crate(cmd: &mut Linker,
fn add_static_crate(cmd: &mut dyn Linker,
sess: &Session,
codegen_results: &CodegenResults,
tmpdir: &Path,
Expand Down Expand Up @@ -1524,7 +1524,7 @@ fn add_upstream_rust_crates(cmd: &mut Linker,
}

// Same thing as above, but for dynamic crates instead of static crates.
fn add_dynamic_crate(cmd: &mut Linker, sess: &Session, cratepath: &Path) {
fn add_dynamic_crate(cmd: &mut dyn Linker, sess: &Session, cratepath: &Path) {
// If we're performing LTO, then it should have been previously required
// that all upstream rust dependencies were available in an rlib format.
assert!(!is_full_lto_enabled(sess));
Expand Down Expand Up @@ -1559,7 +1559,7 @@ fn add_upstream_rust_crates(cmd: &mut Linker,
// generic function calls a native function, then the generic function must
// be instantiated in the target crate, meaning that the native symbol must
// also be resolved in the target crate.
fn add_upstream_native_libraries(cmd: &mut Linker,
fn add_upstream_native_libraries(cmd: &mut dyn Linker,
sess: &Session,
codegen_results: &CodegenResults,
crate_type: config::CrateType) {
Expand Down
12 changes: 6 additions & 6 deletions src/librustc_codegen_llvm/back/linker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,22 +44,22 @@ impl LinkerInfo {

pub fn to_linker<'a>(&'a self,
cmd: Command,
sess: &'a Session) -> Box<Linker+'a> {
sess: &'a Session) -> Box<dyn Linker+'a> {
match sess.linker_flavor() {
LinkerFlavor::Lld(LldFlavor::Link) |
LinkerFlavor::Msvc => {
Box::new(MsvcLinker {
cmd,
sess,
info: self
}) as Box<Linker>
}) as Box<dyn Linker>
}
LinkerFlavor::Em => {
Box::new(EmLinker {
cmd,
sess,
info: self
}) as Box<Linker>
}) as Box<dyn Linker>
}
LinkerFlavor::Gcc => {
Box::new(GccLinker {
Expand All @@ -68,7 +68,7 @@ impl LinkerInfo {
info: self,
hinted_static: false,
is_ld: false,
}) as Box<Linker>
}) as Box<dyn Linker>
}

LinkerFlavor::Lld(LldFlavor::Ld) |
Expand All @@ -80,14 +80,14 @@ impl LinkerInfo {
info: self,
hinted_static: false,
is_ld: true,
}) as Box<Linker>
}) as Box<dyn Linker>
}

LinkerFlavor::Lld(LldFlavor::Wasm) => {
Box::new(WasmLd {
cmd,
sess,
}) as Box<Linker>
}) as Box<dyn Linker>
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/librustc_codegen_llvm/back/rpath.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ pub struct RPathConfig<'a> {
pub is_like_osx: bool,
pub has_rpath: bool,
pub linker_is_gnu: bool,
pub get_install_prefix_lib_path: &'a mut FnMut() -> PathBuf,
pub get_install_prefix_lib_path: &'a mut dyn FnMut() -> PathBuf,
}

pub fn get_rpath_flags(config: &mut RPathConfig) -> Vec<String> {
Expand Down
16 changes: 8 additions & 8 deletions src/librustc_codegen_llvm/back/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ pub fn create_target_machine(sess: &Session, find_features: bool) -> TargetMachi
// that `is_pie_binary` is false. When we discover LLVM target features
// `sess.crate_types` is uninitialized so we cannot access it.
pub fn target_machine_factory(sess: &Session, find_features: bool)
-> Arc<Fn() -> Result<TargetMachineRef, String> + Send + Sync>
-> Arc<dyn Fn() -> Result<TargetMachineRef, String> + Send + Sync>
{
let reloc_model = get_reloc_model(sess);

Expand Down Expand Up @@ -343,7 +343,7 @@ pub struct CodegenContext {
regular_module_config: Arc<ModuleConfig>,
metadata_module_config: Arc<ModuleConfig>,
allocator_module_config: Arc<ModuleConfig>,
pub tm_factory: Arc<Fn() -> Result<TargetMachineRef, String> + Send + Sync>,
pub tm_factory: Arc<dyn Fn() -> Result<TargetMachineRef, String> + Send + Sync>,
pub msvc_imps_needed: bool,
pub target_pointer_width: String,
debuginfo: config::DebugInfoLevel,
Expand All @@ -362,7 +362,7 @@ pub struct CodegenContext {
// compiling incrementally
pub incr_comp_session_dir: Option<PathBuf>,
// Channel back to the main control thread to send messages to
coordinator_send: Sender<Box<Any + Send>>,
coordinator_send: Sender<Box<dyn Any + Send>>,
// A reference to the TimeGraph so we can register timings. None means that
// measuring is disabled.
time_graph: Option<TimeGraph>,
Expand Down Expand Up @@ -884,7 +884,7 @@ pub fn start_async_codegen(tcx: TyCtxt,
time_graph: Option<TimeGraph>,
link: LinkMeta,
metadata: EncodedMetadata,
coordinator_receive: Receiver<Box<Any + Send>>,
coordinator_receive: Receiver<Box<dyn Any + Send>>,
total_cgus: usize)
-> OngoingCodegen {
let sess = tcx.sess;
Expand Down Expand Up @@ -1412,7 +1412,7 @@ fn start_executing_work(tcx: TyCtxt,
crate_info: &CrateInfo,
shared_emitter: SharedEmitter,
codegen_worker_send: Sender<Message>,
coordinator_receive: Receiver<Box<Any + Send>>,
coordinator_receive: Receiver<Box<dyn Any + Send>>,
total_cgus: usize,
jobserver: Client,
time_graph: Option<TimeGraph>,
Expand Down Expand Up @@ -1976,7 +1976,7 @@ fn spawn_work(cgcx: CodegenContext, work: WorkItem) {
// Set up a destructor which will fire off a message that we're done as
// we exit.
struct Bomb {
coordinator_send: Sender<Box<Any + Send>>,
coordinator_send: Sender<Box<dyn Any + Send>>,
result: Option<WorkItemResult>,
worker_id: usize,
}
Expand Down Expand Up @@ -2056,7 +2056,7 @@ pub unsafe fn with_llvm_pmb(llmod: ModuleRef,
config: &ModuleConfig,
opt_level: llvm::CodeGenOptLevel,
prepare_for_thin_lto: bool,
f: &mut FnMut(llvm::PassManagerBuilderRef)) {
f: &mut dyn FnMut(llvm::PassManagerBuilderRef)) {
use std::ptr;

// Create the PassManagerBuilder for LLVM. We configure it with
Expand Down Expand Up @@ -2243,7 +2243,7 @@ pub struct OngoingCodegen {
linker_info: LinkerInfo,
crate_info: CrateInfo,
time_graph: Option<TimeGraph>,
coordinator_send: Sender<Box<Any + Send>>,
coordinator_send: Sender<Box<dyn Any + Send>>,
codegen_worker_receive: Receiver<Message>,
shared_emitter_main: SharedEmitterMain,
future: thread::JoinHandle<Result<CompiledModules, ()>>,
Expand Down
2 changes: 1 addition & 1 deletion src/librustc_codegen_llvm/base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,7 @@ pub fn iter_globals(llmod: llvm::ModuleRef) -> ValueIter {
}

pub fn codegen_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
rx: mpsc::Receiver<Box<Any + Send>>)
rx: mpsc::Receiver<Box<dyn Any + Send>>)
-> OngoingCodegen {

check_for_rustc_errors_attr(tcx);
Expand Down
4 changes: 2 additions & 2 deletions src/librustc_codegen_llvm/intrinsic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -916,7 +916,7 @@ fn gen_fn<'a, 'tcx>(cx: &CodegenCx<'a, 'tcx>,
name: &str,
inputs: Vec<Ty<'tcx>>,
output: Ty<'tcx>,
codegen: &mut for<'b> FnMut(Builder<'b, 'tcx>))
codegen: &mut dyn for<'b> FnMut(Builder<'b, 'tcx>))
-> ValueRef {
let rust_fn_ty = cx.tcx.mk_fn_ptr(ty::Binder::bind(cx.tcx.mk_fn_sig(
inputs.into_iter(),
Expand All @@ -936,7 +936,7 @@ fn gen_fn<'a, 'tcx>(cx: &CodegenCx<'a, 'tcx>,
//
// This function is only generated once and is then cached.
fn get_rust_try_fn<'a, 'tcx>(cx: &CodegenCx<'a, 'tcx>,
codegen: &mut for<'b> FnMut(Builder<'b, 'tcx>))
codegen: &mut dyn for<'b> FnMut(Builder<'b, 'tcx>))
-> ValueRef {
if let Some(llfn) = cx.rust_try_fn.get() {
return llfn;
Expand Down
13 changes: 7 additions & 6 deletions src/librustc_codegen_llvm/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#![feature(custom_attribute)]
#![feature(fs_read_write)]
#![allow(unused_attributes)]
#![deny(bare_trait_objects)]
#![feature(libc)]
#![feature(quote)]
#![feature(range_contains)]
Expand Down Expand Up @@ -125,7 +126,7 @@ impl !Send for LlvmCodegenBackend {} // Llvm is on a per-thread basis
impl !Sync for LlvmCodegenBackend {}

impl LlvmCodegenBackend {
pub fn new() -> Box<CodegenBackend> {
pub fn new() -> Box<dyn CodegenBackend> {
box LlvmCodegenBackend(())
}
}
Expand Down Expand Up @@ -178,7 +179,7 @@ impl CodegenBackend for LlvmCodegenBackend {
target_features(sess)
}

fn metadata_loader(&self) -> Box<MetadataLoader + Sync> {
fn metadata_loader(&self) -> Box<dyn MetadataLoader + Sync> {
box metadata::LlvmMetadataLoader
}

Expand All @@ -198,14 +199,14 @@ impl CodegenBackend for LlvmCodegenBackend {
fn codegen_crate<'a, 'tcx>(
&self,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
rx: mpsc::Receiver<Box<Any + Send>>
) -> Box<Any> {
rx: mpsc::Receiver<Box<dyn Any + Send>>
) -> Box<dyn Any> {
box base::codegen_crate(tcx, rx)
}

fn join_codegen_and_link(
&self,
ongoing_codegen: Box<Any>,
ongoing_codegen: Box<dyn Any>,
sess: &Session,
dep_graph: &DepGraph,
outputs: &OutputFilenames,
Expand Down Expand Up @@ -247,7 +248,7 @@ impl CodegenBackend for LlvmCodegenBackend {

/// This is the entrypoint for a hot plugged rustc_codegen_llvm
#[no_mangle]
pub fn __rustc_codegen_backend() -> Box<CodegenBackend> {
pub fn __rustc_codegen_backend() -> Box<dyn CodegenBackend> {
LlvmCodegenBackend::new()
}

Expand Down