1#![cfg_attr(feature = "in-rust-tree", feature(rustc_private))]
4#![allow(rustdoc::private_intra_doc_links)]
6
7extern crate ra_ap_rustc_abi as rustc_abi;
8extern crate ra_ap_rustc_ast_ir as rustc_ast_ir;
9extern crate ra_ap_rustc_pattern_analysis as rustc_pattern_analysis;
10extern crate ra_ap_rustc_type_ir as rustc_type_ir;
11
12pub mod diagnostics;
13pub mod display;
14mod impl_db_macro;
15pub mod mir_pretty;
16
17#[doc(hidden)]
18pub mod __private {
19 pub use hir_def;
20 pub use salsa;
21}
22
23#[cfg(test)]
24mod test_db;
25#[cfg(test)]
26mod tests;
27
28use hir_def::ModuleId;
29use hir_ty::{db::HirDatabase, next_solver::Const};
30use syntax::ast::{ConstArg, make};
31
32pub use hir_ty::*;
33
34use crate::display::HirDisplay;
35
36pub fn known_const_to_ast<'db>(
37 konst: Const<'db>,
38 db: &'db dyn HirDatabase,
39 target_module: ModuleId,
40) -> Option<ConstArg> {
41 Some(make::expr_const_value(
42 &konst.display_source_code(db, target_module, true).unwrap_or_else(|_| "_".to_owned()),
43 ))
44}