pub trait HirDatabase: SourceDatabase + 'static {
Show 40 methods
// Required method
fn as_dyn(&self) -> &dyn HirDatabase;
// Provided methods
fn mir_body<'db>(
&'db self,
def: InferBodyId<'db>,
) -> Result<&'db MirBody<'db>, MirLowerError<'db>> { ... }
fn mir_body_for_closure<'db>(
&'db self,
def: InternedClosureId<'db>,
) -> Result<&'db MirBody<'db>, MirLowerError<'db>> { ... }
fn monomorphized_mir_body<'db>(
&'db self,
def: InferBodyId<'db>,
subst: StoredGenericArgs,
env: StoredParamEnvAndCrate,
) -> Result<&'db MirBody<'db>, MirLowerError<'db>> { ... }
fn monomorphized_mir_body_for_closure<'db>(
&'db self,
def: InternedClosureId<'db>,
subst: StoredGenericArgs,
env: StoredParamEnvAndCrate,
) -> Result<&'db MirBody<'db>, MirLowerError<'db>> { ... }
fn const_eval<'db>(
&'db self,
def: ConstId,
subst: GenericArgs<'db>,
trait_env: Option<ParamEnvAndCrate<'db>>,
) -> Result<Allocation<'db>, ConstEvalError<'db>> { ... }
fn anon_const_eval<'db>(
&'db self,
def: AnonConstId<'db>,
subst: GenericArgs<'db>,
trait_env: Option<ParamEnvAndCrate<'db>>,
) -> Result<Allocation<'db>, ConstEvalError<'db>> { ... }
fn const_eval_static<'db>(
&'db self,
def: StaticId,
) -> Result<Allocation<'db>, ConstEvalError<'db>> { ... }
fn const_eval_discriminant<'db>(
&'db self,
def: EnumVariantId,
) -> Result<i128, ConstEvalError<'db>> { ... }
fn lookup_impl_method<'db>(
&'db self,
env: ParamEnvAndCrate<'db>,
func: FunctionId,
fn_subst: GenericArgs<'db>,
) -> (Either<FunctionId, (BuiltinDeriveImplId, BuiltinDeriveImplMethod)>, GenericArgs<'db>) { ... }
fn layout_of_adt(
&self,
def: AdtId,
args: StoredGenericArgs,
trait_env: StoredParamEnvAndCrate,
) -> Result<Arc<Layout>, LayoutError> { ... }
fn layout_of_ty(
&self,
ty: StoredTy,
env: StoredParamEnvAndCrate,
) -> Result<Arc<Layout>, LayoutError> { ... }
fn target_data_layout(
&self,
krate: Crate,
) -> Result<&TargetDataLayout, TargetLoadError> { ... }
fn target_data_layout_or_default(&self, krate: Crate) -> &TargetDataLayout { ... }
fn dyn_compatibility_of_trait(
&self,
trait_: TraitId,
) -> Option<DynCompatibilityViolation> { ... }
fn ty<'db>(&'db self, def: TyDefId) -> EarlyBinder<'db, Ty<'db>> { ... }
fn type_for_type_alias_with_diagnostics<'db>(
&'db self,
def: TypeAliasId,
) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredTy>>> { ... }
fn value_ty<'db>(
&'db self,
def: ValueTyDefId,
) -> Option<EarlyBinder<'db, Ty<'db>>> { ... }
fn type_for_const<'db>(&'db self, def: ConstId) -> EarlyBinder<'db, Ty<'db>> { ... }
fn type_for_const_with_diagnostics<'db>(
&'db self,
def: ConstId,
) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>> { ... }
fn type_for_static<'db>(
&'db self,
def: StaticId,
) -> EarlyBinder<'db, Ty<'db>> { ... }
fn type_for_static_with_diagnostics<'db>(
&'db self,
def: StaticId,
) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>> { ... }
fn impl_self_ty_with_diagnostics<'db>(
&'db self,
def: ImplId,
) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>> { ... }
fn impl_self_ty<'db>(&'db self, def: ImplId) -> EarlyBinder<'db, Ty<'db>> { ... }
fn const_param_types_with_diagnostics<'db>(
&'db self,
def: GenericDefId,
) -> &'db TyLoweringResult<'db, ConstParamTypes> { ... }
fn const_param_types(&self, def: GenericDefId) -> &ConstParamTypes { ... }
fn const_param_ty<'db>(&'db self, def: ConstParamId) -> Ty<'db> { ... }
fn impl_trait_with_diagnostics<'db>(
&'db self,
def: ImplId,
) -> &'db Option<TyLoweringResult<'db, StoredEarlyBinder<StoredTraitRef>>> { ... }
fn impl_trait<'db>(
&'db self,
def: ImplId,
) -> Option<EarlyBinder<'db, TraitRef<'db>>> { ... }
fn field_types_with_diagnostics<'db>(
&'db self,
var: VariantId,
) -> &'db TyLoweringResult<'db, FieldTypes> { ... }
fn field_types(&self, var: VariantId) -> &ArenaMap<LocalFieldId, FieldType> { ... }
fn callable_item_signature<'db>(
&'db self,
def: CallableDefId,
) -> EarlyBinder<'db, PolyFnSig<'db>> { ... }
fn fn_sig_for_fn_with_diagnostics<'db>(
&'db self,
def: FunctionId,
) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredPolyFnSig>>> { ... }
fn trait_environment<'db>(&'db self, def: GenericDefId) -> ParamEnv<'db> { ... }
fn generic_defaults_with_diagnostics<'db>(
&'db self,
def: GenericDefId,
) -> &'db TyLoweringResult<'db, GenericDefaults> { ... }
fn generic_defaults(&self, def: GenericDefId) -> GenericDefaultsRef<'_> { ... }
fn type_alias_bounds_with_diagnostics<'db>(
&'db self,
type_alias: TypeAliasId,
) -> &'db TyLoweringResult<'db, TypeAliasBounds<StoredEarlyBinder<StoredClauses>>> { ... }
fn type_alias_bounds<'db>(
&'db self,
type_alias: TypeAliasId,
) -> EarlyBinder<'db, &'db [Clause<'db>]> { ... }
fn type_alias_self_bounds<'db>(
&'db self,
type_alias: TypeAliasId,
) -> EarlyBinder<'db, &'db [Clause<'db>]> { ... }
fn variances_of<'db>(&'db self, def: GenericDefId) -> VariancesOf<'db> { ... }
}Required Methods§
Sourcefn as_dyn(&self) -> &dyn HirDatabase
fn as_dyn(&self) -> &dyn HirDatabase
Manual implementation of upcasting from dyn SourceDatabase to dyn HirDatabase.
This function is needed because Rust can’t perform this upcasting automatically
in the general case, as Self could be unsized.
Provided Methods§
fn mir_body<'db>( &'db self, def: InferBodyId<'db>, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>
fn mir_body_for_closure<'db>( &'db self, def: InternedClosureId<'db>, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>
fn monomorphized_mir_body<'db>( &'db self, def: InferBodyId<'db>, subst: StoredGenericArgs, env: StoredParamEnvAndCrate, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>
fn monomorphized_mir_body_for_closure<'db>( &'db self, def: InternedClosureId<'db>, subst: StoredGenericArgs, env: StoredParamEnvAndCrate, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>
fn const_eval<'db>( &'db self, def: ConstId, subst: GenericArgs<'db>, trait_env: Option<ParamEnvAndCrate<'db>>, ) -> Result<Allocation<'db>, ConstEvalError<'db>>
fn anon_const_eval<'db>( &'db self, def: AnonConstId<'db>, subst: GenericArgs<'db>, trait_env: Option<ParamEnvAndCrate<'db>>, ) -> Result<Allocation<'db>, ConstEvalError<'db>>
fn const_eval_static<'db>( &'db self, def: StaticId, ) -> Result<Allocation<'db>, ConstEvalError<'db>>
fn const_eval_discriminant<'db>( &'db self, def: EnumVariantId, ) -> Result<i128, ConstEvalError<'db>>
fn lookup_impl_method<'db>( &'db self, env: ParamEnvAndCrate<'db>, func: FunctionId, fn_subst: GenericArgs<'db>, ) -> (Either<FunctionId, (BuiltinDeriveImplId, BuiltinDeriveImplMethod)>, GenericArgs<'db>)
fn layout_of_adt( &self, def: AdtId, args: StoredGenericArgs, trait_env: StoredParamEnvAndCrate, ) -> Result<Arc<Layout>, LayoutError>
fn layout_of_ty( &self, ty: StoredTy, env: StoredParamEnvAndCrate, ) -> Result<Arc<Layout>, LayoutError>
fn target_data_layout( &self, krate: Crate, ) -> Result<&TargetDataLayout, TargetLoadError>
fn target_data_layout_or_default(&self, krate: Crate) -> &TargetDataLayout
fn dyn_compatibility_of_trait( &self, trait_: TraitId, ) -> Option<DynCompatibilityViolation>
fn ty<'db>(&'db self, def: TyDefId) -> EarlyBinder<'db, Ty<'db>>
fn type_for_type_alias_with_diagnostics<'db>( &'db self, def: TypeAliasId, ) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredTy>>>
Sourcefn value_ty<'db>(
&'db self,
def: ValueTyDefId,
) -> Option<EarlyBinder<'db, Ty<'db>>>
fn value_ty<'db>( &'db self, def: ValueTyDefId, ) -> Option<EarlyBinder<'db, Ty<'db>>>
Returns the type of the value of the given constant, or None if the ValueTyDefId is
a StructId or EnumVariantId with a record constructor.
fn type_for_const<'db>(&'db self, def: ConstId) -> EarlyBinder<'db, Ty<'db>>
fn type_for_const_with_diagnostics<'db>( &'db self, def: ConstId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>>
fn type_for_static<'db>(&'db self, def: StaticId) -> EarlyBinder<'db, Ty<'db>>
fn type_for_static_with_diagnostics<'db>( &'db self, def: StaticId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>>
fn impl_self_ty_with_diagnostics<'db>( &'db self, def: ImplId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>>
fn impl_self_ty<'db>(&'db self, def: ImplId) -> EarlyBinder<'db, Ty<'db>>
fn const_param_types_with_diagnostics<'db>( &'db self, def: GenericDefId, ) -> &'db TyLoweringResult<'db, ConstParamTypes>
fn const_param_types(&self, def: GenericDefId) -> &ConstParamTypes
fn const_param_ty<'db>(&'db self, def: ConstParamId) -> Ty<'db>
fn impl_trait_with_diagnostics<'db>( &'db self, def: ImplId, ) -> &'db Option<TyLoweringResult<'db, StoredEarlyBinder<StoredTraitRef>>>
fn impl_trait<'db>( &'db self, def: ImplId, ) -> Option<EarlyBinder<'db, TraitRef<'db>>>
fn field_types_with_diagnostics<'db>( &'db self, var: VariantId, ) -> &'db TyLoweringResult<'db, FieldTypes>
fn field_types(&self, var: VariantId) -> &ArenaMap<LocalFieldId, FieldType>
fn callable_item_signature<'db>( &'db self, def: CallableDefId, ) -> EarlyBinder<'db, PolyFnSig<'db>>
fn fn_sig_for_fn_with_diagnostics<'db>( &'db self, def: FunctionId, ) -> &'db TyLoweringResult<'db, WithDefinedOpaques<StoredEarlyBinder<StoredPolyFnSig>>>
fn trait_environment<'db>(&'db self, def: GenericDefId) -> ParamEnv<'db>
fn generic_defaults_with_diagnostics<'db>( &'db self, def: GenericDefId, ) -> &'db TyLoweringResult<'db, GenericDefaults>
Sourcefn generic_defaults(&self, def: GenericDefId) -> GenericDefaultsRef<'_>
fn generic_defaults(&self, def: GenericDefId) -> GenericDefaultsRef<'_>
This returns an empty list if no parameter has default.
The binders of the returned defaults are only up to (not including) this parameter.
fn type_alias_bounds_with_diagnostics<'db>( &'db self, type_alias: TypeAliasId, ) -> &'db TyLoweringResult<'db, TypeAliasBounds<StoredEarlyBinder<StoredClauses>>>
fn type_alias_bounds<'db>( &'db self, type_alias: TypeAliasId, ) -> EarlyBinder<'db, &'db [Clause<'db>]>
fn type_alias_self_bounds<'db>( &'db self, type_alias: TypeAliasId, ) -> EarlyBinder<'db, &'db [Clause<'db>]>
fn variances_of<'db>(&'db self, def: GenericDefId) -> VariancesOf<'db>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".