Skip to main content

HirDatabase

Trait HirDatabase 

pub trait HirDatabase: SourceDatabase + 'static {
Show 39 methods // Required method fn as_dyn(&self) -> &(dyn HirDatabase + 'static); // 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<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, LayoutError> { ... } fn layout_of_ty( &self, ty: StoredTy, env: StoredParamEnvAndCrate, ) -> Result<Arc<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, 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<DbInterner<'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<DbInterner<'db>, Ty<'db>>> { ... } fn type_for_const<'db>( &'db self, def: ConstId, ) -> EarlyBinder<DbInterner<'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<DbInterner<'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<DbInterner<'db>, Ty<'db>> { ... } fn const_param_types_with_diagnostics<'db>( &'db self, def: GenericDefId, ) -> &'db TyLoweringResult<'db, ArenaMap<Idx<TypeOrConstParamData>, StoredTy>> { ... } fn const_param_types( &self, def: GenericDefId, ) -> &ArenaMap<Idx<TypeOrConstParamData>, 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<DbInterner<'db>, TraitRef<DbInterner<'db>>>> { ... } fn field_types_with_diagnostics<'db>( &'db self, var: VariantId, ) -> &'db TyLoweringResult<'db, ArenaMap<Idx<FieldData>, FieldType>> { ... } fn field_types( &self, var: VariantId, ) -> &ArenaMap<Idx<FieldData>, FieldType> { ... } fn callable_item_signature<'db>( &'db self, def: CallableDefId, ) -> EarlyBinder<DbInterner<'db>, Binder<DbInterner<'db>, FnSig<DbInterner<'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<DbInterner<'db>, &'db [Clause<'db>]> { ... } fn type_alias_self_bounds<'db>( &'db self, type_alias: TypeAliasId, ) -> EarlyBinder<DbInterner<'db>, &'db [Clause<'db>]> { ... } fn variances_of<'db>(&'db self, def: GenericDefId) -> VariancesOf<'db> { ... }
}

Required Methods§

fn as_dyn(&self) -> &(dyn HirDatabase + 'static)

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<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, LayoutError>

fn layout_of_ty( &self, ty: StoredTy, env: StoredParamEnvAndCrate, ) -> Result<Arc<LayoutData<RustcFieldIdx, RustcEnumVariantIdx>>, 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<DbInterner<'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<DbInterner<'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<DbInterner<'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<DbInterner<'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<DbInterner<'db>, Ty<'db>>

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

fn const_param_types( &self, def: GenericDefId, ) -> &ArenaMap<Idx<TypeOrConstParamData>, 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<DbInterner<'db>, TraitRef<DbInterner<'db>>>>

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

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

fn callable_item_signature<'db>( &'db self, def: CallableDefId, ) -> EarlyBinder<DbInterner<'db>, Binder<DbInterner<'db>, FnSig<DbInterner<'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<'_>

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<DbInterner<'db>, &'db [Clause<'db>]>

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

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

Implementors§

§

impl<T> HirDatabase for T
where T: SourceDatabase,