diff options
| author | Mark Mansi <markm@cs.wisc.edu> | 2019-05-24 10:57:30 -0500 |
|---|---|---|
| committer | Mark Mansi <markm@cs.wisc.edu> | 2019-06-02 22:55:29 -0500 |
| commit | 621bf0da80a9f304906d74657a91ed927f4f9cad (patch) | |
| tree | df9208e83048b13ad9d1def574336463369415de /src/librustc_codegen_ssa | |
| parent | f2b9b2d13bb14dd80d5bacbbb63d9d5cc6003a35 (diff) | |
| download | rust-621bf0da80a9f304906d74657a91ed927f4f9cad.tar.gz rust-621bf0da80a9f304906d74657a91ed927f4f9cad.zip | |
move monoitemext to inherent methods
Diffstat (limited to 'src/librustc_codegen_ssa')
| -rw-r--r-- | src/librustc_codegen_ssa/base.rs | 4 | ||||
| -rw-r--r-- | src/librustc_codegen_ssa/mono_item.rs | 31 |
2 files changed, 18 insertions, 17 deletions
diff --git a/src/librustc_codegen_ssa/base.rs b/src/librustc_codegen_ssa/base.rs index fc3d0712fca..34e5b0681de 100644 --- a/src/librustc_codegen_ssa/base.rs +++ b/src/librustc_codegen_ssa/base.rs @@ -20,11 +20,10 @@ use rustc::hir::def_id::{DefId, LOCAL_CRATE}; use rustc::middle::cstore::EncodedMetadata; use rustc::middle::lang_items::StartFnLangItem; use rustc::middle::weak_lang_items; -use rustc::mir::mono::{CodegenUnitNameBuilder, CodegenUnit}; +use rustc::mir::mono::{CodegenUnitNameBuilder, CodegenUnit, MonoItem}; use rustc::ty::{self, Ty, TyCtxt, Instance}; use rustc::ty::layout::{self, Align, TyLayout, LayoutOf, VariantIdx, HasTyCtxt}; use rustc::ty::query::Providers; -use rustc::ty::print::obsolete::DefPathBasedNames; use rustc::middle::cstore::{self, LinkagePreference}; use rustc::util::common::{time, print_time_passes_entry}; use rustc::session::config::{self, EntryFnType, Lto}; @@ -42,7 +41,6 @@ use crate::callee; use crate::common::{RealPredicate, TypeKind, IntPredicate}; use crate::meth; use crate::mir; -use crate::mono_item::MonoItem; use crate::traits::*; diff --git a/src/librustc_codegen_ssa/mono_item.rs b/src/librustc_codegen_ssa/mono_item.rs index 60d75480e61..1c9c86a5f5d 100644 --- a/src/librustc_codegen_ssa/mono_item.rs +++ b/src/librustc_codegen_ssa/mono_item.rs @@ -1,19 +1,18 @@ use rustc::hir; use rustc::mir::mono::{Linkage, Visibility}; use rustc::ty::layout::HasTyCtxt; -use std::fmt; use crate::base; use crate::traits::*; -pub use rustc::mir::mono::MonoItem; +use rustc::mir::mono::MonoItem; -pub use rustc_mir::monomorphize::item::MonoItemExt as BaseMonoItemExt; +pub trait MonoItemExt<'a, 'tcx: 'a> { + fn as_mono_item(&self) -> &MonoItem<'tcx>; -pub trait MonoItemExt<'a, 'tcx: 'a>: fmt::Debug + BaseMonoItemExt<'a, 'tcx> { fn define<Bx: BuilderMethods<'a, 'tcx>>(&self, cx: &'a Bx::CodegenCx) { debug!("BEGIN IMPLEMENTING '{} ({})' in cgu {}", - self.to_string(cx.tcx(), true), - self.to_raw_string(), + self.as_mono_item().to_string(cx.tcx(), true), + self.as_mono_item().to_raw_string(), cx.codegen_unit().name()); match *self.as_mono_item() { @@ -34,8 +33,8 @@ pub trait MonoItemExt<'a, 'tcx: 'a>: fmt::Debug + BaseMonoItemExt<'a, 'tcx> { } debug!("END IMPLEMENTING '{} ({})' in cgu {}", - self.to_string(cx.tcx(), true), - self.to_raw_string(), + self.as_mono_item().to_string(cx.tcx(), true), + self.as_mono_item().to_raw_string(), cx.codegen_unit().name()); } @@ -46,11 +45,11 @@ pub trait MonoItemExt<'a, 'tcx: 'a>: fmt::Debug + BaseMonoItemExt<'a, 'tcx> { visibility: Visibility ) { debug!("BEGIN PREDEFINING '{} ({})' in cgu {}", - self.to_string(cx.tcx(), true), - self.to_raw_string(), + self.as_mono_item().to_string(cx.tcx(), true), + self.as_mono_item().to_raw_string(), cx.codegen_unit().name()); - let symbol_name = self.symbol_name(cx.tcx()).as_str(); + let symbol_name = self.as_mono_item().symbol_name(cx.tcx()).as_str(); debug!("symbol {}", &symbol_name); @@ -65,8 +64,8 @@ pub trait MonoItemExt<'a, 'tcx: 'a>: fmt::Debug + BaseMonoItemExt<'a, 'tcx> { } debug!("END PREDEFINING '{} ({})' in cgu {}", - self.to_string(cx.tcx(), true), - self.to_raw_string(), + self.as_mono_item().to_string(cx.tcx(), true), + self.as_mono_item().to_raw_string(), cx.codegen_unit().name()); } @@ -87,4 +86,8 @@ pub trait MonoItemExt<'a, 'tcx: 'a>: fmt::Debug + BaseMonoItemExt<'a, 'tcx> { } } -impl<'a, 'tcx: 'a> MonoItemExt<'a, 'tcx> for MonoItem<'tcx> {} +impl<'a, 'tcx: 'a> MonoItemExt<'a, 'tcx> for MonoItem<'tcx> { + fn as_mono_item(&self) -> &MonoItem<'tcx> { + self + } +} |
