[][src]Struct moore_vhdl::score::ScoreContext

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>,
}

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

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn unpack_expr(
    &self,
    ast: &'ast Expr,
    scope_id: ScopeRef
) -> Result<ExprRef>
[src]

Unpack an AST expression.

pub fn unpack_subtype_ind(
    &self,
    ast: &'ast SubtypeInd,
    scope_id: ScopeRef
) -> Result<SubtypeIndRef>
[src]

Unpack an AST subtype indication.

pub fn unpack_type_mark(
    &self,
    ast: LatentName<'ast>,
    scope_id: ScopeRef
) -> Result<Spanned<LatentTypeMarkRef>>
[src]

Unpack a compound name as a type mark.

pub fn unpack_package_name(
    &self,
    ast: LatentName<'ast>,
    scope_id: ScopeRef
) -> Result<Spanned<LatentPkgRef>>
[src]

Unpack a compound name as a package name.

pub fn unpack_subprog_name(
    &self,
    ast: LatentName<'ast>,
    scope_id: ScopeRef
) -> Result<Spanned<LatentSubprogRef>>
[src]

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>>
[src]

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>>
[src]

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>>
[src]

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>>
[src]

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>>
[src]

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>
[src]

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>>
[src]

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>
[src]

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.

pub fn unpack_cond_waveforms(
    &self,
    _scope_id: ScopeRef,
    waves: &'ast [CondWave],
    _tyctx: &TypeCtx<'ctx>
) -> Result<Cond<Waveform>>
[src]

Unpack the the waves of a simple wave assignment.

pub fn unpack_waveform(
    &self,
    scope_id: ScopeRef,
    wave: &'ast Wave,
    tyctx: &TypeCtx<'ctx>
) -> Result<Waveform>
[src]

Unpack a single waveform.

See IEEE 1076-2008 section 10.5.2.

pub fn sanitize_paren_elems_as_exprs(
    &self,
    elems: &'ast [ParenElem],
    context: &str
) -> Vec<&'ast Expr>

Notable traits for Vec<u8, Global>

impl Write for Vec<u8, Global>
[src]

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>
[src]

Lower an AST subprogram specification to HIR.

pub fn lower_subprog_name(
    &self,
    kind: SubprogKind,
    name: &'ast PrimaryName
) -> Result<Spanned<ResolvableName>>
[src]

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<()>
[src]

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<()>>
[src]

Unpack a generic map from a parenthesized list of elements.

