Struct moore_vhdl::typeck::TypeckContext [] [src]

pub struct TypeckContext<'sbc, 'lazy: 'sbc, 'sb: 'lazy, 'ast: 'sb, 'ctx: 'sb> {
    pub ctx: &'sbc ScoreContext<'lazy, 'sb, 'ast, 'ctx>,
    // some fields omitted
}

A context to typecheck things in.

This context helps checking the types of things and keeping track of errors.

Fields

The parent context.

Methods

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

[src]

Create a new type checking context.

[src]

Consume the context and return the result of the typeck.

[src]

Emit a diagnostic message.

[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.

[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.

[src]

Type check the time expression in a delay mechanism.

[src]

Type check a waveform.

[src]

Type check a waveform element.

[src]

Type check a subprogram specification.

[src]

Type check any node that can have its type calculated.

[src]

Type check a slice of nodes.

[src]

Apply a range constraint to a type.

[src]

Apply an array constraint to a type.

[src]

Apply a record constraint to a type.

[src]

Apply an index constraint to an array index.

[src]

Impose a subtype on a type.

[src]

Evaluate a discrete range as a type.

[src]

Evaluate a range as a type.

Trait Implementations

impl<'sbc, 'lazy: 'sbc, 'sb: 'lazy, 'ast: 'sb, 'ctx: 'sb, I> Typeck<I> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx> where
    ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>, 
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<LibRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<PkgDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<PkgBodyRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<PkgInstRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<CtxRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<CfgRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<EntityRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ArchRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<GenericRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<IntfTypeRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<IntfSubprogRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<IntfPkgRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<DeclInPkgRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<DeclInPkgBodyRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<DeclInSubprogRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<DeclInBlockRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<DeclInProcRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ConcStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<SeqStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<SubprogDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<SubprogBodyRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<SubprogInstRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ConstDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<SignalDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<VarDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<FileDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<AliasDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<CompDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<AttrDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<AttrSpecRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<CfgSpecRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<DisconSpecRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<GroupTempRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<GroupDeclRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<BlockStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ProcessStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ConcCallStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ConcAssertStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ConcSigAssignStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<CompInstStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<ForGenStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<IfGenStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<CaseGenStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]

[src]

impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> Typeck<SigAssignStmtRef> for TypeckContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]