| 
1 | 1 | //! Define the interface with the Rust compiler.  | 
2 | 2 | //!  | 
3 |  | -//! StableMIR users should not use any of the items in this module directly.  | 
 | 3 | +//! rustc_public users should not use any of the items in this module directly.  | 
4 | 4 | //! These APIs have no stability guarantee.  | 
5 | 5 | 
  | 
6 | 6 | use std::cell::Cell;  | 
7 | 7 | 
 
  | 
8 | 8 | use rustc_hir::def::DefKind;  | 
9 |  | -use rustc_public_bridge::context::SmirCtxt;  | 
10 |  | -use rustc_public_bridge::{Bridge, SmirContainer};  | 
 | 9 | +use rustc_public_bridge::context::CompilerCtxt;  | 
 | 10 | +use rustc_public_bridge::{Bridge, Container};  | 
11 | 11 | use tracing::debug;  | 
12 | 12 | 
 
  | 
13 | 13 | use crate::abi::{FnAbi, Layout, LayoutShape, ReprOptions};  | 
@@ -66,13 +66,13 @@ impl Bridge for BridgeTys {  | 
66 | 66 |     type Allocation = crate::ty::Allocation;  | 
67 | 67 | }  | 
68 | 68 | 
 
  | 
69 |  | -/// Stable public API for querying compiler information.  | 
 | 69 | +/// Public API for querying compiler information.  | 
70 | 70 | ///  | 
71 |  | -/// All queries are delegated to [`rustc_public_bridge::context::SmirCtxt`] that provides  | 
 | 71 | +/// All queries are delegated to [`rustc_public_bridge::context::CompilerCtxt`] that provides  | 
72 | 72 | /// similar APIs but based on internal rustc constructs.  | 
73 | 73 | ///  | 
74 | 74 | /// Do not use this directly. This is currently used in the macro expansion.  | 
75 |  | -pub(crate) trait SmirInterface {  | 
 | 75 | +pub(crate) trait CompilerInterface {  | 
76 | 76 |     fn entry_fn(&self) -> Option<CrateItem>;  | 
77 | 77 |     /// Retrieve all items of the local crate that have a MIR associated with them.  | 
78 | 78 |     fn all_local_items(&self) -> CrateItems;  | 
@@ -316,7 +316,7 @@ pub(crate) trait SmirInterface {  | 
316 | 316 |     fn associated_items(&self, def_id: DefId) -> AssocItems;  | 
317 | 317 | }  | 
318 | 318 | 
 
  | 
319 |  | -impl<'tcx> SmirInterface for SmirContainer<'tcx, BridgeTys> {  | 
 | 319 | +impl<'tcx> CompilerInterface for Container<'tcx, BridgeTys> {  | 
320 | 320 |     fn entry_fn(&self) -> Option<CrateItem> {  | 
321 | 321 |         let mut tables = self.tables.borrow_mut();  | 
322 | 322 |         let cx = &*self.cx.borrow();  | 
@@ -567,7 +567,7 @@ impl<'tcx> SmirInterface for SmirContainer<'tcx, BridgeTys> {  | 
567 | 567 |             DefKind::Fn => ForeignItemKind::Fn(tables.fn_def(def_id)),  | 
568 | 568 |             DefKind::Static { .. } => ForeignItemKind::Static(tables.static_def(def_id)),  | 
569 | 569 |             DefKind::ForeignTy => {  | 
570 |  | -                use rustc_public_bridge::context::SmirTy;  | 
 | 570 | +                use rustc_public_bridge::context::TyHelpers;  | 
571 | 571 |                 ForeignItemKind::Type(tables.intern_ty(cx.new_foreign(def_id)))  | 
572 | 572 |             }  | 
573 | 573 |             def_kind => unreachable!("Unexpected kind for a foreign item: {:?}", def_kind),  | 
@@ -1059,36 +1059,36 @@ impl<'tcx> SmirInterface for SmirContainer<'tcx, BridgeTys> {  | 
1059 | 1059 |     }  | 
1060 | 1060 | }  | 
1061 | 1061 | 
 
  | 
1062 |  | -// A thread local variable that stores a pointer to [`SmirInterface`].  | 
 | 1062 | +// A thread local variable that stores a pointer to [`CompilerInterface`].  | 
1063 | 1063 | scoped_tls::scoped_thread_local!(static TLV: Cell<*const ()>);  | 
1064 | 1064 | 
 
  | 
1065 |  | -pub(crate) fn run<F, T>(interface: &dyn SmirInterface, f: F) -> Result<T, Error>  | 
 | 1065 | +pub(crate) fn run<F, T>(interface: &dyn CompilerInterface, f: F) -> Result<T, Error>  | 
1066 | 1066 | where  | 
1067 | 1067 |     F: FnOnce() -> T,  | 
1068 | 1068 | {  | 
1069 | 1069 |     if TLV.is_set() {  | 
1070 |  | -        Err(Error::from("StableMIR already running"))  | 
 | 1070 | +        Err(Error::from("rustc_public already running"))  | 
1071 | 1071 |     } else {  | 
1072 | 1072 |         let ptr: *const () = (&raw const interface) as _;  | 
1073 | 1073 |         TLV.set(&Cell::new(ptr), || Ok(f()))  | 
1074 | 1074 |     }  | 
1075 | 1075 | }  | 
1076 | 1076 | 
 
  | 
1077 |  | -/// Execute the given function with access the [`SmirInterface`].  | 
 | 1077 | +/// Execute the given function with access the [`CompilerInterface`].  | 
1078 | 1078 | ///  | 
1079 | 1079 | /// I.e., This function will load the current interface and calls a function with it.  | 
1080 | 1080 | /// Do not nest these, as that will ICE.  | 
1081 |  | -pub(crate) fn with<R>(f: impl FnOnce(&dyn SmirInterface) -> R) -> R {  | 
 | 1081 | +pub(crate) fn with<R>(f: impl FnOnce(&dyn CompilerInterface) -> R) -> R {  | 
1082 | 1082 |     assert!(TLV.is_set());  | 
1083 | 1083 |     TLV.with(|tlv| {  | 
1084 | 1084 |         let ptr = tlv.get();  | 
1085 | 1085 |         assert!(!ptr.is_null());  | 
1086 |  | -        f(unsafe { *(ptr as *const &dyn SmirInterface) })  | 
 | 1086 | +        f(unsafe { *(ptr as *const &dyn CompilerInterface) })  | 
1087 | 1087 |     })  | 
1088 | 1088 | }  | 
1089 | 1089 | 
 
  | 
1090 | 1090 | fn smir_crate<'tcx>(  | 
1091 |  | -    cx: &SmirCtxt<'tcx, BridgeTys>,  | 
 | 1091 | +    cx: &CompilerCtxt<'tcx, BridgeTys>,  | 
1092 | 1092 |     crate_num: rustc_span::def_id::CrateNum,  | 
1093 | 1093 | ) -> Crate {  | 
1094 | 1094 |     let name = cx.crate_name(crate_num);  | 
 | 
0 commit comments