pub trait AnalyzerDb:
Database
+ HasQueryGroup<AnalyzerDbStorage>
+ SourceDb
+ Upcast<dyn SourceDb>
+ UpcastMut<dyn SourceDb> {
Show 93 methods
// Required methods
fn intern_ingot(&self, key0: Rc<Ingot>) -> IngotId;
fn lookup_intern_ingot(&self, key0: IngotId) -> Rc<Ingot>;
fn intern_module(&self, key0: Rc<Module>) -> ModuleId;
fn lookup_intern_module(&self, key0: ModuleId) -> Rc<Module>;
fn intern_module_const(&self, key0: Rc<ModuleConstant>) -> ModuleConstantId;
fn lookup_intern_module_const(
&self,
key0: ModuleConstantId,
) -> Rc<ModuleConstant>;
fn intern_struct(&self, key0: Rc<Struct>) -> StructId;
fn lookup_intern_struct(&self, key0: StructId) -> Rc<Struct>;
fn intern_struct_field(&self, key0: Rc<StructField>) -> StructFieldId;
fn lookup_intern_struct_field(&self, key0: StructFieldId) -> Rc<StructField>;
fn intern_enum(&self, key0: Rc<Enum>) -> EnumId;
fn lookup_intern_enum(&self, key0: EnumId) -> Rc<Enum>;
fn intern_attribute(&self, key0: Rc<Attribute>) -> AttributeId;
fn lookup_intern_attribute(&self, key0: AttributeId) -> Rc<Attribute>;
fn intern_enum_variant(&self, key0: Rc<EnumVariant>) -> EnumVariantId;
fn lookup_intern_enum_variant(&self, key0: EnumVariantId) -> Rc<EnumVariant>;
fn intern_trait(&self, key0: Rc<Trait>) -> TraitId;
fn lookup_intern_trait(&self, key0: TraitId) -> Rc<Trait>;
fn intern_impl(&self, key0: Rc<Impl>) -> ImplId;
fn lookup_intern_impl(&self, key0: ImplId) -> Rc<Impl>;
fn intern_type_alias(&self, key0: Rc<TypeAlias>) -> TypeAliasId;
fn lookup_intern_type_alias(&self, key0: TypeAliasId) -> Rc<TypeAlias>;
fn intern_contract(&self, key0: Rc<Contract>) -> ContractId;
fn lookup_intern_contract(&self, key0: ContractId) -> Rc<Contract>;
fn intern_contract_field(&self, key0: Rc<ContractField>) -> ContractFieldId;
fn lookup_intern_contract_field(
&self,
key0: ContractFieldId,
) -> Rc<ContractField>;
fn intern_function_sig(&self, key0: Rc<FunctionSig>) -> FunctionSigId;
fn lookup_intern_function_sig(&self, key0: FunctionSigId) -> Rc<FunctionSig>;
fn intern_function(&self, key0: Rc<Function>) -> FunctionId;
fn lookup_intern_function(&self, key0: FunctionId) -> Rc<Function>;
fn intern_type(&self, key0: Type) -> TypeId;
fn lookup_intern_type(&self, key0: TypeId) -> Type;
fn ingot_files(&self, key0: IngotId) -> Rc<[SourceFileId]>;
fn set_ingot_files(&mut self, key0: IngotId, value__: Rc<[SourceFileId]>);
fn set_ingot_files_with_durability(
&mut self,
key0: IngotId,
value__: Rc<[SourceFileId]>,
durability__: Durability,
);
fn ingot_external_ingots(
&self,
key0: IngotId,
) -> Rc<IndexMap<SmolStr, IngotId>>;
fn set_ingot_external_ingots(
&mut self,
key0: IngotId,
value__: Rc<IndexMap<SmolStr, IngotId>>,
);
fn set_ingot_external_ingots_with_durability(
&mut self,
key0: IngotId,
value__: Rc<IndexMap<SmolStr, IngotId>>,
durability__: Durability,
);
fn root_ingot(&self) -> IngotId;
fn set_root_ingot(&mut self, value__: IngotId);
fn set_root_ingot_with_durability(
&mut self,
value__: IngotId,
durability__: Durability,
);
fn ingot_modules(&self, key0: IngotId) -> Rc<[ModuleId]>;
fn ingot_root_module(&self, key0: IngotId) -> Option<ModuleId>;
fn module_file_path(&self, key0: ModuleId) -> SmolStr;
fn module_parse(&self, key0: ModuleId) -> Analysis<Rc<Module>>;
fn module_is_incomplete(&self, key0: ModuleId) -> bool;
fn module_all_items(&self, key0: ModuleId) -> Rc<[Item]>;
fn module_all_impls(&self, key0: ModuleId) -> Analysis<Rc<[ImplId]>>;
fn module_item_map(
&self,
key0: ModuleId,
) -> Analysis<Rc<IndexMap<SmolStr, Item>>>;
fn module_impl_map(
&self,
key0: ModuleId,
) -> Analysis<Rc<IndexMap<(TraitId, TypeId), ImplId>>>;
fn module_contracts(&self, key0: ModuleId) -> Rc<[ContractId]>;
fn module_structs(&self, key0: ModuleId) -> Rc<[StructId]>;
fn module_constants(&self, key0: ModuleId) -> Rc<Vec<ModuleConstantId>>;
fn module_used_item_map(
&self,
key0: ModuleId,
) -> Analysis<Rc<IndexMap<SmolStr, (Span, Item)>>>;
fn module_parent_module(&self, key0: ModuleId) -> Option<ModuleId>;
fn module_submodules(&self, key0: ModuleId) -> Rc<[ModuleId]>;
fn module_tests(&self, key0: ModuleId) -> Vec<FunctionId>;
fn module_constant_type(
&self,
key0: ModuleConstantId,
) -> Analysis<Result<TypeId, TypeError>>;
fn module_constant_value(
&self,
key0: ModuleConstantId,
) -> Analysis<Result<Constant, ConstEvalError>>;
fn contract_all_functions(&self, key0: ContractId) -> Rc<[FunctionId]>;
fn contract_function_map(
&self,
key0: ContractId,
) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>;
fn contract_public_function_map(
&self,
key0: ContractId,
) -> Rc<IndexMap<SmolStr, FunctionId>>;
fn contract_init_function(
&self,
key0: ContractId,
) -> Analysis<Option<FunctionId>>;
fn contract_call_function(
&self,
key0: ContractId,
) -> Analysis<Option<FunctionId>>;
fn contract_all_fields(&self, key0: ContractId) -> Rc<[ContractFieldId]>;
fn contract_field_map(
&self,
key0: ContractId,
) -> Analysis<Rc<IndexMap<SmolStr, ContractFieldId>>>;
fn contract_field_type(
&self,
key0: ContractFieldId,
) -> Analysis<Result<TypeId, TypeError>>;
fn contract_dependency_graph(&self, key0: ContractId) -> DepGraphWrapper;
fn contract_runtime_dependency_graph(
&self,
key0: ContractId,
) -> DepGraphWrapper;
fn function_signature(
&self,
key0: FunctionSigId,
) -> Analysis<Rc<FunctionSignature>>;
fn function_body(&self, key0: FunctionId) -> Analysis<Rc<FunctionBody>>;
fn function_dependency_graph(&self, key0: FunctionId) -> DepGraphWrapper;
fn struct_all_fields(&self, key0: StructId) -> Rc<[StructFieldId]>;
fn struct_field_map(
&self,
key0: StructId,
) -> Analysis<Rc<IndexMap<SmolStr, StructFieldId>>>;
fn struct_field_type(
&self,
key0: StructFieldId,
) -> Analysis<Result<TypeId, TypeError>>;
fn struct_all_functions(&self, key0: StructId) -> Rc<[FunctionId]>;
fn struct_function_map(
&self,
key0: StructId,
) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>;
fn struct_dependency_graph(
&self,
key0: StructId,
) -> Analysis<DepGraphWrapper>;
fn enum_all_variants(&self, key0: EnumId) -> Rc<[EnumVariantId]>;
fn enum_variant_map(
&self,
key0: EnumId,
) -> Analysis<Rc<IndexMap<SmolStr, EnumVariantId>>>;
fn enum_all_functions(&self, key0: EnumId) -> Rc<[FunctionId]>;
fn enum_function_map(
&self,
key0: EnumId,
) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>;
fn enum_dependency_graph(&self, key0: EnumId) -> Analysis<DepGraphWrapper>;
fn enum_variant_kind(
&self,
key0: EnumVariantId,
) -> Analysis<Result<EnumVariantKind, TypeError>>;
fn trait_all_functions(&self, key0: TraitId) -> Rc<[FunctionSigId]>;
fn trait_function_map(
&self,
key0: TraitId,
) -> Analysis<Rc<IndexMap<SmolStr, FunctionSigId>>>;
fn trait_is_implemented_for(&self, key0: TraitId, key1: TypeId) -> bool;
fn impl_all_functions(&self, key0: ImplId) -> Rc<[FunctionId]>;
fn impl_function_map(
&self,
key0: ImplId,
) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>;
fn all_impls(&self, key0: TypeId) -> Rc<[ImplId]>;
fn impl_for(&self, key0: TypeId, key1: TraitId) -> Option<ImplId>;
fn function_sigs(&self, key0: TypeId, key1: SmolStr) -> Rc<[FunctionSigId]>;
fn type_alias_type(
&self,
key0: TypeAliasId,
) -> Analysis<Result<TypeId, TypeError>>;
}
Required Methods§
fn intern_ingot(&self, key0: Rc<Ingot>) -> IngotId
fn lookup_intern_ingot(&self, key0: IngotId) -> Rc<Ingot>
fn intern_module(&self, key0: Rc<Module>) -> ModuleId
fn lookup_intern_module(&self, key0: ModuleId) -> Rc<Module>
fn intern_module_const(&self, key0: Rc<ModuleConstant>) -> ModuleConstantId
fn lookup_intern_module_const( &self, key0: ModuleConstantId, ) -> Rc<ModuleConstant>
fn intern_struct(&self, key0: Rc<Struct>) -> StructId
fn lookup_intern_struct(&self, key0: StructId) -> Rc<Struct>
fn intern_struct_field(&self, key0: Rc<StructField>) -> StructFieldId
fn lookup_intern_struct_field(&self, key0: StructFieldId) -> Rc<StructField>
fn intern_enum(&self, key0: Rc<Enum>) -> EnumId
fn lookup_intern_enum(&self, key0: EnumId) -> Rc<Enum>
fn intern_attribute(&self, key0: Rc<Attribute>) -> AttributeId
fn lookup_intern_attribute(&self, key0: AttributeId) -> Rc<Attribute>
fn intern_enum_variant(&self, key0: Rc<EnumVariant>) -> EnumVariantId
fn lookup_intern_enum_variant(&self, key0: EnumVariantId) -> Rc<EnumVariant>
fn intern_trait(&self, key0: Rc<Trait>) -> TraitId
fn lookup_intern_trait(&self, key0: TraitId) -> Rc<Trait>
fn intern_impl(&self, key0: Rc<Impl>) -> ImplId
fn lookup_intern_impl(&self, key0: ImplId) -> Rc<Impl>
fn intern_type_alias(&self, key0: Rc<TypeAlias>) -> TypeAliasId
fn lookup_intern_type_alias(&self, key0: TypeAliasId) -> Rc<TypeAlias>
fn intern_contract(&self, key0: Rc<Contract>) -> ContractId
fn lookup_intern_contract(&self, key0: ContractId) -> Rc<Contract>
fn intern_contract_field(&self, key0: Rc<ContractField>) -> ContractFieldId
fn lookup_intern_contract_field( &self, key0: ContractFieldId, ) -> Rc<ContractField>
fn intern_function_sig(&self, key0: Rc<FunctionSig>) -> FunctionSigId
fn lookup_intern_function_sig(&self, key0: FunctionSigId) -> Rc<FunctionSig>
fn intern_function(&self, key0: Rc<Function>) -> FunctionId
fn lookup_intern_function(&self, key0: FunctionId) -> Rc<Function>
fn intern_type(&self, key0: Type) -> TypeId
fn lookup_intern_type(&self, key0: TypeId) -> Type
fn ingot_files(&self, key0: IngotId) -> Rc<[SourceFileId]>
Sourcefn set_ingot_files(&mut self, key0: IngotId, value__: Rc<[SourceFileId]>)
fn set_ingot_files(&mut self, key0: IngotId, value__: Rc<[SourceFileId]>)
Set the value of the ingot_files
input.
See ingot_files
for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.
Sourcefn set_ingot_files_with_durability(
&mut self,
key0: IngotId,
value__: Rc<[SourceFileId]>,
durability__: Durability,
)
fn set_ingot_files_with_durability( &mut self, key0: IngotId, value__: Rc<[SourceFileId]>, durability__: Durability, )
Set the value of the ingot_files
input and promise
that its value will never change again.
See ingot_files
for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.
fn ingot_external_ingots(&self, key0: IngotId) -> Rc<IndexMap<SmolStr, IngotId>>
Sourcefn set_ingot_external_ingots(
&mut self,
key0: IngotId,
value__: Rc<IndexMap<SmolStr, IngotId>>,
)
fn set_ingot_external_ingots( &mut self, key0: IngotId, value__: Rc<IndexMap<SmolStr, IngotId>>, )
Set the value of the ingot_external_ingots
input.
See ingot_external_ingots
for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.
Sourcefn set_ingot_external_ingots_with_durability(
&mut self,
key0: IngotId,
value__: Rc<IndexMap<SmolStr, IngotId>>,
durability__: Durability,
)
fn set_ingot_external_ingots_with_durability( &mut self, key0: IngotId, value__: Rc<IndexMap<SmolStr, IngotId>>, durability__: Durability, )
Set the value of the ingot_external_ingots
input and promise
that its value will never change again.
See ingot_external_ingots
for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.
fn root_ingot(&self) -> IngotId
Sourcefn set_root_ingot(&mut self, value__: IngotId)
fn set_root_ingot(&mut self, value__: IngotId)
Set the value of the root_ingot
input.
See root_ingot
for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.
Sourcefn set_root_ingot_with_durability(
&mut self,
value__: IngotId,
durability__: Durability,
)
fn set_root_ingot_with_durability( &mut self, value__: IngotId, durability__: Durability, )
Set the value of the root_ingot
input and promise
that its value will never change again.
See root_ingot
for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.