Try to compile self as a statement

Do not call this method directly, use v.stmt instead

Property definitions

nitc :: java_compiler $ AExpr :: stmt
	# Try to compile self as a statement
	# Do not call this method directly, use `v.stmt` instead
	private fun stmt(v: JavaCompilerVisitor) do expr(v)
src/compiler/java_compiler.nit:1911,2--1913,52

nitc :: java_compiler $ ABlockExpr :: stmt
	redef fun stmt(v)
	do
		for e in self.n_expr do v.stmt(e)
	end
src/compiler/java_compiler.nit:1917,2--1920,4

nitc :: java_compiler $ AVardeclExpr :: stmt
	redef fun stmt(v) do
		var variable = self.variable.as(not null)
		var ne = self.n_expr
		var decl = v.variable(variable)
		if ne != null then
			var i = v.expr(ne, variable.declared_type)
			v.assign(decl, i)
		end
	end
src/compiler/java_compiler.nit:2126,2--2134,4

nitc :: java_compiler $ AAbortExpr :: stmt
	redef fun stmt(v) do v.add_abort("Aborted")
src/compiler/java_compiler.nit:2301,2--44

nitc :: java_compiler $ AIfExpr :: stmt
	redef fun stmt(v) do
		var cond = v.expr_bool(self.n_expr)
		v.add("if ({cond})\{")
		v.stmt(self.n_then)
		v.add("\} else \{")
		v.stmt(self.n_else)
		v.add("\}")
	end
src/compiler/java_compiler.nit:2066,2--2073,4

nitc :: java_compiler $ AAssertExpr :: stmt
	redef fun stmt(v) do
		var cond = v.expr_bool(self.n_expr)
		v.add("if (!{cond}) \{")
		v.stmt(self.n_else)
		var nid = self.n_id
		if nid != null then
			v.add_abort("Assert '{nid.text}' failed")
		else
			v.add_abort("Assert failed")
		end
		v.add("\}")
	end
src/compiler/java_compiler.nit:2154,2--2165,4

nitc :: java_compiler $ ADebugTypeExpr :: stmt
	redef fun stmt(v) do end
src/compiler/java_compiler.nit:2305,2--25

nitc :: java_compiler $ AEscapeExpr :: stmt
	redef fun stmt(v) do v.add("break BREAK_{v.escapemark_name(escapemark)};")
src/compiler/java_compiler.nit:2122,2--75

nitc :: java_compiler $ AAttrReassignExpr :: stmt
	redef fun stmt(v) do
		var recv = v.expr(self.n_expr, null)
		var value = v.expr(self.n_value, null)
		var mproperty = self.mproperty.as(not null)
		var attr = v.read_attribute(mproperty, recv)
		var res = v.compile_callsite(self.reassign_callsite.as(not null), [attr, value])
		assert res != null
		v.write_attribute(mproperty, recv, res)
	end
src/compiler/java_compiler.nit:2033,2--2041,4

nitc :: java_compiler $ AReturnExpr :: stmt
	redef fun stmt(v) do
		var nexpr = self.n_expr
		var frame = v.frame
		assert frame != null
		if nexpr != null then
			v.ret(v.expr(nexpr, frame.returnvar.as(not null).mtype))
		else
			v.ret(v.null_instance)
		end
	end
src/compiler/java_compiler.nit:2053,2--2062,4

nitc :: java_compiler $ ADoExpr :: stmt
	redef fun stmt(v)
	do
		v.add_escape_label(break_mark)
		v.add "\{"
		v.stmt(self.n_block)
		v.add "\}"
	end
src/compiler/java_compiler.nit:2088,2--2094,4

nitc :: java_compiler $ AWhileExpr :: stmt
	redef fun stmt(v)
	do
		v.add_escape_label(break_mark)
		v.add_escape_label(continue_mark)
		v.add("for(;;) \{")
		var cond = v.expr_bool(self.n_expr)
		v.add("if (!{cond}) break;")
		v.stmt(self.n_block)
		v.add("\}")
	end
src/compiler/java_compiler.nit:2098,2--2107,4

nitc :: java_compiler $ ALoopExpr :: stmt
	redef fun stmt(v)
	do
		v.add_escape_label(break_mark)
		v.add_escape_label(continue_mark)
		v.add("for(;;) \{")
		v.stmt(self.n_block)
		v.add("\}")
	end
src/compiler/java_compiler.nit:2111,2--2118,4