See IEEE 1076-2008 section 6.5.7.2.

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn make_ctx_items_scope(
    &self,
    id: CtxItemsRef,
    parent: Option<ScopeRef>
) -> Result<CtxItemsRef>
[src]

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn add_library(&self, name: Name, id: LibRef, lib: Vec<&'ast DesignUnit>)[src]

Add a library of AST nodes. This function is called by the global scoreboard to add VHDL-specific AST nodes.

pub fn span<I>(&self, id: I) -> Option<Span> where
    I: Into<NodeId>, 
[src]

Obtain the span associated with a node ID.

pub fn set_span<I>(&self, id: I, span: Span) where
    I: Into<NodeId>, 
[src]

Associate a span with a node ID.

pub fn bug<I>(&self, id: I, msg: String) where
    I: Into<NodeId>, 
[src]

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
[src]

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>, 
[src]

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
[src]

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>, 
[src]

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
[src]

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 Fn(&'a ScoreContext<'b, 'sb, 'ast, 'ctx>) -> Result<R> + 'sb>>>,
    HirTable<'ctx>: NodeStorage<I, Node = &'ctx R>,
    Arenas: Alloc<'ctx, 'ctx, R>, 
[src]

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>[src]

pub fn archs(&self, id: LibRef) -> Result<&'ctx ArchTable>[src]

pub fn lldecl<I>(&self, id: I) -> Result<Value> where
    I: 'ctx + Copy + Debug + Into<NodeId>,
    ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DeclValueRef>, 
[src]

pub fn lldef<I>(&self, id: I) -> Result<Value> where
    I: 'ctx + Copy + Debug + Into<NodeId>,
    ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DefValueRef>, 
[src]

pub fn llunit<I>(&self, id: I) -> Result<UnitId> where
    I: 'ctx + Copy + Debug + Into<NodeId>,
    ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, UnitId>, 
[src]

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>, 
[src]

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.

pub fn lazy_typeck<I>(&self, id: I) -> Result<()> where
    I: Into<NodeId>, 
[src]

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.

pub fn lazy_typeval<I>(&self, id: I) -> Result<&'ctx Ty> where
    I: Into<NodeId>, 
[src]

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>[src]

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>, 
[src]

pub fn type_context<I>(&self, id: I) -> Option<TypeCtx<'ctx>> where
    I: Copy + Debug + Into<NodeId>, 
[src]

Obtain the type context for an expression.

Returns None if no context information is available.

pub fn type_context_resolved<I>(&self, id: I) -> Result<Option<&'ctx Ty>> where
    I: Copy + Debug + Into<NodeId>, 
[src]

Obtain the type indicated by the type context for an expression.

Returns None if no context information is available.

pub fn set_type_context<I, T>(&self, id: I, tyctx: T) where
    I: Copy + Debug + Into<NodeId>,
    TypeCtx<'ctx>: From<T>, 
[src]

Store a type context for an expression.

Upon type checking, the expression is likely to consult this context to determine its type.

pub fn set_type_context_optional<I, T>(&self, id: Option<I>, tyctx: T) where
    I: Copy + Debug + Into<NodeId>,
    TypeCtx<'ctx>: From<T>, 
[src]

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().

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn resolvable_from_primary_name(
    &self,
    primary: &PrimaryName
) -> Result<Spanned<ResolvableName>>
[src]

Convert a primary name as it is present in the AST to a resolvable name that can be defined and resolved in a scope.

pub fn resolve_name(
    &self,
    name: Spanned<ResolvableName>,
    scope_id: ScopeRef,
    only_defs: bool,
    allow_fail: bool
) -> Result<Vec<Spanned<Def>>>
[src]

Resolve a name within a scope. Traverses to the parent scopes if nothing matching the name is found.

pub fn resolve_compound_name<'a>(
    &self,
    name: &'a CompoundName,
    scope_id: ScopeRef,
    only_defs: bool
) -> Result<(ResolvableName, Vec<Spanned<Def>>, Span, &'a [NamePart])>
[src]

Resolve a compound name within a scope.

pub fn builtin_boolean_type(&self) -> &'ctx Ty[src]

Get the builtin type standard.boolean.

pub fn builtin_time_type(&self) -> &'ctx Ty[src]

Get the builtin type standard.time.

pub fn builtin_string_type(&self) -> &'ctx Ty[src]

Get the builtin type standard.string.

pub fn builtin_severity_type(&self) -> &'ctx Ty[src]

Get the builtin type standard.severity.

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn default_value_for_type(&self, ty: &Ty) -> Result<&'ctx Const>[src]

Calculate the implicit default value for a type.

pub fn intern_const<T>(&self, konst: T) -> &'ctx Const where
    T: Into<Const>, 
[src]

Internalize a constant.

See ScoreBoard::intern_const.

pub fn intern_ty<T>(&self, ty: T) -> &'ctx Ty where
    T: Into<Ty>, 
[src]

Internalize a type.

See ScoreBoard::intern_ty.

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn map_type(&self, ty: &Ty) -> Result<Type>[src]

Map a VHDL type to the corresponding LLHD type.

pub fn map_const(
    &self,
    builder: &mut UnitBuilder<'_>,
    konst: &Const
) -> Result<Value>
[src]

Map a constant value to the LLHD counterpart.

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn with_scope<F, R>(&self, scope: ScopeRef, f: F) -> Result<R> where
    F: FnOnce(&mut Scope) -> Result<R>, 
[src]

Lookup a scope and perform an operation on it.

pub fn subscope(&self, scope: ScopeRef, parent: ScopeRef)[src]

Create a subscope of another scope.

pub fn define(
    &self,
    scope: ScopeRef,
    name: Spanned<ResolvableName>,
    def: Def
) -> Result<()>
[src]

Define a new name in a scope.

pub fn import_def(
    &self,
    scope: ScopeRef,
    name: Spanned<ResolvableName>,
    def: Def
) -> Result<()>
[src]

Import a definition into a scope.

pub fn import_scope(&self, scope: ScopeRef, into: ScopeRef) -> Result<()>[src]

Import an entire scope into another scope.

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn deref_named_type<'a>(&self, ty: &'a Ty) -> Result<&'a Ty> where
    'ctx: 'a, 
[src]

Replace Ty::Named by the actual type definition recursively.

impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

pub fn make_range_ty(
    &self,
    dir: Dir,
    lb_id: ExprRef,
    rb_id: ExprRef,
    span: Span
) -> Result<&'ctx Ty>
[src]

Trait Implementations

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<BlockStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CaseGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompInstStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcAssertStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcCallStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcSigAssignStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConstDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<DeclInBlockRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<FileDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ForGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<IfGenStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ProcessStmtRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx, 'a> Codegen<SeqStmtRef, UnitBuilder<'a>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SignalDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Codegen<VarDeclRef, UnitBuilder<'_>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> DiagEmitter for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Arch> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, DeclValueRef> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, UnitId> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArrayTypeIndexRef, &'ctx Spanned<ArrayTypeIndex>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ExprRef, &'ctx Const> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfConstRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfFileRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfObjRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx IntfSignal> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfVarRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LatentTypeMarkRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LatentTypeMarkRef, Spanned<TypeMarkRef>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx ArchTable> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Lib> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx PackageBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Package> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgInstRef, &'ctx PackageInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx ProcessStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SigAssignStmtRef, &'ctx SigAssignStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx SubprogBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx HashMap<ResolvableName, Vec<Spanned<Def>, Global>, RandomState>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Subprog> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogInstRef, &'ctx SubprogInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx SubtypeDecl> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeIndRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeMarkRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypedNodeRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

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>, 
[src]

Auto Trait Implementations

impl<'lazy, 'sb, 'ast, 'ctx> !RefUnwindSafe for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> !Send for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> !Sync for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

impl<'lazy, 'sb, 'ast, 'ctx> Unpin for ScoreContext<'lazy, 'sb, 'ast, 'ctx> where
    'ast: 'sb + 'lazy,
    'ctx: 'sb + 'lazy,
    'sb: 'lazy, 
[src]

impl<'lazy, 'sb, 'ast, 'ctx> !UnwindSafe for ScoreContext<'lazy, 'sb, 'ast, 'ctx>[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.