Apply a ReachingDefsAnalysis to self.

Property definitions

nitc :: reaching_defs $ ANode :: accept_reaching_defs
	# Apply a ReachingDefsAnalysis to `self`.
	fun accept_reaching_defs(v: ReachingDefsAnalysis) do accept_forward_analysis(v)
src/saf/reaching_defs.nit:71,2--72,80

nitc :: reaching_defs $ AVardeclExpr :: accept_reaching_defs
	redef fun accept_reaching_defs(v) do
		super
		v.kill(variable.as(not null))
		v.gen(variable.as(not null), location)
	end
src/saf/reaching_defs.nit:76,2--80,4

nitc :: reaching_defs $ AVarAssignExpr :: accept_reaching_defs
	redef fun accept_reaching_defs(v) do
		super
		v.kill(variable.as(not null))
		v.gen(variable.as(not null), location)
	end
src/saf/reaching_defs.nit:84,2--88,4

nitc :: reaching_defs $ AVarReassignExpr :: accept_reaching_defs
	redef fun accept_reaching_defs(v) do
		super
		v.kill(variable.as(not null))
		v.gen(variable.as(not null), location)
	end
src/saf/reaching_defs.nit:92,2--96,4

nitc :: reaching_defs $ AForExpr :: accept_reaching_defs
	redef fun accept_reaching_defs(v) do
		# add variables from `for` declaration
		for n_group in n_groups do
			var variables = n_group.variables
			if variables == null then continue
			for variable in variables do v.gen(variable, n_group.location)
		end
		super
		# remove variables from `for` declaration
		for n_group in n_groups do
			var variables = n_group.variables
			if variables == null then continue
			for variable in variables do v.kill(variable)
		end
	end
src/saf/reaching_defs.nit:100,2--114,4