/// Obtain the HIR of a node, generating it if needed. Returns an error if
/// the HIR cannot be generated.
Obtain the HIR of a node, generating it if needed. Returns an error if
the HIR cannot be generated.
Obtain the HIR of a node generating it if needed . Returns an error if the HIR cannot be generated .
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,
    {
        if let Some(&node) = self.sb.hir_table.borrow().get(&id) {
            return Ok(node);
        }
        if self.sess.opts.trace_scoreboard {
            debugln!("[SB][VHDL] make hir for {:?}", id);
        }
        let node = self.make(id)?;
        if self.sess.opts.trace_scoreboard {
            debugln!("[SB][VHDL] hir for {:?} is {:?}", id, node);
        }
        self.set_hir(id, node);
        Ok(node)
    }
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 , { if let Some ( & node ) = self . sb . hir_table . borrow ( ) . get ( & id ) { return Ok ( node ) ; } if self . sess . opts . trace_scoreboard { debugln ! ( " " id ) ; } let node = self . make ( id ) ? ; if self . sess . opts . trace_scoreboard { debugln ! ( " " id node ) ; } self . set_hir ( id , node ) ; Ok ( node ) }
Obtain the HIR of a node, generating it if needed.
Obtain the HIR of a node generating it if needed .
&self
id
I