pub trait SemanticGroup: Database + HasQueryGroup<SemanticDatabase> + DefsGroup + Upcast<dyn DefsGroup> + ParserGroup + Upcast<dyn FilesGroup> + AsFilesGroupMut + Elongate {
Show 123 methods fn intern_function(&self, key0: FunctionLongId) -> FunctionId; fn lookup_intern_function(&self, key0: FunctionId) -> FunctionLongId; fn intern_concrete_function_with_body(
        &self,
        key0: ConcreteFunctionWithBody
    ) -> ConcreteFunctionWithBodyId; fn lookup_intern_concrete_function_with_body(
        &self,
        key0: ConcreteFunctionWithBodyId
    ) -> ConcreteFunctionWithBody; fn intern_concrete_struct(
        &self,
        key0: ConcreteStructLongId
    ) -> ConcreteStructId; fn lookup_intern_concrete_struct(
        &self,
        key0: ConcreteStructId
    ) -> ConcreteStructLongId; fn intern_concrete_enum(&self, key0: ConcreteEnumLongId) -> ConcreteEnumId; fn lookup_intern_concrete_enum(
        &self,
        key0: ConcreteEnumId
    ) -> ConcreteEnumLongId; fn intern_concrete_extern_type(
        &self,
        key0: ConcreteExternTypeLongId
    ) -> ConcreteExternTypeId; fn lookup_intern_concrete_extern_type(
        &self,
        key0: ConcreteExternTypeId
    ) -> ConcreteExternTypeLongId; fn intern_concrete_trait(&self, key0: ConcreteTraitLongId) -> ConcreteTraitId; fn lookup_intern_concrete_trait(
        &self,
        key0: ConcreteTraitId
    ) -> ConcreteTraitLongId; fn intern_concrete_trait_function(
        &self,
        key0: ConcreteTraitGenericFunctionLongId
    ) -> ConcreteTraitGenericFunctionId; fn lookup_intern_concrete_trait_function(
        &self,
        key0: ConcreteTraitGenericFunctionId
    ) -> ConcreteTraitGenericFunctionLongId; fn intern_concrete_impl(&self, key0: ConcreteImplLongId) -> ConcreteImplId; fn lookup_intern_concrete_impl(
        &self,
        key0: ConcreteImplId
    ) -> ConcreteImplLongId; fn intern_type(&self, key0: TypeLongId) -> TypeId; fn lookup_intern_type(&self, key0: TypeId) -> TypeLongId; fn intern_literal(&self, key0: LiteralLongId) -> LiteralId; fn lookup_intern_literal(&self, key0: LiteralId) -> LiteralLongId; fn priv_constant_semantic_data(
        &self,
        key0: ConstantId
    ) -> Maybe<ConstantData>; fn constant_semantic_diagnostics(
        &self,
        key0: ConstantId
    ) -> Diagnostics<SemanticDiagnostic>; fn constant_semantic_data(&self, key0: ConstantId) -> Maybe<Constant>; fn constant_resolved_lookback(
        &self,
        key0: ConstantId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_use_semantic_data(&self, key0: UseId) -> Maybe<UseData>; fn use_semantic_diagnostics(
        &self,
        key0: UseId
    ) -> Diagnostics<SemanticDiagnostic>; fn use_resolved_item(&self, key0: UseId) -> Maybe<ResolvedGenericItem>; fn use_resolved_lookback(&self, key0: UseId) -> Maybe<Arc<ResolvedLookback>>; fn priv_module_items_data(
        &self,
        key0: ModuleId
    ) -> Maybe<Arc<ModuleSemanticData>>; fn module_item_by_name(
        &self,
        key0: ModuleId,
        key1: SmolStr
    ) -> Maybe<Option<ModuleItemId>>; fn module_attributes(&self, key0: ModuleId) -> Maybe<Vec<Attribute>>; fn priv_struct_semantic_data(&self, key0: StructId) -> Maybe<StructData>; fn struct_semantic_diagnostics(
        &self,
        key0: StructId
    ) -> Diagnostics<SemanticDiagnostic>; fn struct_generic_params(&self, key0: StructId) -> Maybe<Vec<GenericParamId>>; fn struct_members(
        &self,
        key0: StructId
    ) -> Maybe<OrderedHashMap<SmolStr, Member>>; fn struct_attributes(&self, key0: StructId) -> Maybe<Vec<Attribute>>; fn struct_resolved_lookback(
        &self,
        key0: StructId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_enum_semantic_data(&self, key0: EnumId) -> Maybe<EnumData>; fn enum_semantic_diagnostics(
        &self,
        key0: EnumId
    ) -> Diagnostics<SemanticDiagnostic>; fn enum_generic_params(&self, key0: EnumId) -> Maybe<Vec<GenericParamId>>; fn enum_variants(
        &self,
        key0: EnumId
    ) -> Maybe<OrderedHashMap<SmolStr, VariantId>>; fn variant_semantic(&self, key0: EnumId, key1: VariantId) -> Maybe<Variant>; fn enum_resolved_lookback(
        &self,
        key0: EnumId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_type_alias_semantic_data(
        &self,
        key0: TypeAliasId
    ) -> Maybe<TypeAliasData>; fn type_alias_semantic_diagnostics(
        &self,
        key0: TypeAliasId
    ) -> Diagnostics<SemanticDiagnostic>; fn type_alias_resolved_type(&self, key0: TypeAliasId) -> Maybe<TypeId>; fn type_alias_generic_params(
        &self,
        key0: TypeAliasId
    ) -> Maybe<Vec<GenericParamId>>; fn type_alias_resolved_lookback(
        &self,
        key0: TypeAliasId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_trait_semantic_data(&self, key0: TraitId) -> Maybe<TraitData>; fn trait_semantic_diagnostics(
        &self,
        key0: TraitId
    ) -> Diagnostics<SemanticDiagnostic>; fn trait_generic_params(&self, key0: TraitId) -> Maybe<Vec<GenericParamId>>; fn trait_attributes(&self, key0: TraitId) -> Maybe<Vec<Attribute>>; fn trait_functions(
        &self,
        key0: TraitId
    ) -> Maybe<OrderedHashMap<SmolStr, TraitFunctionId>>; fn trait_function_by_name(
        &self,
        key0: TraitId,
        key1: SmolStr
    ) -> Maybe<Option<TraitFunctionId>>; fn priv_trait_function_data(
        &self,
        key0: TraitFunctionId
    ) -> Maybe<TraitFunctionData>; fn trait_function_diagnostics(
        &self,
        key0: TraitFunctionId
    ) -> Diagnostics<SemanticDiagnostic>; fn trait_function_signature(&self, key0: TraitFunctionId) -> Maybe<Signature>; fn trait_function_attributes(
        &self,
        key0: TraitFunctionId
    ) -> Maybe<Vec<Attribute>>; fn trait_function_generic_params(
        &self,
        key0: TraitFunctionId
    ) -> Maybe<Vec<GenericParamId>>; fn trait_function_resolved_lookback(
        &self,
        key0: TraitFunctionId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_impl_declaration_data(
        &self,
        key0: ImplId
    ) -> Maybe<ImplDeclarationData>; fn impl_semantic_declaration_diagnostics(
        &self,
        key0: ImplId
    ) -> Diagnostics<SemanticDiagnostic>; fn impl_generic_params(&self, key0: ImplId) -> Maybe<Vec<GenericParamId>>; fn impl_resolved_lookback(
        &self,
        key0: ImplId
    ) -> Maybe<Arc<ResolvedLookback>>; fn impl_trait(&self, key0: ImplId) -> Maybe<ConcreteTraitId>; fn priv_impl_definition_data(
        &self,
        key0: ImplId
    ) -> Maybe<ImplDefinitionData>; fn impl_semantic_definition_diagnostics(
        &self,
        key0: ImplId
    ) -> Diagnostics<SemanticDiagnostic>; fn impl_functions(
        &self,
        key0: ImplId
    ) -> Maybe<OrderedHashMap<SmolStr, ImplFunctionId>>; fn impl_function_by_trait_function(
        &self,
        key0: ImplId,
        key1: TraitFunctionId
    ) -> Maybe<Option<ImplFunctionId>>; fn impl_function_signature(&self, key0: ImplFunctionId) -> Maybe<Signature>; fn impl_function_declaration_implicits(
        &self,
        key0: ImplFunctionId
    ) -> Maybe<Vec<TypeId>>; fn impl_function_generic_params(
        &self,
        key0: ImplFunctionId
    ) -> Maybe<Vec<GenericParamId>>; fn impl_function_declaration_diagnostics(
        &self,
        key0: ImplFunctionId
    ) -> Diagnostics<SemanticDiagnostic>; fn impl_function_resolved_lookback(
        &self,
        key0: ImplFunctionId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_impl_function_declaration_data(
        &self,
        key0: ImplFunctionId
    ) -> Maybe<FunctionDeclarationData>; fn impl_function_body_diagnostics(
        &self,
        key0: ImplFunctionId
    ) -> Diagnostics<SemanticDiagnostic>; fn impl_function_body(
        &self,
        key0: ImplFunctionId
    ) -> Maybe<Arc<FunctionBody>>; fn impl_function_body_resolved_lookback(
        &self,
        key0: ImplFunctionId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_impl_function_body_data(
        &self,
        key0: ImplFunctionId
    ) -> Maybe<FunctionBodyData>; fn free_function_declaration_diagnostics(
        &self,
        key0: FreeFunctionId
    ) -> Diagnostics<SemanticDiagnostic>; fn free_function_signature(&self, key0: FreeFunctionId) -> Maybe<Signature>; fn free_function_declaration_implicits(
        &self,
        key0: FreeFunctionId
    ) -> Maybe<Vec<TypeId>>; fn free_function_generic_params(
        &self,
        key0: FreeFunctionId
    ) -> Maybe<Vec<GenericParamId>>; fn free_function_declaration_resolved_lookback(
        &self,
        key0: FreeFunctionId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_free_function_declaration_data(
        &self,
        key0: FreeFunctionId
    ) -> Maybe<FunctionDeclarationData>; fn free_function_body_diagnostics(
        &self,
        key0: FreeFunctionId
    ) -> Diagnostics<SemanticDiagnostic>; fn free_function_body_resolved_lookback(
        &self,
        key0: FreeFunctionId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_free_function_body_data(
        &self,
        key0: FreeFunctionId
    ) -> Maybe<FunctionBodyData>; fn function_declaration_diagnostics(
        &self,
        key0: FunctionWithBodyId
    ) -> Diagnostics<SemanticDiagnostic>; fn function_with_body_signature(
        &self,
        key0: FunctionWithBodyId
    ) -> Maybe<Signature>; fn function_with_body_generic_params(
        &self,
        key0: FunctionWithBodyId
    ) -> Maybe<Vec<GenericParamId>>; fn function_with_body_attributes(
        &self,
        key0: FunctionWithBodyId
    ) -> Maybe<Vec<Attribute>>; fn function_body_diagnostics(
        &self,
        key0: FunctionWithBodyId
    ) -> Diagnostics<SemanticDiagnostic>; fn function_body_expr(&self, key0: FunctionWithBodyId) -> Maybe<ExprId>; fn function_body(&self, key0: FunctionWithBodyId) -> Maybe<Arc<FunctionBody>>; fn function_with_body_direct_callees(
        &self,
        key0: FunctionWithBodyId
    ) -> Maybe<HashSet<FunctionId>>; fn function_with_body_direct_function_with_body_callees(
        &self,
        key0: FunctionWithBodyId
    ) -> Maybe<HashSet<FunctionWithBodyId>>; fn priv_extern_function_declaration_data(
        &self,
        key0: ExternFunctionId
    ) -> Maybe<FunctionDeclarationData>; fn extern_function_declaration_diagnostics(
        &self,
        key0: ExternFunctionId
    ) -> Diagnostics<SemanticDiagnostic>; fn extern_function_signature(
        &self,
        key0: ExternFunctionId
    ) -> Maybe<Signature>; fn extern_function_declaration_generic_params(
        &self,
        key0: ExternFunctionId
    ) -> Maybe<Vec<GenericParamId>>; fn extern_function_declaration_implicits(
        &self,
        key0: ExternFunctionId
    ) -> Maybe<Vec<TypeId>>; fn extern_function_declaration_refs(
        &self,
        key0: ExternFunctionId
    ) -> Maybe<Vec<Parameter>>; fn extern_function_declaration_resolved_lookback(
        &self,
        key0: ExternFunctionId
    ) -> Maybe<Arc<ResolvedLookback>>; fn priv_extern_type_declaration_data(
        &self,
        key0: ExternTypeId
    ) -> Maybe<ExternTypeDeclarationData>; fn extern_type_declaration_diagnostics(
        &self,
        key0: ExternTypeId
    ) -> Diagnostics<SemanticDiagnostic>; fn extern_type_declaration_generic_params(
        &self,
        key0: ExternTypeId
    ) -> Maybe<Vec<GenericParamId>>; fn function_signature_signature(
        &self,
        key0: FunctionSignatureId
    ) -> Maybe<Signature>; fn function_signature_generic_params(
        &self,
        key0: FunctionSignatureId
    ) -> Maybe<Vec<GenericParamId>>; fn concrete_function_signature(&self, key0: FunctionId) -> Maybe<Signature>; fn generic_type_generic_params(
        &self,
        key0: GenericTypeId
    ) -> Maybe<Vec<GenericParamId>>; fn type_info(&self, key0: ImplLookupContext, key1: TypeId) -> Maybe<TypeInfo>; fn expr_semantic(&self, key0: FunctionWithBodyId, key1: ExprId) -> Expr; fn statement_semantic(
        &self,
        key0: FunctionWithBodyId,
        key1: StatementId
    ) -> Statement; fn lookup_resolved_generic_item_by_ptr(
        &self,
        key0: LookupItemId,
        key1: TerminalIdentifierPtr
    ) -> Option<ResolvedGenericItem>; fn lookup_resolved_concrete_item_by_ptr(
        &self,
        key0: LookupItemId,
        key1: TerminalIdentifierPtr
    ) -> Option<ResolvedConcreteItem>; fn module_semantic_diagnostics(
        &self,
        key0: ModuleId
    ) -> Maybe<Diagnostics<SemanticDiagnostic>>; fn file_semantic_diagnostics(
        &self,
        key0: FileId
    ) -> Maybe<Diagnostics<SemanticDiagnostic>>; fn core_module(&self) -> ModuleId; fn core_felt_ty(&self) -> TypeId; fn semantic_plugins(&self) -> Vec<Arc<dyn SemanticPlugin>> ; fn set_semantic_plugins(&mut self, value__: Vec<Arc<dyn SemanticPlugin>>); fn set_semantic_plugins_with_durability(
        &mut self,
        value__: Vec<Arc<dyn SemanticPlugin>>,
        durability__: Durability
    );
}

Required Methods§

Private query to compute data about a constant definition.

Returns the semantic diagnostics of a constant definition.

Returns the semantic data of a constant definition.

Private query to compute data about a use.

Returns the semantic diagnostics of a use.

Returns the semantic diagnostics of a use.

Private query to compute data about the module.

Returns Maybe::Err if the module was not properly resolved. Returns [Maybe::Ok(Option::None)] if the item does not exist.

Returns the attributes of a module

Private query to compute data about a struct.

Returns the semantic diagnostics of a struct.

Returns the generic parameters of an enum.

Returns the members of a struct.

Returns the attributes of a struct.

Returns the resolution lookback of a struct.

Private query to compute data about an enum.

Returns the semantic diagnostics of an enum.

Returns the generic parameters of an enum.

Returns the members of an enum.

Returns the semantic model of a variant.

Returns the resolution lookback of an enum.

Private query to compute data about a type alias.

Returns the semantic diagnostics of a type alias.

Returns the resolved type of a type alias.

Returns the generic parameters of a type alias.

Returns the resolution lookback of a type alias.

Private query to compute data about a trait.

Returns the semantic diagnostics of a trait.

Returns the generic parameters of a trait.

Returns the attributes of a trait.

Returns the functions of a trait.

Returns the function with the given name of the given trait, if exists.

Private query to compute data about a trait function.

Returns the semantic diagnostics of a trait function.

Returns the signature of a trait function.

Returns the attributes of a trait function.

Returns the generic params of a trait function.

Returns the resolution lookback of a trait function.

Private query to compute declaration data about an impl.

Returns the semantic declaration diagnostics of an impl.

Returns the generic parameters of an impl.

Returns the resolution lookback of an impl.

Returns the concrete trait that is implemented by the impl.

Private query to compute data about an impl.

Returns the semantic definition diagnostics of an impl.

Returns the functions in the impl.

Returns the impl function that matches the given trait function, if exists. Note that a function that doesn’t exist in the impl doesn’t necessarily indicate an error, as, e.g., a trait function that has a default implementation doesn’t have to be implemented in the impl.

Returns the signature of an impl function.

Returns the explicit implicits of a signature of an impl function.

Returns the generic params of an impl function.

Returns the semantic diagnostics of an impl function’s declaration (signature).

Returns the resolution lookback of an impl function’s declaration.

Private query to compute data about an impl function declaration.

Returns the semantic diagnostics of an impl function definition (declaration + body).

Returns the definition of an impl function.

Returns the resolution lookback of an impl function’s definition.

Private query to compute data about an impl function definition (declaration + body)

Returns the semantic diagnostics of a free function’s declaration (signature).

Returns the signature of a free function.

Returns the explicit implicits of a signature of a free function.

Returns the generic params of a free function.

Returns the resolution lookback of a free function’s declaration.

Private query to compute data about a free function declaration - its signature excluding its body.

Returns the semantic diagnostics of a free function’s body.

Returns the resolution lookback of a free function’s body.

Private query to compute data about a free function’s body.

Returns the semantic diagnostics of a declaration (signature) of a function with a body.

Returns the signature of a function with a body.

Returns the generic params of a function with a body.

Returns the attributes of a function with a body.

Returns the semantic diagnostics of a body of a function (with a body).

Returns the body expr of a function (with a body).

Returns the body of a function (with a body).

Returns the set of direct callees of a function with a body.

Returns the set of direct callees which are functions with body of a function with a body (i.e. excluding libfunc callees).

Private query to compute data about an extern function declaration. An extern function has no body, and thus only has a declaration.

Returns the semantic diagnostics of an extern function declaration. An extern function has no body, and thus only has a declaration.

Returns the signature of an extern function.

Returns the generic params of an extern function.

Returns the explicit implicits of an extern function declaration.

Returns the ref parameters of an extern function declaration.

Returns the resolution lookback of an extern function.

Private query to compute data about an extern type declaration. An extern type has no body, and thus only has a declaration.

Returns the semantic diagnostics of an extern type declaration. An extern type has no body, and thus only has a declaration.

Returns the generic params of an extern type.

Returns the signature of the given FunctionSignatureId. This include free functions, extern functions, etc…

Returns the generic parameters of the given FunctionSignatureId. This include free functions, extern functions, etc…

Returns the signature of a concrete function. This include free functions, extern functions, etc…

Returns the generic_type of a generic function. This include free types, extern types, etc…

Returns the generic_type of a generic function. This include free types, extern types, etc…

Assumes function and expression are present.

Assumes function and statement are valid.

Aggregates module level semantic diagnostics.

Aggregates file level semantic diagnostics.

Set the value of the semantic_plugins input.

See semantic_plugins for details.

Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.

Set the value of the semantic_plugins input and promise that its value will never change again.

See semantic_plugins for details.

Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.

Trait Implementations§

Implementors§