Skip to content

Commit

Permalink
Revert changes to internal method for now
Browse files Browse the repository at this point in the history
- Move fix to a separate PR
  • Loading branch information
celinval committed Jan 18, 2024
1 parent 2564811 commit 6a573cb
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 31 deletions.
28 changes: 2 additions & 26 deletions compiler/rustc_smir/src/rustc_internal/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,35 +24,11 @@ use std::ops::Index;
mod internal;
pub mod pretty;

/// Convert an internal Rust compiler item into its stable counterpart, if one exists.
///
/// # Warning
///
/// This function is unstable, and its behavior may change at any point.
/// E.g.: Items that were previously supported, may no longer be supported, or its translation may
/// change.
///
/// # Panics
///
/// This function will panic if StableMIR has not been properly initialized.
pub fn stable<'tcx, S: Stable<'tcx>>(item: S) -> S::T {
with_tables(|tables| item.stable(tables))
}

/// Convert a stable item into its internal Rust compiler counterpart, if one exists.
///
/// # Warning
///
/// This function is unstable, and it's behavior may change at any point.
/// Not every stable item can be converted to an internal one.
/// Furthermore, items that were previously supported, may no longer be supported in newer versions.
///
/// # Panics
///
/// This function will panic if StableMIR has not been properly initialized.
pub fn internal<'tcx, S: RustcInternal<'tcx>>(tcx: TyCtxt<'tcx>, item: S) -> S::T {
// The tcx argument ensures that the item won't outlive the type context.
let _ = tcx;
pub fn internal<'tcx, S: RustcInternal<'tcx>>(item: S) -> S::T {
with_tables(|tables| item.internal(tables))
}

Expand Down Expand Up @@ -293,7 +269,7 @@ macro_rules! optional {
};
}

/// Prefer using [run] and [run_with_tcx] instead.
/// Prefer using [run!] and [run_with_tcx] instead.
///
/// This macro implements the instantiation of a StableMIR driver, and it will invoke
/// the given callback after the compiler analyses.
Expand Down
5 changes: 2 additions & 3 deletions compiler/rustc_smir/src/rustc_smir/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ use stable_mir::{Crate, CrateItem, CrateNum, DefId, Error, Filename, ItemKind, S
use std::cell::RefCell;
use std::iter;

use crate::rustc_internal::RustcInternal;
use crate::rustc_internal::{internal, RustcInternal};
use crate::rustc_smir::builder::BodyBuilder;
use crate::rustc_smir::{alloc, new_item_kind, smir_crate, Stable, Tables};

Expand Down Expand Up @@ -322,8 +322,7 @@ impl<'tcx> Context for TablesWrapper<'tcx> {
}

fn const_literal(&self, cnst: &stable_mir::ty::Const) -> String {
let mut tables = self.0.borrow_mut();
cnst.internal(&mut *tables).to_string()
internal(cnst).to_string()
}

fn span_of_an_item(&self, def_id: stable_mir::DefId) -> Span {
Expand Down
4 changes: 2 additions & 2 deletions tests/ui-fulldeps/stable-mir/smir_internal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ use std::ops::ControlFlow;

const CRATE_NAME: &str = "input";

fn test_translation(tcx: TyCtxt) -> ControlFlow<()> {
fn test_translation(_tcx: TyCtxt) -> ControlFlow<()> {
let main_fn = stable_mir::entry_fn().unwrap();
let body = main_fn.body();
let orig_ty = body.locals()[0].ty;
let rustc_ty = rustc_internal::internal(tcx, &orig_ty);
let rustc_ty = rustc_internal::internal(&orig_ty);
assert!(rustc_ty.is_unit());
ControlFlow::Continue(())
}
Expand Down

0 comments on commit 6a573cb

Please sign in to comment.