| use rustc_macros::{Decodable, Encodable, HashStable}; |
| use rustc_span::Symbol; |
| use rustc_span::def_id::DefId; |
| |
| use super::TyCtxt; |
| |
| #[derive(Copy, Clone, Debug, Decodable, Encodable, HashStable)] |
| pub struct IntrinsicDef { |
| pub name: Symbol, |
| /// Whether the intrinsic has no meaningful body and all backends need to shim all calls to it. |
| pub must_be_overridden: bool, |
| /// Whether the intrinsic can be invoked from stable const fn |
| pub const_stable: bool, |
| } |
| |
| impl TyCtxt<'_> { |
| pub fn is_intrinsic(self, def_id: DefId, name: Symbol) -> bool { |
| let Some(i) = self.intrinsic(def_id) else { return false }; |
| i.name == name |
| } |
| } |