Skip to main content

HirDatabase

Trait HirDatabase 

Source
pub trait HirDatabase: SourceDatabase + 'static {
Show 39 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 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, 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, ArenaMap<LocalTypeOrConstParamId, StoredTy>> { ... } fn const_param_types( &self, def: GenericDefId, ) -> &ArenaMap<LocalTypeOrConstParamId, StoredTy> { ... } 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, ArenaMap<LocalFieldId, FieldType>> { ... } fn field_types(&self, var: VariantId) -> &ArenaMap<LocalFieldId, FieldType> { ... } fn callable_item_signature<'db>( &'db self, def: CallableDefId, ) -> EarlyBinder<'db, PolyFnSig<'db>> { ... } fn callable_item_signature_with_diagnostics<'db>( &'db self, def: CallableDefId, ) -> &'db TyLoweringResult<'db, 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§

Source

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§

Source

fn mir_body<'db>( &'db self, def: InferBodyId<'db>, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>

Source

fn mir_body_for_closure<'db>( &'db self, def: InternedClosureId<'db>, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>

Source

fn monomorphized_mir_body<'db>( &'db self, def: InferBodyId<'db>, subst: StoredGenericArgs, env: StoredParamEnvAndCrate, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>

Source

fn monomorphized_mir_body_for_closure<'db>( &'db self, def: InternedClosureId<'db>, subst: StoredGenericArgs, env: StoredParamEnvAndCrate, ) -> Result<&'db MirBody<'db>, MirLowerError<'db>>

Source

fn const_eval<'db>( &'db self, def: ConstId, subst: GenericArgs<'db>, trait_env: Option<ParamEnvAndCrate<'db>>, ) -> Result<Allocation<'db>, ConstEvalError<'db>>

Source

fn anon_const_eval<'db>( &'db self, def: AnonConstId<'db>, subst: GenericArgs<'db>, trait_env: Option<ParamEnvAndCrate<'db>>, ) -> Result<Allocation<'db>, ConstEvalError<'db>>

Source

fn const_eval_static<'db>( &'db self, def: StaticId, ) -> Result<Allocation<'db>, ConstEvalError<'db>>

Source

fn const_eval_discriminant<'db>( &'db self, def: EnumVariantId, ) -> Result<i128, ConstEvalError<'db>>

Source

fn lookup_impl_method<'db>( &'db self, env: ParamEnvAndCrate<'db>, func: FunctionId, fn_subst: GenericArgs<'db>, ) -> (Either<FunctionId, (BuiltinDeriveImplId, BuiltinDeriveImplMethod)>, GenericArgs<'db>)

Source

fn layout_of_adt( &self, def: AdtId, args: StoredGenericArgs, trait_env: StoredParamEnvAndCrate, ) -> Result<Arc<Layout>, LayoutError>

Source

fn layout_of_ty( &self, ty: StoredTy, env: StoredParamEnvAndCrate, ) -> Result<Arc<Layout>, LayoutError>

Source

fn target_data_layout( &self, krate: Crate, ) -> Result<&TargetDataLayout, TargetLoadError>

Source

fn dyn_compatibility_of_trait( &self, trait_: TraitId, ) -> Option<DynCompatibilityViolation>

Source

fn ty<'db>(&'db self, def: TyDefId) -> EarlyBinder<'db, Ty<'db>>

Source

fn type_for_type_alias_with_diagnostics<'db>( &'db self, def: TypeAliasId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>>

Source

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.

Source

fn type_for_const<'db>(&'db self, def: ConstId) -> EarlyBinder<'db, Ty<'db>>

Source

fn type_for_const_with_diagnostics<'db>( &'db self, def: ConstId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>>

Source

fn type_for_static<'db>(&'db self, def: StaticId) -> EarlyBinder<'db, Ty<'db>>

Source

fn type_for_static_with_diagnostics<'db>( &'db self, def: StaticId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>>

Source

fn impl_self_ty_with_diagnostics<'db>( &'db self, def: ImplId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredTy>>

Source

fn impl_self_ty<'db>(&'db self, def: ImplId) -> EarlyBinder<'db, Ty<'db>>

Source

fn const_param_types_with_diagnostics<'db>( &'db self, def: GenericDefId, ) -> &'db TyLoweringResult<'db, ArenaMap<LocalTypeOrConstParamId, StoredTy>>

Source

fn const_param_types( &self, def: GenericDefId, ) -> &ArenaMap<LocalTypeOrConstParamId, StoredTy>

Source

fn const_param_ty<'db>(&'db self, def: ConstParamId) -> Ty<'db>

Source

fn impl_trait_with_diagnostics<'db>( &'db self, def: ImplId, ) -> &'db Option<TyLoweringResult<'db, StoredEarlyBinder<StoredTraitRef>>>

Source

fn impl_trait<'db>( &'db self, def: ImplId, ) -> Option<EarlyBinder<'db, TraitRef<'db>>>

Source

fn field_types_with_diagnostics<'db>( &'db self, var: VariantId, ) -> &'db TyLoweringResult<'db, ArenaMap<LocalFieldId, FieldType>>

Source

fn field_types(&self, var: VariantId) -> &ArenaMap<LocalFieldId, FieldType>

Source

fn callable_item_signature<'db>( &'db self, def: CallableDefId, ) -> EarlyBinder<'db, PolyFnSig<'db>>

Source

fn callable_item_signature_with_diagnostics<'db>( &'db self, def: CallableDefId, ) -> &'db TyLoweringResult<'db, StoredEarlyBinder<StoredPolyFnSig>>

Source

fn trait_environment<'db>(&'db self, def: GenericDefId) -> ParamEnv<'db>

Source

fn generic_defaults_with_diagnostics<'db>( &'db self, def: GenericDefId, ) -> &'db TyLoweringResult<'db, GenericDefaults>

Source

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.

Source

fn type_alias_bounds_with_diagnostics<'db>( &'db self, type_alias: TypeAliasId, ) -> &'db TyLoweringResult<'db, TypeAliasBounds<StoredEarlyBinder<StoredClauses>>>

Source

fn type_alias_bounds<'db>( &'db self, type_alias: TypeAliasId, ) -> EarlyBinder<'db, &'db [Clause<'db>]>

Source

fn type_alias_self_bounds<'db>( &'db self, type_alias: TypeAliasId, ) -> EarlyBinder<'db, &'db [Clause<'db>]>

Source

fn variances_of<'db>(&'db self, def: GenericDefId) -> VariancesOf<'db>

Implementors§

Source§

impl<T: SourceDatabase> HirDatabase for T