Expand description
Data types for normalize rule evaluation.
This crate defines the Relations input facts and Diagnostic output type used
by the fact rule engine. Rules run as interpreted .dl files via
normalize-facts-rules-interpret; there is no dynamic library loading.
§Architecture
normalize-facts (extraction) -> Relations (facts) -> Datalog engine -> DiagnosticsFacts are extracted from code by normalize-facts and passed to the Datalog engine. Each rule evaluates over these relations and produces Diagnostics.
Re-exports§
pub use ascent;
Structs§
- Attribute
Fact - An attribute fact: one attribute annotation on a symbol.
- Call
Fact - A call fact: a function call from one symbol to another.
- Diagnostic
- A diagnostic produced by a rule.
- Implements
Fact - An implements fact: a symbol implements an interface/trait.
- Import
Fact - An import fact: a dependency from one file to another module.
- IsImpl
Fact - An is_impl fact: symbol is a trait/interface implementation.
- Location
- A source code location.
- Parent
Fact - A parent fact: symbol nesting hierarchy.
- Qualifier
Fact - A qualifier fact: call qualifier (receiver/module).
- Relations
- All relations (facts) available to rules.
- Symbol
Fact - A symbol fact: a named entity defined in a file.
- Symbol
Range Fact - A symbol range fact: start and end lines of a symbol.
- Type
Method Fact - A type method fact: a method signature on a type.
- Visibility
Fact - A visibility fact: the visibility of a symbol.
Enums§
- Diagnostic
Level - Severity level for a diagnostic.