Change rustc_driver dependency on stable_mir crate
This fixes issues with RustAnalyzer not finding stable_mir crate. It is also part of the long term architecture plan for these crates, since we are moving towards having stable_mir depend on rustc_smir and not the other way around. I believe this is an utility function that will come handy eventually for stable_mir users, but I'm keeping it as part of rustc_internal since it initializes the StableMir context and requires `TyCtxt`. Finally, I added the rustc_internal crate under a feature since the APIs from this module shall not be stabilized.
This commit is contained in:
@@ -3583,13 +3583,13 @@ dependencies = [
|
|||||||
"rustc_query_system",
|
"rustc_query_system",
|
||||||
"rustc_resolve",
|
"rustc_resolve",
|
||||||
"rustc_session",
|
"rustc_session",
|
||||||
"rustc_smir",
|
|
||||||
"rustc_span",
|
"rustc_span",
|
||||||
"rustc_target",
|
"rustc_target",
|
||||||
"rustc_trait_selection",
|
"rustc_trait_selection",
|
||||||
"rustc_ty_utils",
|
"rustc_ty_utils",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"shlex",
|
"shlex",
|
||||||
|
"stable_mir",
|
||||||
"tracing",
|
"tracing",
|
||||||
"windows 0.59.0",
|
"windows 0.59.0",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -44,13 +44,13 @@ rustc_privacy = { path = "../rustc_privacy" }
|
|||||||
rustc_query_system = { path = "../rustc_query_system" }
|
rustc_query_system = { path = "../rustc_query_system" }
|
||||||
rustc_resolve = { path = "../rustc_resolve" }
|
rustc_resolve = { path = "../rustc_resolve" }
|
||||||
rustc_session = { path = "../rustc_session" }
|
rustc_session = { path = "../rustc_session" }
|
||||||
rustc_smir = { path = "../rustc_smir" }
|
|
||||||
rustc_span = { path = "../rustc_span" }
|
rustc_span = { path = "../rustc_span" }
|
||||||
rustc_target = { path = "../rustc_target" }
|
rustc_target = { path = "../rustc_target" }
|
||||||
rustc_trait_selection = { path = "../rustc_trait_selection" }
|
rustc_trait_selection = { path = "../rustc_trait_selection" }
|
||||||
rustc_ty_utils = { path = "../rustc_ty_utils" }
|
rustc_ty_utils = { path = "../rustc_ty_utils" }
|
||||||
serde_json = "1.0.59"
|
serde_json = "1.0.59"
|
||||||
shlex = "1.0"
|
shlex = "1.0"
|
||||||
|
stable_mir = { path = "../stable_mir", features = ["rustc_internal"] }
|
||||||
tracing = { version = "0.1.35" }
|
tracing = { version = "0.1.35" }
|
||||||
# tidy-alphabetical-end
|
# tidy-alphabetical-end
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ use rustc_middle::ty::{self, TyCtxt};
|
|||||||
use rustc_mir_build::thir::print::{thir_flat, thir_tree};
|
use rustc_mir_build::thir::print::{thir_flat, thir_tree};
|
||||||
use rustc_session::Session;
|
use rustc_session::Session;
|
||||||
use rustc_session::config::{OutFileName, PpHirMode, PpMode, PpSourceMode};
|
use rustc_session::config::{OutFileName, PpHirMode, PpMode, PpSourceMode};
|
||||||
use rustc_smir::rustc_internal::pretty::write_smir_pretty;
|
|
||||||
use rustc_span::{FileName, Ident};
|
use rustc_span::{FileName, Ident};
|
||||||
|
use stable_mir::rustc_internal::pretty::write_smir_pretty;
|
||||||
use tracing::debug;
|
use tracing::debug;
|
||||||
use {rustc_ast as ast, rustc_hir_pretty as pprust_hir};
|
use {rustc_ast as ast, rustc_hir_pretty as pprust_hir};
|
||||||
|
|
||||||
|
|||||||
@@ -5,3 +5,9 @@ edition = "2024"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rustc_smir = { path = "../rustc_smir" }
|
rustc_smir = { path = "../rustc_smir" }
|
||||||
|
|
||||||
|
[features]
|
||||||
|
# Provides access to APIs that expose internals of the rust compiler.
|
||||||
|
# APIs enabled by this feature are unstable. They can be removed or modified
|
||||||
|
# at any point and they are not included in the crate's semantic versioning.
|
||||||
|
rustc_internal = []
|
||||||
|
|||||||
@@ -4,4 +4,8 @@
|
|||||||
//! This is a transitional measure as described in [PR #139319](https://github.com/rust-lang/rust/pull/139319).
|
//! This is a transitional measure as described in [PR #139319](https://github.com/rust-lang/rust/pull/139319).
|
||||||
//! Once the refactoring is complete, the `stable_mir` implementation will be moved back here.
|
//! Once the refactoring is complete, the `stable_mir` implementation will be moved back here.
|
||||||
|
|
||||||
|
/// Export the rustc_internal APIs. Note that this module has no stability
|
||||||
|
/// guarantees and it is not taken into account for semver.
|
||||||
|
#[cfg(feature = "rustc_internal")]
|
||||||
|
pub use rustc_smir::rustc_internal;
|
||||||
pub use rustc_smir::stable_mir::*;
|
pub use rustc_smir::stable_mir::*;
|
||||||
|
|||||||
Reference in New Issue
Block a user