SymbolLabel -> SymbolMeta
This commit is contained in:
@@ -320,7 +320,7 @@ pub type Expr = ir::Expr<ProgramInfo>;
|
||||
pub struct ProgramInfo;
|
||||
|
||||
impl ir::ProgramInfo for ProgramInfo {
|
||||
type SymbolLabel = Infallible;
|
||||
type SymbolMeta = Infallible;
|
||||
type RelationLabel = Infallible;
|
||||
type AssumptionMeta = Infallible;
|
||||
type RuleMeta = AstNode;
|
||||
|
||||
@@ -56,8 +56,8 @@ pub struct Program<T: ProgramInfo> {
|
||||
/// The list of assumptions in this program.
|
||||
pub assumptions: Vec<Assumption<T>>,
|
||||
|
||||
/// The global symbol table for identifying indexed symbol literals.
|
||||
pub symbols: Vec<T::SymbolLabel>,
|
||||
/// The global symbol table for providing metadata about each indexed symbol literal.
|
||||
pub symbols: Vec<T::SymbolMeta>,
|
||||
}
|
||||
|
||||
#[derive_where(Clone, Debug, PartialEq, Eq)]
|
||||
@@ -405,8 +405,8 @@ impl Value {
|
||||
/// Associated types specializing a [Program] with stage-specific or format-specific information.
|
||||
// TODO: document how each type's usage changes based on stage and format
|
||||
pub trait ProgramInfo {
|
||||
/// The type of global symbol labels.
|
||||
type SymbolLabel: Info;
|
||||
/// Metadata for each symbol in the global symbol table.
|
||||
type SymbolMeta: Info;
|
||||
|
||||
/// The type of relation identifiers.
|
||||
///
|
||||
@@ -446,7 +446,7 @@ macro_rules! def_bound_info {
|
||||
#[doc = concat!("Conveniently extends [ProgramInfo] with the bounds: ", stringify!($bounds))]
|
||||
pub trait $name:
|
||||
ProgramInfo<
|
||||
SymbolLabel: $bounds,
|
||||
SymbolMeta: $bounds,
|
||||
RelationLabel: $bounds,
|
||||
AssumptionMeta: $bounds,
|
||||
RuleMeta: $bounds,
|
||||
@@ -461,7 +461,7 @@ macro_rules! def_bound_info {
|
||||
|
||||
impl<T> $name for T where
|
||||
T: ProgramInfo<
|
||||
SymbolLabel: $bounds,
|
||||
SymbolMeta: $bounds,
|
||||
RelationLabel: $bounds,
|
||||
AssumptionMeta: $bounds,
|
||||
RuleMeta: $bounds,
|
||||
|
||||
Reference in New Issue
Block a user