| <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `HirDatabase` trait in crate `hir`."><title>HirDatabase in hir::db - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="hir" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">HirDatabase</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../hir/index.html">hir</a><span class="version">0.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">HirDatabase</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.as_dyn" title="as_dyn">as_dyn</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.anon_const_eval" title="anon_const_eval">anon_const_eval</a></li><li><a href="#method.callable_item_signature" title="callable_item_signature">callable_item_signature</a></li><li><a href="#method.const_eval" title="const_eval">const_eval</a></li><li><a href="#method.const_eval_discriminant" title="const_eval_discriminant">const_eval_discriminant</a></li><li><a href="#method.const_eval_static" title="const_eval_static">const_eval_static</a></li><li><a href="#method.const_param_ty" title="const_param_ty">const_param_ty</a></li><li><a href="#method.const_param_types" title="const_param_types">const_param_types</a></li><li><a href="#method.const_param_types_with_diagnostics" title="const_param_types_with_diagnostics">const_param_types_with_diagnostics</a></li><li><a href="#method.dyn_compatibility_of_trait" title="dyn_compatibility_of_trait">dyn_compatibility_of_trait</a></li><li><a href="#method.field_types" title="field_types">field_types</a></li><li><a href="#method.field_types_with_diagnostics" title="field_types_with_diagnostics">field_types_with_diagnostics</a></li><li><a href="#method.fn_sig_for_fn_with_diagnostics" title="fn_sig_for_fn_with_diagnostics">fn_sig_for_fn_with_diagnostics</a></li><li><a href="#method.generic_defaults" title="generic_defaults">generic_defaults</a></li><li><a href="#method.generic_defaults_with_diagnostics" title="generic_defaults_with_diagnostics">generic_defaults_with_diagnostics</a></li><li><a href="#method.impl_self_ty" title="impl_self_ty">impl_self_ty</a></li><li><a href="#method.impl_self_ty_with_diagnostics" title="impl_self_ty_with_diagnostics">impl_self_ty_with_diagnostics</a></li><li><a href="#method.impl_trait" title="impl_trait">impl_trait</a></li><li><a href="#method.impl_trait_with_diagnostics" title="impl_trait_with_diagnostics">impl_trait_with_diagnostics</a></li><li><a href="#method.layout_of_adt" title="layout_of_adt">layout_of_adt</a></li><li><a href="#method.layout_of_ty" title="layout_of_ty">layout_of_ty</a></li><li><a href="#method.lookup_impl_method" title="lookup_impl_method">lookup_impl_method</a></li><li><a href="#method.mir_body" title="mir_body">mir_body</a></li><li><a href="#method.mir_body_for_closure" title="mir_body_for_closure">mir_body_for_closure</a></li><li><a href="#method.monomorphized_mir_body" title="monomorphized_mir_body">monomorphized_mir_body</a></li><li><a href="#method.monomorphized_mir_body_for_closure" title="monomorphized_mir_body_for_closure">monomorphized_mir_body_for_closure</a></li><li><a href="#method.target_data_layout" title="target_data_layout">target_data_layout</a></li><li><a href="#method.target_data_layout_or_default" title="target_data_layout_or_default">target_data_layout_or_default</a></li><li><a href="#method.trait_environment" title="trait_environment">trait_environment</a></li><li><a href="#method.ty" title="ty">ty</a></li><li><a href="#method.type_alias_bounds" title="type_alias_bounds">type_alias_bounds</a></li><li><a href="#method.type_alias_bounds_with_diagnostics" title="type_alias_bounds_with_diagnostics">type_alias_bounds_with_diagnostics</a></li><li><a href="#method.type_alias_self_bounds" title="type_alias_self_bounds">type_alias_self_bounds</a></li><li><a href="#method.type_for_const" title="type_for_const">type_for_const</a></li><li><a href="#method.type_for_const_with_diagnostics" title="type_for_const_with_diagnostics">type_for_const_with_diagnostics</a></li><li><a href="#method.type_for_static" title="type_for_static">type_for_static</a></li><li><a href="#method.type_for_static_with_diagnostics" title="type_for_static_with_diagnostics">type_for_static_with_diagnostics</a></li><li><a href="#method.type_for_type_alias_with_diagnostics" title="type_for_type_alias_with_diagnostics">type_for_type_alias_with_diagnostics</a></li><li><a href="#method.value_ty" title="value_ty">value_ty</a></li><li><a href="#method.variances_of" title="variances_of">variances_of</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In hir::db</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">hir</a>::<wbr><a href="index.html">db</a></div><h1>Trait <span class="trait">HirDatabase</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub trait HirDatabase: SourceDatabase + 'static { |
| <details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 40 methods</span></summary> // Required method |
| fn <a href="#tymethod.as_dyn" class="fn">as_dyn</a>(&self) -> &(dyn <a class="trait" href="trait.HirDatabase.html" title="trait hir::db::HirDatabase">HirDatabase</a> + 'static); |
| |
| // Provided methods |
| fn <a href="#method.mir_body" class="fn">mir_body</a><'db>( |
| &'db self, |
| def: InferBodyId<'db>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.mir_body_for_closure" class="fn">mir_body_for_closure</a><'db>( |
| &'db self, |
| def: InternedClosureId<'db>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.monomorphized_mir_body" class="fn">monomorphized_mir_body</a><'db>( |
| &'db self, |
| def: InferBodyId<'db>, |
| subst: StoredGenericArgs, |
| env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.monomorphized_mir_body_for_closure" class="fn">monomorphized_mir_body_for_closure</a><'db>( |
| &'db self, |
| def: InternedClosureId<'db>, |
| subst: StoredGenericArgs, |
| env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.const_eval" class="fn">const_eval</a><'db>( |
| &'db self, |
| def: ConstId, |
| subst: GenericArgs<'db>, |
| trait_env: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><ParamEnvAndCrate<'db>>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Allocation<'db>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.anon_const_eval" class="fn">anon_const_eval</a><'db>( |
| &'db self, |
| def: AnonConstId<'db>, |
| subst: GenericArgs<'db>, |
| trait_env: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><ParamEnvAndCrate<'db>>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Allocation<'db>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.const_eval_static" class="fn">const_eval_static</a><'db>( |
| &'db self, |
| def: StaticId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Allocation<'db>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.const_eval_discriminant" class="fn">const_eval_discriminant</a><'db>( |
| &'db self, |
| def: EnumVariantId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.i128.html">i128</a>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.lookup_impl_method" class="fn">lookup_impl_method</a><'db>( |
| &'db self, |
| env: ParamEnvAndCrate<'db>, |
| func: FunctionId, |
| fn_subst: GenericArgs<'db>, |
| ) -> (<a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a><FunctionId, (BuiltinDeriveImplId, BuiltinDeriveImplMethod)>, GenericArgs<'db>) { ... } |
| <span class="item-spacer"></span> fn <a href="#method.layout_of_adt" class="fn">layout_of_adt</a>( |
| &self, |
| def: AdtId, |
| args: StoredGenericArgs, |
| trait_env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Arc<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, <a class="enum" href="../enum.LayoutError.html" title="enum hir::LayoutError">LayoutError</a>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.layout_of_ty" class="fn">layout_of_ty</a>( |
| &self, |
| ty: StoredTy, |
| env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Arc<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, <a class="enum" href="../enum.LayoutError.html" title="enum hir::LayoutError">LayoutError</a>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.target_data_layout" class="fn">target_data_layout</a>( |
| &self, |
| krate: Crate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&TargetDataLayout, TargetLoadError> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.target_data_layout_or_default" class="fn">target_data_layout_or_default</a>(&self, krate: Crate) -> &TargetDataLayout { ... } |
| <span class="item-spacer"></span> fn <a href="#method.dyn_compatibility_of_trait" class="fn">dyn_compatibility_of_trait</a>( |
| &self, |
| trait_: <a class="struct" href="../struct.TraitId.html" title="struct hir::TraitId">TraitId</a>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../enum.DynCompatibilityViolation.html" title="enum hir::DynCompatibilityViolation">DynCompatibilityViolation</a>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.ty" class="fn">ty</a><'db>(&'db self, def: TyDefId) -> EarlyBinder<DbInterner<'db>, Ty<'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_for_type_alias_with_diagnostics" class="fn">type_for_type_alias_with_diagnostics</a><'db>( |
| &'db self, |
| def: TypeAliasId, |
| ) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredTy>>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.value_ty" class="fn">value_ty</a><'db>( |
| &'db self, |
| def: ValueTyDefId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><EarlyBinder<DbInterner<'db>, Ty<'db>>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_for_const" class="fn">type_for_const</a><'db>( |
| &'db self, |
| def: ConstId, |
| ) -> EarlyBinder<DbInterner<'db>, Ty<'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_for_const_with_diagnostics" class="fn">type_for_const_with_diagnostics</a><'db>( |
| &'db self, |
| def: ConstId, |
| ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_for_static" class="fn">type_for_static</a><'db>( |
| &'db self, |
| def: StaticId, |
| ) -> EarlyBinder<DbInterner<'db>, Ty<'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_for_static_with_diagnostics" class="fn">type_for_static_with_diagnostics</a><'db>( |
| &'db self, |
| def: StaticId, |
| ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.impl_self_ty_with_diagnostics" class="fn">impl_self_ty_with_diagnostics</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.impl_self_ty" class="fn">impl_self_ty</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> EarlyBinder<DbInterner<'db>, Ty<'db>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.const_param_types_with_diagnostics" class="fn">const_param_types_with_diagnostics</a><'db>( |
| &'db self, |
| def: GenericDefId, |
| ) -> &'db TyLoweringResult<'db, ConstParamTypes> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.const_param_types" class="fn">const_param_types</a>(&self, def: GenericDefId) -> &ConstParamTypes { ... } |
| <span class="item-spacer"></span> fn <a href="#method.const_param_ty" class="fn">const_param_ty</a><'db>(&'db self, def: ConstParamId) -> Ty<'db> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.impl_trait_with_diagnostics" class="fn">impl_trait_with_diagnostics</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> &'db <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TyLoweringResult<'db, StoredEarlyBinder<StoredTraitRef>>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.impl_trait" class="fn">impl_trait</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><EarlyBinder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.field_types_with_diagnostics" class="fn">field_types_with_diagnostics</a><'db>( |
| &'db self, |
| var: <a class="enum" href="../diagnostics/enum.VariantId.html" title="enum hir::diagnostics::VariantId">VariantId</a>, |
| ) -> &'db TyLoweringResult<'db, FieldTypes> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.field_types" class="fn">field_types</a>( |
| &self, |
| var: <a class="enum" href="../diagnostics/enum.VariantId.html" title="enum hir::diagnostics::VariantId">VariantId</a>, |
| ) -> &ArenaMap<Idx<FieldData>, FieldType> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.callable_item_signature" class="fn">callable_item_signature</a><'db>( |
| &'db self, |
| def: CallableDefId, |
| ) -> EarlyBinder<DbInterner<'db>, Binder<DbInterner<'db>, FnSig<DbInterner<'db>>>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.fn_sig_for_fn_with_diagnostics" class="fn">fn_sig_for_fn_with_diagnostics</a><'db>( |
| &'db self, |
| def: FunctionId, |
| ) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredPolyFnSig>>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.trait_environment" class="fn">trait_environment</a><'db>(&'db self, def: GenericDefId) -> ParamEnv<'db> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.generic_defaults_with_diagnostics" class="fn">generic_defaults_with_diagnostics</a><'db>( |
| &'db self, |
| def: GenericDefId, |
| ) -> &'db TyLoweringResult<'db, GenericDefaults> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.generic_defaults" class="fn">generic_defaults</a>(&self, def: GenericDefId) -> GenericDefaultsRef<'_> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_alias_bounds_with_diagnostics" class="fn">type_alias_bounds_with_diagnostics</a><'db>( |
| &'db self, |
| type_alias: TypeAliasId, |
| ) -> &'db TyLoweringResult<'db, TypeAliasBounds<StoredEarlyBinder<StoredClauses>>> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_alias_bounds" class="fn">type_alias_bounds</a><'db>( |
| &'db self, |
| type_alias: TypeAliasId, |
| ) -> EarlyBinder<DbInterner<'db>, &'db [Clause<'db>]> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.type_alias_self_bounds" class="fn">type_alias_self_bounds</a><'db>( |
| &'db self, |
| type_alias: TypeAliasId, |
| ) -> EarlyBinder<DbInterner<'db>, &'db [Clause<'db>]> { ... } |
| <span class="item-spacer"></span> fn <a href="#method.variances_of" class="fn">variances_of</a><'db>(&'db self, def: GenericDefId) -> VariancesOf<'db> { ... } |
| </details>}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.as_dyn" class="method"><h4 class="code-header">fn <a href="#tymethod.as_dyn" class="fn">as_dyn</a>(&self) -> &(dyn <a class="trait" href="trait.HirDatabase.html" title="trait hir::db::HirDatabase">HirDatabase</a> + 'static)</h4></section></summary><div class="docblock"><p>Manual implementation of upcasting from <code>dyn SourceDatabase</code> to <code>dyn HirDatabase</code>.</p> |
| <p>This function is needed because Rust can’t perform this upcasting automatically |
| in the general case, as <code>Self</code> could be unsized.</p> |
| </div></details></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><section id="method.mir_body" class="method"><h4 class="code-header">fn <a href="#method.mir_body" class="fn">mir_body</a><'db>( |
| &'db self, |
| def: InferBodyId<'db>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>></h4></section><section id="method.mir_body_for_closure" class="method"><h4 class="code-header">fn <a href="#method.mir_body_for_closure" class="fn">mir_body_for_closure</a><'db>( |
| &'db self, |
| def: InternedClosureId<'db>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>></h4></section><section id="method.monomorphized_mir_body" class="method"><h4 class="code-header">fn <a href="#method.monomorphized_mir_body" class="fn">monomorphized_mir_body</a><'db>( |
| &'db self, |
| def: InferBodyId<'db>, |
| subst: StoredGenericArgs, |
| env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>></h4></section><section id="method.monomorphized_mir_body_for_closure" class="method"><h4 class="code-header">fn <a href="#method.monomorphized_mir_body_for_closure" class="fn">monomorphized_mir_body_for_closure</a><'db>( |
| &'db self, |
| def: InternedClosureId<'db>, |
| subst: StoredGenericArgs, |
| env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&'db <a class="struct" href="../mir/struct.MirBody.html" title="struct hir::mir::MirBody">MirBody</a><'db>, <a class="enum" href="../enum.MirLowerError.html" title="enum hir::MirLowerError">MirLowerError</a><'db>></h4></section><section id="method.const_eval" class="method"><h4 class="code-header">fn <a href="#method.const_eval" class="fn">const_eval</a><'db>( |
| &'db self, |
| def: ConstId, |
| subst: GenericArgs<'db>, |
| trait_env: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><ParamEnvAndCrate<'db>>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Allocation<'db>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>></h4></section><section id="method.anon_const_eval" class="method"><h4 class="code-header">fn <a href="#method.anon_const_eval" class="fn">anon_const_eval</a><'db>( |
| &'db self, |
| def: AnonConstId<'db>, |
| subst: GenericArgs<'db>, |
| trait_env: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><ParamEnvAndCrate<'db>>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Allocation<'db>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>></h4></section><section id="method.const_eval_static" class="method"><h4 class="code-header">fn <a href="#method.const_eval_static" class="fn">const_eval_static</a><'db>( |
| &'db self, |
| def: StaticId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Allocation<'db>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>></h4></section><section id="method.const_eval_discriminant" class="method"><h4 class="code-header">fn <a href="#method.const_eval_discriminant" class="fn">const_eval_discriminant</a><'db>( |
| &'db self, |
| def: EnumVariantId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.i128.html">i128</a>, <a class="enum" href="../enum.ConstEvalError.html" title="enum hir::ConstEvalError">ConstEvalError</a><'db>></h4></section><section id="method.lookup_impl_method" class="method"><h4 class="code-header">fn <a href="#method.lookup_impl_method" class="fn">lookup_impl_method</a><'db>( |
| &'db self, |
| env: ParamEnvAndCrate<'db>, |
| func: FunctionId, |
| fn_subst: GenericArgs<'db>, |
| ) -> (<a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a><FunctionId, (BuiltinDeriveImplId, BuiltinDeriveImplMethod)>, GenericArgs<'db>)</h4></section><section id="method.layout_of_adt" class="method"><h4 class="code-header">fn <a href="#method.layout_of_adt" class="fn">layout_of_adt</a>( |
| &self, |
| def: AdtId, |
| args: StoredGenericArgs, |
| trait_env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Arc<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, <a class="enum" href="../enum.LayoutError.html" title="enum hir::LayoutError">LayoutError</a>></h4></section><section id="method.layout_of_ty" class="method"><h4 class="code-header">fn <a href="#method.layout_of_ty" class="fn">layout_of_ty</a>( |
| &self, |
| ty: StoredTy, |
| env: StoredParamEnvAndCrate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Arc<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, <a class="enum" href="../enum.LayoutError.html" title="enum hir::LayoutError">LayoutError</a>></h4></section><section id="method.target_data_layout" class="method"><h4 class="code-header">fn <a href="#method.target_data_layout" class="fn">target_data_layout</a>( |
| &self, |
| krate: Crate, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><&TargetDataLayout, TargetLoadError></h4></section><section id="method.target_data_layout_or_default" class="method"><h4 class="code-header">fn <a href="#method.target_data_layout_or_default" class="fn">target_data_layout_or_default</a>(&self, krate: Crate) -> &TargetDataLayout</h4></section><section id="method.dyn_compatibility_of_trait" class="method"><h4 class="code-header">fn <a href="#method.dyn_compatibility_of_trait" class="fn">dyn_compatibility_of_trait</a>( |
| &self, |
| trait_: <a class="struct" href="../struct.TraitId.html" title="struct hir::TraitId">TraitId</a>, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="../enum.DynCompatibilityViolation.html" title="enum hir::DynCompatibilityViolation">DynCompatibilityViolation</a>></h4></section><section id="method.ty" class="method"><h4 class="code-header">fn <a href="#method.ty" class="fn">ty</a><'db>(&'db self, def: TyDefId) -> EarlyBinder<DbInterner<'db>, Ty<'db>></h4></section><section id="method.type_for_type_alias_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.type_for_type_alias_with_diagnostics" class="fn">type_for_type_alias_with_diagnostics</a><'db>( |
| &'db self, |
| def: TypeAliasId, |
| ) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredTy>>></h4></section><details class="toggle method-toggle" open><summary><section id="method.value_ty" class="method"><h4 class="code-header">fn <a href="#method.value_ty" class="fn">value_ty</a><'db>( |
| &'db self, |
| def: ValueTyDefId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><EarlyBinder<DbInterner<'db>, Ty<'db>>></h4></section></summary><div class="docblock"><p>Returns the type of the value of the given constant, or <code>None</code> if the <code>ValueTyDefId</code> is |
| a <code>StructId</code> or <code>EnumVariantId</code> with a record constructor.</p> |
| </div></details><section id="method.type_for_const" class="method"><h4 class="code-header">fn <a href="#method.type_for_const" class="fn">type_for_const</a><'db>( |
| &'db self, |
| def: ConstId, |
| ) -> EarlyBinder<DbInterner<'db>, Ty<'db>></h4></section><section id="method.type_for_const_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.type_for_const_with_diagnostics" class="fn">type_for_const_with_diagnostics</a><'db>( |
| &'db self, |
| def: ConstId, |
| ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>></h4></section><section id="method.type_for_static" class="method"><h4 class="code-header">fn <a href="#method.type_for_static" class="fn">type_for_static</a><'db>( |
| &'db self, |
| def: StaticId, |
| ) -> EarlyBinder<DbInterner<'db>, Ty<'db>></h4></section><section id="method.type_for_static_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.type_for_static_with_diagnostics" class="fn">type_for_static_with_diagnostics</a><'db>( |
| &'db self, |
| def: StaticId, |
| ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>></h4></section><section id="method.impl_self_ty_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.impl_self_ty_with_diagnostics" class="fn">impl_self_ty_with_diagnostics</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>></h4></section><section id="method.impl_self_ty" class="method"><h4 class="code-header">fn <a href="#method.impl_self_ty" class="fn">impl_self_ty</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> EarlyBinder<DbInterner<'db>, Ty<'db>></h4></section><section id="method.const_param_types_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.const_param_types_with_diagnostics" class="fn">const_param_types_with_diagnostics</a><'db>( |
| &'db self, |
| def: GenericDefId, |
| ) -> &'db TyLoweringResult<'db, ConstParamTypes></h4></section><section id="method.const_param_types" class="method"><h4 class="code-header">fn <a href="#method.const_param_types" class="fn">const_param_types</a>(&self, def: GenericDefId) -> &ConstParamTypes</h4></section><section id="method.const_param_ty" class="method"><h4 class="code-header">fn <a href="#method.const_param_ty" class="fn">const_param_ty</a><'db>(&'db self, def: ConstParamId) -> Ty<'db></h4></section><section id="method.impl_trait_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.impl_trait_with_diagnostics" class="fn">impl_trait_with_diagnostics</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> &'db <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TyLoweringResult<'db, StoredEarlyBinder<StoredTraitRef>>></h4></section><section id="method.impl_trait" class="method"><h4 class="code-header">fn <a href="#method.impl_trait" class="fn">impl_trait</a><'db>( |
| &'db self, |
| def: ImplId, |
| ) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><EarlyBinder<DbInterner<'db>, TraitRef<DbInterner<'db>>>></h4></section><section id="method.field_types_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.field_types_with_diagnostics" class="fn">field_types_with_diagnostics</a><'db>( |
| &'db self, |
| var: <a class="enum" href="../diagnostics/enum.VariantId.html" title="enum hir::diagnostics::VariantId">VariantId</a>, |
| ) -> &'db TyLoweringResult<'db, FieldTypes></h4></section><section id="method.field_types" class="method"><h4 class="code-header">fn <a href="#method.field_types" class="fn">field_types</a>(&self, var: <a class="enum" href="../diagnostics/enum.VariantId.html" title="enum hir::diagnostics::VariantId">VariantId</a>) -> &ArenaMap<Idx<FieldData>, FieldType></h4></section><section id="method.callable_item_signature" class="method"><h4 class="code-header">fn <a href="#method.callable_item_signature" class="fn">callable_item_signature</a><'db>( |
| &'db self, |
| def: CallableDefId, |
| ) -> EarlyBinder<DbInterner<'db>, Binder<DbInterner<'db>, FnSig<DbInterner<'db>>>></h4></section><section id="method.fn_sig_for_fn_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.fn_sig_for_fn_with_diagnostics" class="fn">fn_sig_for_fn_with_diagnostics</a><'db>( |
| &'db self, |
| def: FunctionId, |
| ) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredPolyFnSig>>></h4></section><section id="method.trait_environment" class="method"><h4 class="code-header">fn <a href="#method.trait_environment" class="fn">trait_environment</a><'db>(&'db self, def: GenericDefId) -> ParamEnv<'db></h4></section><section id="method.generic_defaults_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.generic_defaults_with_diagnostics" class="fn">generic_defaults_with_diagnostics</a><'db>( |
| &'db self, |
| def: GenericDefId, |
| ) -> &'db TyLoweringResult<'db, GenericDefaults></h4></section><details class="toggle method-toggle" open><summary><section id="method.generic_defaults" class="method"><h4 class="code-header">fn <a href="#method.generic_defaults" class="fn">generic_defaults</a>(&self, def: GenericDefId) -> GenericDefaultsRef<'_></h4></section></summary><div class="docblock"><p>This returns an empty list if no parameter has default.</p> |
| <p>The binders of the returned defaults are only up to (not including) this parameter.</p> |
| </div></details><section id="method.type_alias_bounds_with_diagnostics" class="method"><h4 class="code-header">fn <a href="#method.type_alias_bounds_with_diagnostics" class="fn">type_alias_bounds_with_diagnostics</a><'db>( |
| &'db self, |
| type_alias: TypeAliasId, |
| ) -> &'db TyLoweringResult<'db, TypeAliasBounds<StoredEarlyBinder<StoredClauses>>></h4></section><section id="method.type_alias_bounds" class="method"><h4 class="code-header">fn <a href="#method.type_alias_bounds" class="fn">type_alias_bounds</a><'db>( |
| &'db self, |
| type_alias: TypeAliasId, |
| ) -> EarlyBinder<DbInterner<'db>, &'db [Clause<'db>]></h4></section><section id="method.type_alias_self_bounds" class="method"><h4 class="code-header">fn <a href="#method.type_alias_self_bounds" class="fn">type_alias_self_bounds</a><'db>( |
| &'db self, |
| type_alias: TypeAliasId, |
| ) -> EarlyBinder<DbInterner<'db>, &'db [Clause<'db>]></h4></section><section id="method.variances_of" class="method"><h4 class="code-header">fn <a href="#method.variances_of" class="fn">variances_of</a><'db>(&'db self, def: GenericDefId) -> VariancesOf<'db></h4></section></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait <b>is</b> <a href="https://doc.rust-lang.org/1.98.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety".</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><div class="negative-marker"></div><section id="impl-HirDatabase-for-T" class="impl"><a href="#impl-HirDatabase-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.HirDatabase.html" title="trait hir::db::HirDatabase">HirDatabase</a> for T<div class="where">where |
| T: SourceDatabase,</div></h3></section></div><script src="../../trait.impl/hir_ty/db/trait.HirDatabase.js" async></script></section></div></main></body></html> |