= Compile Time Trace = Emit diagnostic information for the given expression showing the expression state at various stages of its compilation. Mostly only of use for compiler development. Currently this information is - expression state before binding to implementation. - expression state after bind imp - definition of the expression - Type of the expression This can be used to see what intermediate definition and Type the compiler is generating for an expression. == Grammar == {{{ #!cobra ct_trace }}} == Example == {{{ #!cobra x = nil ct_trace x ... }}} generates output like {{{ * Compile-time trace at Token(ID, 'ct_trace', 'ct_trace', ln 14, col 3, dec.cobra) * before bind imp on expression: x = IdentifierExpr-sh(6682, didBindInh=false, didBindInt=false, didBindImp=false, token=Token(ID, 'x', 'x', ln 14, col 12,dec.cobra), name=x, type=nil, 6682) * after bind imp on expression: x = IdentifierExpr-sh(6682, didBindInh=false, didBindInt=false, didStartBindImp=true, didBindImp=true, token=Token(ID, 'x', 'x', ln 14, col 12, dec.cobra), name=x, type=NilableType-mi(15870, didStartBindInh=true, didBindInh=true, didStartBindInt=true, didBindInt=true, didBindImp=false, 15870), definition=LocalVar-mi(15871, name=x, didStartBindInh=true, didBindInh=true, didStartBindInt=true, didBindInt=true, didStartBindImp=true, didBindImp=true, token=Token(ID, 'x', 'x', ln 13, col 3, dec.cobra), isTracked=true, isTracked=true, 15871), 6682) * definition = LocalVar(15871, "x" (ID), x, dynamic?) * type = NilableType-sh(15870, didStartBindInh=true, didBindInh=true, didStartBindInt=true, didBindInt=true, didBindImp=false, wrappedType=DynamicType-mi(9750, didStartBindInh=true, didBindInh=true, didStartBindInt=true, didBindInt=true, didBindImp=false, 9750), 15870) }}}