json
packageimport json
var hierarchy = class_inheritance_metamodel
assert hierarchy.has_edge("String", "Object")
assert not hierarchy.has_edge("Object", "String")
# Class inheritance graph, implemented by the `json` package
#
# ~~~
# import json
#
# var hierarchy = class_inheritance_metamodel
# assert hierarchy.has_edge("String", "Object")
# assert not hierarchy.has_edge("Object", "String")
# ~~~
fun class_inheritance_metamodel: POSet[String] is abstract
lib/serialization/safe.nit:87,2--96,59
redef var class_inheritance_metamodel is lazy do
var engine = new JsonDeserializer(class_inheritance_metamodel_json.to_s)
engine.check_subtypes = false
engine.whitelist.add_all(
["String", "POSet[String]", "POSetElement[String]",
"HashSet[String]", "HashMap[String, POSetElement[String]]"])
var poset = engine.deserialize
if engine.errors.not_empty then
print_error "Deserialization errors in class_inheritance_metamodel:"
print_error engine.errors.join("\n* ")
return new POSet[String]
end
if poset isa POSet[String] then return poset
return new POSet[String]
end
lib/json/serialization_read.nit:512,2--528,4