nitc :: ModelDiamond :: defaultinit
# A standalone model with the common class diamond-hierarchy ABCD
class ModelDiamond
super ModelStandalone
# A, a simple subclass of Object
var mclass_a = new MClass(mmodule0, "A", location, null, concrete_kind, public_visibility)
# The introduction of `mclass_a`
var mclassdef_a: MClassDef do
var res = new MClassDef(mmodule0, mclass_a.mclass_type, location)
res.set_supertypes([mclass_o.mclass_type])
res.add_in_hierarchy
return res
end
# B, a subclass of A (`mclass_a`)
var mclass_b = new MClass(mmodule0, "B", location, null, concrete_kind, public_visibility)
# The introduction of `mclass_b`
var mclassdef_b: MClassDef do
var res = new MClassDef(mmodule0, mclass_b.mclass_type, location)
res.set_supertypes([mclass_a.mclass_type])
res.add_in_hierarchy
return res
end
# C, another subclass of A (`mclass_a`)
var mclass_c = new MClass(mmodule0, "C", location, null, concrete_kind, public_visibility)
# The introduction of `mclass_c`
var mclassdef_c: MClassDef do
var res = new MClassDef(mmodule0, mclass_c.mclass_type, location)
res.set_supertypes([mclass_a.mclass_type])
res.add_in_hierarchy
return res
end
# D, a multiple subclass of B (`mclass_b`) and C (`mclass_c`)
var mclass_d = new MClass(mmodule0, "D", location, null, concrete_kind, public_visibility)
# The introduction of `mclass_d`
var mclassdef_d: MClassDef do
var res = new MClassDef(mmodule0, mclass_d.mclass_type, location)
res.set_supertypes([mclass_b.mclass_type, mclass_c.mclass_type])
res.add_in_hierarchy
return res
end
end
src/model/model.nit:2798,1--2845,3