Skip to main content

hir_ide/
lib.rs

1//! The final bits of analysis; Display, extra diagnostics, and tests.
2
3#![cfg_attr(feature = "in-rust-tree", feature(rustc_private))]
4// It's useful to refer to code that is private in doc comments.
5#![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}