Compute all the classdefs inherited/imported.

The returned set contains:

  • the class definitions from mmodule and its imported modules
  • the class definitions of this type and its super-types

This function is used mainly internally.

REQUIRE: not self.need_anchor

Property definitions

nitc $ MType :: collect_mclassdefs
	# Compute all the classdefs inherited/imported.
	# The returned set contains:
	#  * the class definitions from `mmodule` and its imported modules
	#  * the class definitions of this type and its super-types
	#
	# This function is used mainly internally.
	#
	# REQUIRE: `not self.need_anchor`
	fun collect_mclassdefs(mmodule: MModule): Set[MClassDef] is abstract
src/model/model.nit:1252,2--1260,69

nitc $ MClassType :: collect_mclassdefs
	redef fun collect_mclassdefs(mmodule)
	do
		assert not self.need_anchor
		var cache = self.collect_mclassdefs_cache
		if not cache.has_key(mmodule) then
			self.collect_things(mmodule)
		end
		return cache[mmodule]
	end
src/model/model.nit:1322,2--1330,4

nitc $ MProxyType :: collect_mclassdefs
	redef fun collect_mclassdefs(mmodule)
	do
		assert not self.need_anchor
		return self.mtype.collect_mclassdefs(mmodule)
	end
src/model/model.nit:1811,2--1815,4

nitc $ MNullType :: collect_mclassdefs
	redef fun collect_mclassdefs(mmodule) do return new HashSet[MClassDef]
src/model/model.nit:1906,2--71

nitc $ MBottomType :: collect_mclassdefs
	redef fun collect_mclassdefs(mmodule) do return new HashSet[MClassDef]
src/model/model.nit:1932,2--71

nitc $ MErrorType :: collect_mclassdefs
	redef fun collect_mclassdefs(mmodule) do return new HashSet[MClassDef]
src/model/model.nit:1957,2--71

nitc $ MInitType :: collect_mclassdefs
	redef fun collect_mclassdefs(mmodule) do return new HashSet[MClassDef]
src/vm/virtual_machine.nit:903,2--71

nitc $ MRawType :: collect_mclassdefs
	redef fun collect_mclassdefs(mmodule) do
		not_available
		return new HashSet[MClassDef]
	end
src/doc/model_ext.nit:48,2--51,4