Property definitions

nitc :: scope $ ANode :: accept_scope_visitor
	private fun accept_scope_visitor(v: ScopeVisitor)
	do
		visit_all(v)
	end
src/semantize/scope.nit:247,2--250,4

nitc :: scope $ AParam :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		if variable != null then
			v.register_variable(self.n_id, variable.as(not null))
			return
		end

		super
		var nid = self.n_id
		var variable = new Variable(nid.text)
		v.register_variable(nid, variable)
		self.variable = variable
	end
src/semantize/scope.nit:269,2--281,4

nitc :: scope $ AVardeclExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		super
		var nid = self.n_id
		var variable = new Variable(nid.text)
		v.register_variable(nid, variable)
		variable.warn_unread = true # wait for some read mark.
		self.variable = variable
	end
src/semantize/scope.nit:287,2--295,4

nitc :: scope $ ASelfExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		super
		self.variable = v.selfvariable
	end
src/semantize/scope.nit:301,2--305,4

nitc :: scope $ AIfExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		v.enter_visit(n_expr)
		v.enter_visit_block(n_then, null)
		v.enter_visit_block(n_else, null)
	end
src/semantize/scope.nit:369,2--374,4

nitc :: scope $ AAssertExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		v.enter_visit(n_expr)
		v.enter_visit_block(n_else, null)
	end
src/semantize/scope.nit:470,2--474,4

nitc :: scope $ ALambdaExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		# TODO
		return
	end
src/semantize/scope.nit:533,2--537,4

nitc :: scope $ AWithExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		v.scopes.unshift(new Scope)

		var escapemark = v.make_escape_mark(n_label, true)
		self.break_mark = escapemark

		v.enter_visit(n_expr)
		v.enter_visit_block(n_block, escapemark)

		v.shift_scope
	end
src/semantize/scope.nit:455,2--466,4

nitc :: scope $ ACallFormExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		if n_expr isa AImplicitSelfExpr then
			var name = n_qid.n_id.text
			var variable = v.search_variable(name)
			if variable != null then
				var n: AExpr
				if not n_args.n_exprs.is_empty or n_args isa AParExprs or self isa ACallrefExpr then
					v.error(self, "Error: `{name}` is a variable, not a method.")
					return
				end
				n = variable_create(variable)
				n.variable = variable
				replace_with(n)
				n.accept_scope_visitor(v)
				return
			end
		end

		super
	end
src/semantize/scope.nit:483,2--503,4

nitc :: scope $ AReturnExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		super

		var escapemark = v.propdef.return_mark
		if escapemark == null then
			escapemark = new EscapeMark
			v.propdef.return_mark = escapemark
		end

		escapemark.escapes.add(self)
		self.escapemark = escapemark
	end
src/semantize/scope.nit:341,2--353,4

nitc :: scope $ ABreakExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		super
		var escapemark = v.get_escapemark(self, self.n_label)
		if escapemark == null then return # Skip error
		escapemark.escapes.add(self)
		self.escapemark = escapemark
	end
src/semantize/scope.nit:330,2--337,4

nitc :: scope $ AContinueExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		super
		var escapemark = v.get_escapemark(self, self.n_label)
		if escapemark == null then return # Skip error
		escapemark = escapemark.continue_mark
		if escapemark == null then
			v.error(self, "Error: cannot 'continue', only 'break'.")
			return
		end
		escapemark.escapes.add(self)
		self.escapemark = escapemark
	end
src/semantize/scope.nit:314,2--326,4

nitc :: scope $ AWhileExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		var escapemark = v.make_escape_mark(n_label, true)
		self.break_mark = escapemark
		self.continue_mark = escapemark.continue_mark
		v.enter_visit(n_expr)
		v.enter_visit_block(n_block, escapemark)
	end
src/semantize/scope.nit:384,2--391,4

nitc :: scope $ ALoopExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		var escapemark = v.make_escape_mark(n_label, true)
		self.break_mark = escapemark
		self.continue_mark = escapemark.continue_mark
		v.enter_visit_block(n_block, escapemark)
	end
src/semantize/scope.nit:401,2--407,4

nitc :: scope $ AForExpr :: accept_scope_visitor
	redef fun accept_scope_visitor(v)
	do
		for g in n_groups do
			v.enter_visit(g.n_expr)
		end

		# Protect automatic variables
		v.scopes.unshift(new Scope)

		for g in n_groups do
			# Create the automatic variables
			var variables = new Array[Variable]
			g.variables = variables
			for nid in g.n_ids do
				var va = new Variable(nid.text)
				v.register_variable(nid, va)
				variables.add(va)
			end
		end

		var escapemark = v.make_escape_mark(n_label, true)
		self.break_mark = escapemark
		self.continue_mark = escapemark.continue_mark
		v.enter_visit_block(n_block, escapemark)

		v.shift_scope
	end
src/semantize/scope.nit:417,2--443,4