nitc :: AbstractCompilerVisitor :: stmt
# Compile a statement (if any)
fun stmt(nexpr: nullable AExpr)
do
if nexpr == null then return
if nexpr.is_broken then
# Untyped expression.
# Might mean dead code or invalid code
# so aborts
add_abort("FATAL: bad statement executed.")
return
end
var narray = nexpr.comprehension
if narray != null then
var recv = frame.comprehension.as(not null)
var val = expr(nexpr, narray.element_mtype)
compile_callsite(narray.push_callsite.as(not null), [recv, val])
return
end
var old = self.current_node
self.current_node = nexpr
nexpr.stmt(self)
self.current_node = old
end
src/compiler/abstract_compiler.nit:1975,2--1999,4