end
redef class MClass
- fun is_user_defined: Bool do
- return self.intro_mmodule.is_user_defined
+ # is the class imported from standard lib?
+ fun is_standard: Bool do
+ return self.intro_mmodule.mgroup.mproject.name == "standard"
end
end
redef class MModule
- fun is_user_defined: Bool do
- return not self.model.std_modules.has(self.name)
+ # is the module imported from standard lib?
+ fun is_standard: Bool do
+ return self.mgroup.mproject.name == "standard"
end
end
private var nlvt: Int = 0
private var nlct: Int = 0
- private fun is_user_defined: Bool do
+ private fun is_standard: Bool do
var mtype = self
if mtype isa MNullableType then mtype = mtype.mtype
- return self.as(MClassType).mclass.is_user_defined
+ return self.as(MClassType).mclass.is_standard
end
private fun get_depth: Int do
mtype.mclass.nlvt += 1
mtype.mclass.live_types.add(mtype)
if mtype isa MGenericType then nlvtg += 1
- if mtype.is_user_defined then
+ if not mtype.is_standard then
nlvtudud += 1
if mtype isa MGenericType then nlvtgudud += 1
else
mtype.mclass.nlct += 1
mtype.mclass.cast_types.add(mtype)
if mtype isa MGenericType then nlctg += 1
- if mtype.is_user_defined then
+ if not mtype.is_standard then
nlctudud += 1
if mtype isa MGenericType then nlctgudud += 1
else
for mtype in mtypes do
var arity = 0
if mtype isa MGenericType then arity = mtype.arguments.length
- if mtype.is_user_defined then
+ if not mtype.is_standard then
udscalarCSV.add_line(mtype, arity, mtype.get_depth, mtype.nlvt, mtype.nlct)
end
scalarCSV.add_line(mtype, arity, mtype.get_depth, mtype.nlvt, mtype.nlct)
for mclass in modelbuilder.model.mclasses do
if not mclass.is_class or mclass.is_abstract then continue
- if mclass.is_user_defined then
+ if not mclass.is_standard then
udscalarCSV.add_line(mclass.mclass_type, mclass.arity, mclass.live_types.length, mclass.nlvt)
end
scalarCSV.add_line(mclass.mclass_type, mclass.arity, mclass.live_types.length, mclass.nlvt)