Struct moore_vhdl::score::ScoreContext
source · [−]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
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourcepub fn unpack_expr(
&self,
ast: &'ast Expr,
scope_id: ScopeRef
) -> Result<ExprRef>
pub fn unpack_expr(
&self,
ast: &'ast Expr,
scope_id: ScopeRef
) -> Result<ExprRef>
Unpack an AST expression.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub fn unpack_cond_waveforms(
&self,
_scope_id: ScopeRef,
waves: &'ast [CondWave],
_tyctx: &TypeCtx<'ctx>
) -> Result<Cond<Waveform>>
pub fn unpack_cond_waveforms(
&self,
_scope_id: ScopeRef,
waves: &'ast [CondWave],
_tyctx: &TypeCtx<'ctx>
) -> Result<Cond<Waveform>>
Unpack the the waves of a simple wave assignment.
sourcepub fn unpack_waveform(
&self,
scope_id: ScopeRef,
wave: &'ast Wave,
tyctx: &TypeCtx<'ctx>
) -> Result<Waveform>
pub fn unpack_waveform(
&self,
scope_id: ScopeRef,
wave: &'ast Wave,
tyctx: &TypeCtx<'ctx>
) -> Result<Waveform>
Unpack a single waveform.
See IEEE 1076-2008 section 10.5.2.
sourcepub fn sanitize_paren_elems_as_exprs(
&self,
elems: &'ast [ParenElem],
context: &str
) -> Vec<&'ast Expr>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn sanitize_paren_elems_as_exprs(
&self,
elems: &'ast [ParenElem],
context: &str
) -> Vec<&'ast Expr>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
pub fn make_ctx_items_scope(
&self,
id: CtxItemsRef,
parent: Option<ScopeRef>
) -> Result<CtxItemsRef>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourcepub fn add_library(&self, name: Name, id: LibRef, lib: Vec<&'ast DesignUnit>)
pub fn add_library(&self, name: Name, id: LibRef, lib: Vec<&'ast DesignUnit>)
Add a library of AST nodes. This function is called by the global scoreboard to add VHDL-specific AST nodes.
sourcepub fn span<I>(&self, id: I) -> Option<Span> where
I: Into<NodeId>,
pub fn span<I>(&self, id: I) -> Option<Span> where
I: Into<NodeId>,
Obtain the span associated with a node ID.
sourcepub fn set_span<I>(&self, id: I, span: Span) where
I: Into<NodeId>,
pub fn set_span<I>(&self, id: I, span: Span) where
I: Into<NodeId>,
Associate a span with a node ID.
sourcepub fn bug<I>(&self, id: I, msg: String) where
I: Into<NodeId>,
pub fn bug<I>(&self, id: I, msg: String) where
I: Into<NodeId>,
Report a compiler bug associate with a node.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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.
sourcepub 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 defs(&self, id: ScopeRef) -> Result<&'ctx Defs>
pub fn archs(&self, id: LibRef) -> Result<&'ctx ArchTable>
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>,
sourcepub fn ty<I>(&self, id: I) -> Result<&'ctx Ty> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
pub fn ty<I>(&self, id: I) -> Result<&'ctx Ty> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
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.
sourcepub fn lazy_typeck<I>(&self, id: I) -> Result<()> where
I: Into<NodeId>,
pub fn lazy_typeck<I>(&self, id: I) -> Result<()> where
I: Into<NodeId>,
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.
sourcepub fn lazy_typeval<I>(&self, id: I) -> Result<&'ctx Ty> where
I: Into<NodeId>,
pub fn lazy_typeval<I>(&self, id: I) -> Result<&'ctx Ty> where
I: Into<NodeId>,
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 scope(&self, id: ScopeRef) -> Result<&'ctx Scope>
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>,
sourcepub fn type_context<I>(&self, id: I) -> Option<TypeCtx<'ctx>> where
I: Copy + Debug + Into<NodeId>,
pub fn type_context<I>(&self, id: I) -> Option<TypeCtx<'ctx>> where
I: Copy + Debug + Into<NodeId>,
Obtain the type context for an expression.
Returns None
if no context information is available.
sourcepub fn type_context_resolved<I>(&self, id: I) -> Result<Option<&'ctx Ty>> where
I: Copy + Debug + Into<NodeId>,
pub fn type_context_resolved<I>(&self, id: I) -> Result<Option<&'ctx Ty>> where
I: Copy + Debug + Into<NodeId>,
Obtain the type indicated by the type context for an expression.
Returns None
if no context information is available.
sourcepub fn set_type_context<I, T>(&self, id: I, tyctx: T) where
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
pub fn set_type_context<I, T>(&self, id: I, tyctx: T) where
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
Store a type context for an expression.
Upon type checking, the expression is likely to consult this context to determine its type.
sourcepub fn set_type_context_optional<I, T>(&self, id: Option<I>, tyctx: T) where
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
pub fn set_type_context_optional<I, T>(&self, id: Option<I>, tyctx: T) where
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
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()
.
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourcepub 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.
sourcepub fn resolve_name(
&self,
name: Spanned<ResolvableName>,
scope_id: ScopeRef,
only_defs: bool,
allow_fail: bool
) -> Result<Vec<Spanned<Def>>>
pub fn resolve_name(
&self,
name: Spanned<ResolvableName>,
scope_id: ScopeRef,
only_defs: bool,
allow_fail: bool
) -> Result<Vec<Spanned<Def>>>
Resolve a name within a scope. Traverses to the parent scopes if nothing matching the name is found.
sourcepub fn resolve_compound_name<'a>(
&self,
name: &'a CompoundName,
scope_id: ScopeRef,
only_defs: bool
) -> Result<(ResolvableName, Vec<Spanned<Def>>, Span, &'a [NamePart])>
pub fn resolve_compound_name<'a>(
&self,
name: &'a CompoundName,
scope_id: ScopeRef,
only_defs: bool
) -> Result<(ResolvableName, Vec<Spanned<Def>>, Span, &'a [NamePart])>
Resolve a compound name within a scope.
sourcepub fn builtin_boolean_type(&self) -> &'ctx Ty
pub fn builtin_boolean_type(&self) -> &'ctx Ty
Get the builtin type standard.boolean
.
sourcepub fn builtin_time_type(&self) -> &'ctx Ty
pub fn builtin_time_type(&self) -> &'ctx Ty
Get the builtin type standard.time
.
sourcepub fn builtin_string_type(&self) -> &'ctx Ty
pub fn builtin_string_type(&self) -> &'ctx Ty
Get the builtin type standard.string
.
sourcepub fn builtin_severity_type(&self) -> &'ctx Ty
pub fn builtin_severity_type(&self) -> &'ctx Ty
Get the builtin type standard.severity
.
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourcepub fn default_value_for_type(&self, ty: &Ty) -> Result<&'ctx Const>
pub fn default_value_for_type(&self, ty: &Ty) -> Result<&'ctx Const>
Calculate the implicit default value for a type.
sourcepub fn intern_const<T>(&self, konst: T) -> &'ctx Const where
T: Into<Const>,
pub fn intern_const<T>(&self, konst: T) -> &'ctx Const where
T: Into<Const>,
Internalize a constant.
See ScoreBoard::intern_const
.
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourcepub fn with_scope<F, R>(&self, scope: ScopeRef, f: F) -> Result<R> where
F: FnOnce(&mut Scope) -> Result<R>,
pub fn with_scope<F, R>(&self, scope: ScopeRef, f: F) -> Result<R> where
F: FnOnce(&mut Scope) -> Result<R>,
Lookup a scope and perform an operation on it.
sourcepub fn define(
&self,
scope: ScopeRef,
name: Spanned<ResolvableName>,
def: Def
) -> Result<()>
pub fn define(
&self,
scope: ScopeRef,
name: Spanned<ResolvableName>,
def: Def
) -> Result<()>
Define a new name in a scope.
sourcepub 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.
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourcepub fn deref_named_type<'a>(&self, ty: &'a Ty) -> Result<&'a Ty> where
'ctx: 'a,
pub fn deref_named_type<'a>(&self, ty: &'a Ty) -> Result<&'a Ty> where
'ctx: 'a,
Replace Ty::Named
by the actual type definition recursively.
sourceimpl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Trait Implementations
sourceimpl<'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>
fn codegen(&self, id: BlockStmtRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: CaseGenStmtRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'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>
fn codegen(&self, id: CompInstStmtRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(
&self,
id: ConcAssertStmtRef,
_ctx: &mut UnitBuilder<'_>
) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: ConcCallStmtRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(
&self,
id: ConcSigAssignStmtRef,
_ctx: &mut UnitBuilder<'_>
) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: ConcStmtRef, ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: ConstDeclRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: DeclInBlockRef, ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: FileDeclRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: ForGenStmtRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: IfGenStmtRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'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>
fn codegen(&self, id: ProcessStmtRef, ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: SeqStmtRef, _ctx: &mut UnitBuilder<'a>) -> Result<()>
sourceimpl<'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>
fn codegen(&self, id: SignalDeclRef, ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
fn codegen(&self, id: VarDeclRef, _ctx: &mut UnitBuilder<'_>) -> Result<()>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> DiagEmitter for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> DiagEmitter for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourcefn emit(&self, diag: DiagBuilder2)
fn emit(&self, diag: DiagBuilder2)
Emit a diagnostic message.
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: ArrayTypeIndexRef) -> Result<&'ctx Spanned<ArrayTypeIndex>>
fn make(&self, id: ArrayTypeIndexRef) -> Result<&'ctx Spanned<ArrayTypeIndex>>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: IntfSignalRef) -> Result<&'ctx IntfSignal>
fn make(&self, id: IntfSignalRef) -> Result<&'ctx IntfSignal>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: LatentTypeMarkRef) -> Result<Spanned<TypeMarkRef>>
fn make(&self, id: LatentTypeMarkRef) -> Result<Spanned<TypeMarkRef>>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: PkgBodyRef) -> Result<&'ctx PackageBody>
fn make(&self, id: PkgBodyRef) -> Result<&'ctx PackageBody>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: PkgInstRef) -> Result<&'ctx PackageInst>
fn make(&self, id: PkgInstRef) -> Result<&'ctx PackageInst>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: ProcessStmtRef) -> Result<&'ctx ProcessStmt>
fn make(&self, id: ProcessStmtRef) -> Result<&'ctx ProcessStmt>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: SigAssignStmtRef) -> Result<&'ctx SigAssignStmt>
fn make(&self, id: SigAssignStmtRef) -> Result<&'ctx SigAssignStmt>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: SubprogBodyRef) -> Result<&'ctx SubprogBody>
fn make(&self, id: SubprogBodyRef) -> Result<&'ctx SubprogBody>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourceimpl<'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>
sourcefn make(&self, id: SubprogInstRef) -> Result<&'ctx SubprogInst>
fn make(&self, id: SubprogInstRef) -> Result<&'ctx SubprogInst>
Creates the node with the given ID. Read more
sourceimpl<'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>
sourcefn make(&self, id: SubtypeDeclRef) -> Result<&'ctx SubtypeDecl>
fn make(&self, id: SubtypeDeclRef) -> Result<&'ctx SubtypeDecl>
Creates the node with the given ID. Read more
sourceimpl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeIndRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeIndRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeMarkRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeMarkRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypedNodeRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypedNodeRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
sourceimpl<'lazy, 'sb, 'ast, 'ctx, I> TypeckNode<'ctx, I> for ScoreContext<'lazy, 'sb, 'ast, 'ctx> where
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
impl<'lazy, 'sb, 'ast, 'ctx, I> TypeckNode<'ctx, I> for ScoreContext<'lazy, 'sb, 'ast, 'ctx> where
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
fn typeck_node(&self, id: I, expected: &'ctx Ty) -> Result<()>
Auto Trait Implementations
impl<'lazy, 'sb, 'ast, 'ctx> !RefUnwindSafe for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> !Send for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> !Sync for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
impl<'lazy, 'sb, 'ast, 'ctx> Unpin for ScoreContext<'lazy, 'sb, 'ast, 'ctx> where
'ast: 'lazy + 'sb,
'ctx: 'lazy + 'sb,
'sb: 'lazy,
impl<'lazy, 'sb, 'ast, 'ctx> !UnwindSafe for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more