Struct moore_vhdl::score::ScoreContext [−][src]
pub struct ScoreContext<'lazy, 'sb: 'lazy, 'ast: 'sb, 'ctx: 'sb> {
pub sess: &'lazy Session,
pub global: &'lazy dyn GenericContext,
pub sb: &'sb ScoreBoard<'ast, 'ctx>,
pub lazy: &'lazy LazyPhaseTable<'sb, 'ast, 'ctx>,
}
Expand description
The VHDL context which holds information about the language scoreboard and the global scoreboard in its language-agnostic generic form. All useful operations are defined on this context rather than on the scoreboard directly, to decouple processing and ownership.
Fields
sess: &'lazy Session
The compiler session which carries the options and is used to emit diagnostics.
global: &'lazy dyn GenericContext
The global context.
sb: &'sb ScoreBoard<'ast, 'ctx>
The VHDL scoreboard.
lazy: &'lazy LazyPhaseTable<'sb, 'ast, 'ctx>
The table of scheduled operations.
Implementations
Unpack an AST expression.
pub fn unpack_subtype_ind(
&self,
ast: &'ast SubtypeInd,
scope_id: ScopeRef
) -> Result<SubtypeIndRef>
pub fn unpack_subtype_ind(
&self,
ast: &'ast SubtypeInd,
scope_id: ScopeRef
) -> Result<SubtypeIndRef>
Unpack an AST subtype indication.
pub fn unpack_type_mark(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentTypeMarkRef>>
pub fn unpack_type_mark(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentTypeMarkRef>>
Unpack a compound name as a type mark.
pub fn unpack_package_name(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentPkgRef>>
pub fn unpack_package_name(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentPkgRef>>
Unpack a compound name as a package name.
pub fn unpack_subprog_name(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentSubprogRef>>
pub fn unpack_subprog_name(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentSubprogRef>>
Unpack a compound name as a subprogram name.
pub fn unpack_block_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInBlockRef>>
pub fn unpack_block_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInBlockRef>>
Unpack a slice of AST declarative items into a list of items admissible in the declarative part of a block.
See IEEE 1076-2008 section 3.3.2.
pub fn unpack_process_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInProcRef>>
pub fn unpack_process_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInProcRef>>
Unpack a slice of AST declarative items into a list of items admissible in the declarative part of a process.
See IEEE 1076-2008 section 11.3.
pub fn unpack_subprog_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem]
) -> Result<Vec<DeclInSubprogRef>>
pub fn unpack_subprog_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem]
) -> Result<Vec<DeclInSubprogRef>>
Unpack a slice of AST declarative items into a list of items admissible in the declarative part of a subprogram.
See IEEE 1076-2008 section 4.3.
pub fn unpack_concurrent_stmts(
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<ConcStmtRef>>
pub fn unpack_concurrent_stmts(
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<ConcStmtRef>>
Unpack a slice of concurrent statements.
See IEEE 1076-2008 section 11.1.
pub fn unpack_sequential_stmts(
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<SeqStmtRef>>
pub fn unpack_sequential_stmts(
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<SeqStmtRef>>
Unpack a slice of sequential statements.
See IEEE 1076-2008 section 10.
pub fn unpack_signal_assign_target(
&self,
scope_id: ScopeRef,
target: &'ast AssignTarget
) -> Result<SigAssignTarget>
pub fn unpack_signal_assign_target(
&self,
scope_id: ScopeRef,
target: &'ast AssignTarget
) -> Result<SigAssignTarget>
Unpack a signal assignment target.
See IEEE 1076-2008 section 10.5.2.1.
pub fn unpack_signal_assign_mode(
&self,
scope_id: ScopeRef,
mode: &'ast Spanned<AssignMode>,
tyctx: &TypeCtx<'ctx>
) -> Result<Spanned<SigAssignKind>>
pub fn unpack_signal_assign_mode(
&self,
scope_id: ScopeRef,
mode: &'ast Spanned<AssignMode>,
tyctx: &TypeCtx<'ctx>
) -> Result<Spanned<SigAssignKind>>
Unpack a signal assignment mode.
See IEEE 1076-2008 section 10.5.
pub fn unpack_delay_mechanism(
&self,
scope_id: ScopeRef,
dm: &'ast Option<Spanned<DelayMech>>
) -> Result<DelayMechanism>
pub fn unpack_delay_mechanism(
&self,
scope_id: ScopeRef,
dm: &'ast Option<Spanned<DelayMech>>
) -> Result<DelayMechanism>
Unpack a delay mechanism.
See IEEE 1076-2008 section 10.5.2.1. If no mechanism is specified, inertial is assumed. Theoretically, the inertial transport mechanism is mapped to reject-inertial with the pulse rejection limit determined by the delay of the first element in the waveform. We don’t have that information readily available at this time, so we simply map to inertial and leave the resolution of this to stages further down the pipeline.
Unpack the the waves of a simple wave assignment.
Unpack a single waveform.
See IEEE 1076-2008 section 10.5.2.
Ensure that parenthesis contain only a list of expressions.
This is useful since the parser generally expects parenthesized
expressions of the form (expr|expr|expr => expr, expr)
even in palces
where only (expr, expr)
would be applicable. This function takes the
parenthesized expression and ensures it is of the latter form.
pub fn lower_subprog_spec(
&self,
scope_id: ScopeRef,
ast: &'ast SubprogSpec
) -> Result<SubprogSpec>
pub fn lower_subprog_spec(
&self,
scope_id: ScopeRef,
ast: &'ast SubprogSpec
) -> Result<SubprogSpec>
Lower an AST subprogram specification to HIR.
pub fn lower_subprog_name(
&self,
kind: SubprogKind,
name: &'ast PrimaryName
) -> Result<Spanned<ResolvableName>>
pub fn lower_subprog_name(
&self,
kind: SubprogKind,
name: &'ast PrimaryName
) -> Result<Spanned<ResolvableName>>
Lower the name of an AST subprogram to HIR and perform checks.
pub fn unpack_generics(
&self,
scope_id: ScopeRef,
decls: &'ast [IntfDecl],
into: &mut Vec<GenericRef>
) -> Result<()>
pub fn unpack_generics(
&self,
scope_id: ScopeRef,
decls: &'ast [IntfDecl],
into: &mut Vec<GenericRef>
) -> Result<()>
Unpack generics from a list of interface declarations.
See IEEE 1076-2008 section 6.5.6.1.
pub fn unpack_generic_map(
&self,
_scope_id: ScopeRef,
elems: &'ast ParenElems
) -> Result<Vec<()>>
pub fn unpack_generic_map(
&self,
_scope_id: ScopeRef,
elems: &'ast ParenElems
) -> Result<Vec<()>>
Unpack a generic map from a parenthesized list of elements.
See IEEE 1076-2008 section 6.5.7.2.
pub fn make_ctx_items_scope(
&self,
id: CtxItemsRef,
parent: Option<ScopeRef>
) -> Result<CtxItemsRef>
Add a library of AST nodes. This function is called by the global scoreboard to add VHDL-specific AST nodes.
Obtain the span associated with a node ID.
Associate a span with a node ID.
Report a compiler bug associate with a node.
pub fn ast<I>(&self, id: I) -> <AstTable<'ast> as NodeStorage<I>>::Node where
I: 'ast + Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
<AstTable<'ast> as NodeStorage<I>>::Node: Copy + Debug,
pub fn ast<I>(&self, id: I) -> <AstTable<'ast> as NodeStorage<I>>::Node where
I: 'ast + Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
<AstTable<'ast> as NodeStorage<I>>::Node: Copy + Debug,
Obtain the AST node corresponding to a node reference. The AST node must
have previously been added to the ast_table
, otherwise this function
panics.
pub fn set_ast<I>(&self, id: I, ast: <AstTable<'ast> as NodeStorage<I>>::Node) where
I: Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
pub fn set_ast<I>(&self, id: I, ast: <AstTable<'ast> as NodeStorage<I>>::Node) where
I: Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
Store an AST node in the scoreboard.
pub fn hir<I>(&self, id: I) -> Result<<HirTable<'ctx> as NodeStorage<I>>::Node> where
I: 'ctx + Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, <HirTable<'ctx> as NodeStorage<I>>::Node>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
pub fn hir<I>(&self, id: I) -> Result<<HirTable<'ctx> as NodeStorage<I>>::Node> where
I: 'ctx + Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, <HirTable<'ctx> as NodeStorage<I>>::Node>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
Obtain the HIR of a node, generating it if needed. Returns an error if the HIR cannot be generated.
pub fn set_hir<I>(&self, id: I, hir: <HirTable<'ctx> as NodeStorage<I>>::Node) where
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
pub fn set_hir<I>(&self, id: I, hir: <HirTable<'ctx> as NodeStorage<I>>::Node) where
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
Store the HIR of a node.
pub fn existing_hir<I>(
&self,
id: I
) -> Result<<HirTable<'ctx> as NodeStorage<I>>::Node> where
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
pub fn existing_hir<I>(
&self,
id: I
) -> Result<<HirTable<'ctx> as NodeStorage<I>>::Node> where
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
Obtain the HIR of a node. Returns an error if none exists.
pub fn lazy_hir<I, R>(&self, id: I) -> Result<&'ctx R> where
I: Copy + Debug,
R: Debug + 'ctx,
LazyHirTable<'sb, 'ast, 'ctx>: NodeStorage<I, Node = LazyNode<Box<dyn for<'a, 'b> Fn(&'a ScoreContext<'b, 'sb, 'ast, 'ctx>) -> Result<R> + 'sb>>>,
HirTable<'ctx>: NodeStorage<I, Node = &'ctx R>,
Arenas: Alloc<'ctx, 'ctx, R>,
pub fn lazy_hir<I, R>(&self, id: I) -> Result<&'ctx R> where
I: Copy + Debug,
R: Debug + 'ctx,
LazyHirTable<'sb, 'ast, 'ctx>: NodeStorage<I, Node = LazyNode<Box<dyn for<'a, 'b> Fn(&'a ScoreContext<'b, 'sb, 'ast, 'ctx>) -> Result<R> + 'sb>>>,
HirTable<'ctx>: NodeStorage<I, Node = &'ctx R>,
Arenas: Alloc<'ctx, 'ctx, R>,
Determine the HIR for a node.
If the HIR is already in the scoreboard, returns it immediately. Otherwise the lazy HIR table is triggered which will compute the HIR via the corresponding closure.
pub fn lldecl<I>(&self, id: I) -> Result<Value> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DeclValueRef>,
pub fn lldef<I>(&self, id: I) -> Result<Value> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DefValueRef>,
pub fn llunit<I>(&self, id: I) -> Result<UnitId> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, UnitId>,
Determine the type of a node.
If called for the first time with the given id
, calculates the type by
calling self.make(id)
. Otherwise returns the existing information.
Check the type of a node.
If the node already had its type checked, immediately returns the result of that operation. Otherwise runs the task scheduled in the lazy table.
Determine the type of a node.
If the node already had its type determined, immediately returns the result of that operation. Otherwise runs the task scheduled in the lazy table.
pub fn const_value<I>(&self, id: I) -> Result<&'ctx Const> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Const>,
Obtain the type context for an expression.
Returns None
if no context information is available.
Obtain the type indicated by the type context for an expression.
Returns None
if no context information is available.
Store a type context for an expression.
Upon type checking, the expression is likely to consult this context to determine its type.
Store a type context for an optional expression.
Upon type checking, the expression is likely to consult this context to
determine its type. Does nothing if id.is_none()
.
pub fn resolvable_from_primary_name(
&self,
primary: &PrimaryName
) -> Result<Spanned<ResolvableName>>
pub fn resolvable_from_primary_name(
&self,
primary: &PrimaryName
) -> Result<Spanned<ResolvableName>>
Convert a primary name as it is present in the AST to a resolvable name that can be defined and resolved in a scope.
Resolve a name within a scope. Traverses to the parent scopes if nothing matching the name is found.
Resolve a compound name within a scope.
Get the builtin type standard.boolean
.
Get the builtin type standard.time
.
Get the builtin type standard.string
.
Get the builtin type standard.severity
.
Calculate the implicit default value for a type.
Internalize a constant.
See ScoreBoard::intern_const
.
Lookup a scope and perform an operation on it.
Define a new name in a scope.
pub fn import_def(
&self,
scope: ScopeRef,
name: Spanned<ResolvableName>,
def: Def
) -> Result<()>
pub fn import_def(
&self,
scope: ScopeRef,
name: Spanned<ResolvableName>,
def: Def
) -> Result<()>
Import a definition into a scope.
Replace Ty::Named
by the actual type definition recursively.
Trait Implementations
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<BlockStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<BlockStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CaseGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CaseGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompInstStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompInstStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcAssertStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcAssertStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcCallStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcCallStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcSigAssignStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcSigAssignStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConstDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConstDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<DeclInBlockRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<DeclInBlockRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<FileDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<FileDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ForGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ForGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<IfGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<IfGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ProcessStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ProcessStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx, 'a> Codegen<SeqStmtRef, UnitBuilder<'a>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx, 'a> Codegen<SeqStmtRef, UnitBuilder<'a>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SignalDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SignalDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<VarDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<VarDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Emit a diagnostic message.
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Arch> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Arch> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, DeclValueRef> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, DeclValueRef> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, UnitId> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, UnitId> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArrayTypeIndexRef, &'ctx Spanned<ArrayTypeIndex>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArrayTypeIndexRef, &'ctx Spanned<ArrayTypeIndex>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ExprRef, &'ctx Const> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ExprRef, &'ctx Const> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfConstRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfConstRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfFileRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfFileRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfObjRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfObjRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx IntfSignal> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx IntfSignal> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfVarRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfVarRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LatentTypeMarkRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LatentTypeMarkRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LatentTypeMarkRef, Spanned<TypeMarkRef>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LatentTypeMarkRef, Spanned<TypeMarkRef>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx ArchTable> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx ArchTable> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Lib> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Lib> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx PackageBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx PackageBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Package> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Package> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgInstRef, &'ctx PackageInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgInstRef, &'ctx PackageInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx ProcessStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx ProcessStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SigAssignStmtRef, &'ctx SigAssignStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SigAssignStmtRef, &'ctx SigAssignStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx SubprogBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx SubprogBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Subprog> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Subprog> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogInstRef, &'ctx SubprogInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogInstRef, &'ctx SubprogInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx SubtypeDecl> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx SubtypeDecl> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Creates the node with the given ID. Read more