Allocate and init attributes of an instance of a standard or extern class

Does not support universals and the pseudo-internal NativeArray class.

Property definitions

nitc $ AbstractCompilerVisitor :: init_instance_or_extern
	# Allocate and init attributes of an instance of a standard or extern class
	#
	# Does not support universals and the pseudo-internal `NativeArray` class.
	fun init_instance_or_extern(mtype: MClassType): RuntimeVariable
	do
		var recv
		var ctype = mtype.ctype
		assert mtype.mclass.name != "NativeArray"
		if not mtype.is_c_primitive then
			recv = init_instance(mtype)
		else if ctype == "char*" then
			recv = new_expr("NULL/*special!*/", mtype)
		else
			recv = new_expr("({ctype})0/*special!*/", mtype)
		end
		return recv
	end
src/compiler/abstract_compiler.nit:1672,2--1688,4