ctx.func = Function::with_name_signature(ExternalName::user(0, 0), sig.clone());
{
let mut func_ctx = FunctionBuilderContext::new();
- let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
+ let mut bcx = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
let ebb = bcx.create_ebb();
bcx.switch_to_block(ebb);
// Step 3. Make FunctionBuilder
let mut func = Function::with_name_signature(ExternalName::user(0, 0), sig);
let mut func_ctx = FunctionBuilderContext::new();
- let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut func, &mut func_ctx);
+ let mut bcx = FunctionBuilder::new(&mut func, &mut func_ctx);
// Step 4. Predefine ebb's
let start_ebb = bcx.create_ebb();
}
}
-pub struct FunctionCx<'a, 'tcx: 'a, B: Backend + 'a> {
+pub struct FunctionCx<'a, 'tcx: 'a, B: Backend> {
pub tcx: TyCtxt<'a, 'tcx, 'tcx>,
pub module: &'a mut Module<B>,
pub pointer_type: Type, // Cached from module
)]
#![allow(intra_doc_link_resolution_failure)]
-extern crate byteorder;
extern crate syntax;
-#[macro_use]
extern crate rustc;
extern crate rustc_allocator;
extern crate rustc_codegen_utils;
extern crate rustc_incremental;
extern crate rustc_mir;
extern crate rustc_target;
-#[macro_use]
extern crate rustc_data_structures;
extern crate rustc_fs_util;
-#[macro_use]
extern crate log;
-extern crate ar;
-#[macro_use]
-extern crate bitflags;
-extern crate faerie;
-//extern crate goblin;
-extern crate cranelift;
-extern crate cranelift_faerie;
-extern crate cranelift_module;
-extern crate cranelift_simplejit;
-extern crate target_lexicon;
-
use std::any::Any;
use std::fs::File;
use std::sync::mpsc;
pub use syntax::ast::{FloatTy, IntTy, UintTy};
pub use syntax::source_map::DUMMY_SP;
+ pub use rustc::bug;
pub use rustc::hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
pub use rustc::mir::{self, interpret::AllocId, *};
pub use rustc::session::{
}
}
- fn metadata_loader(&self) -> Box<MetadataLoader + Sync> {
+ fn metadata_loader(&self) -> Box<dyn MetadataLoader + Sync> {
Box::new(crate::metadata::CraneliftMetadataLoader)
}
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> {
if !tcx.sess.crate_types.get().contains(&CrateType::Executable)
&& std::env::var("SHOULD_RUN").is_ok()
{
fn join_codegen_and_link(
&self,
- res: Box<Any>,
+ res: Box<dyn Any>,
sess: &Session,
_dep_graph: &DepGraph,
outputs: &OutputFilenames,
/// This is the entrypoint for a hot plugged rustc_codegen_cranelift
#[no_mangle]
-pub fn __rustc_codegen_backend() -> Box<CodegenBackend> {
+pub fn __rustc_codegen_backend() -> Box<dyn CodegenBackend> {
Box::new(CraneliftCodegenBackend)
}