model: add nitunit for model_json
[nit.git] / src / model / test_model_json.sav / test_classdefs_to_full_json.res
diff --git a/src/model/test_model_json.sav/test_classdefs_to_full_json.res b/src/model/test_model_json.sav/test_classdefs_to_full_json.res
new file mode 100644 (file)
index 0000000..2dd320b
--- /dev/null
@@ -0,0 +1,1376 @@
+{
+       "name": "Object",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Object",
+       "mdoc": {
+               "content": "Root of everything.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 21,
+                       "line_start": 20,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "interface"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 30,
+               "line_start": 20,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::platform"
+       },
+       "mclass": {
+               "full_name": "test_prog::Object"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Object$OTHER"
+       }, {
+               "full_name": "test_prog$Object$=="
+       }, {
+               "full_name": "test_prog$Object$!="
+       }, {
+               "full_name": "test_prog$Object$init"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Object::OTHER"
+       }, {
+               "full_name": "test_prog::Object::=="
+       }, {
+               "full_name": "test_prog::Object::!="
+       }, {
+               "full_name": "test_prog::Object::init"
+       }],
+       "intro": {
+               "full_name": "test_prog$Object"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Object$OTHER"
+       }, {
+               "full_name": "test_prog$Object$=="
+       }, {
+               "full_name": "test_prog$Object$!="
+       }, {
+               "full_name": "test_prog$Object$init"
+       }],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Int",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Int",
+       "mdoc": {
+               "content": "Some services about Integers.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 33,
+                       "line_start": 32,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 41,
+               "line_start": 32,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::platform"
+       },
+       "mclass": {
+               "full_name": "test_prog::Int"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Int$unary -"
+       }, {
+               "full_name": "test_prog$Int$+"
+       }, {
+               "full_name": "test_prog$Int$-"
+       }, {
+               "full_name": "test_prog$Int$*"
+       }, {
+               "full_name": "test_prog$Int$/"
+       }, {
+               "full_name": "test_prog$Int$>"
+       }, {
+               "full_name": "test_prog$Int$to_f"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Int::unary -"
+       }, {
+               "full_name": "test_prog::Int::+"
+       }, {
+               "full_name": "test_prog::Int::-"
+       }, {
+               "full_name": "test_prog::Int::*"
+       }, {
+               "full_name": "test_prog::Int::/"
+       }, {
+               "full_name": "test_prog::Int::>"
+       }, {
+               "full_name": "test_prog::Int::to_f"
+       }],
+       "intro": {
+               "full_name": "test_prog$Int"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Int$unary -"
+       }, {
+               "full_name": "test_prog$Int$+"
+       }, {
+               "full_name": "test_prog$Int$-"
+       }, {
+               "full_name": "test_prog$Int$*"
+       }, {
+               "full_name": "test_prog$Int$/"
+       }, {
+               "full_name": "test_prog$Int$>"
+       }, {
+               "full_name": "test_prog$Int$to_f"
+       }],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Float",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Float",
+       "mdoc": {
+               "content": "Some services about Floats.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 44,
+                       "line_start": 43,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 50,
+               "line_start": 43,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::platform"
+       },
+       "mclass": {
+               "full_name": "test_prog::Float"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Float$+"
+       }, {
+               "full_name": "test_prog$Float$-"
+       }, {
+               "full_name": "test_prog$Float$*"
+       }, {
+               "full_name": "test_prog$Float$/"
+       }, {
+               "full_name": "test_prog$Float$>"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Float::+"
+       }, {
+               "full_name": "test_prog::Float::-"
+       }, {
+               "full_name": "test_prog::Float::*"
+       }, {
+               "full_name": "test_prog::Float::/"
+       }, {
+               "full_name": "test_prog::Float::>"
+       }],
+       "intro": {
+               "full_name": "test_prog$Float"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Float$+"
+       }, {
+               "full_name": "test_prog$Float$-"
+       }, {
+               "full_name": "test_prog$Float$*"
+       }, {
+               "full_name": "test_prog$Float$/"
+       }, {
+               "full_name": "test_prog$Float$>"
+       }],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Bool",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Bool",
+       "mdoc": {
+               "content": "Booleans, `true` or `false`.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 53,
+                       "line_start": 52,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 14,
+               "column_start": 1,
+               "line_end": 53,
+               "line_start": 52,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::platform"
+       },
+       "mclass": {
+               "full_name": "test_prog::Bool"
+       },
+       "mpropdefs": [],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Bool"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": []
+}
+{
+       "name": "String",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$String",
+       "mdoc": {
+               "content": "Strings (there is no chars...).",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 56,
+                       "line_start": 55,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 16,
+               "column_start": 1,
+               "line_end": 56,
+               "line_start": 55,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::platform"
+       },
+       "mclass": {
+               "full_name": "test_prog::String"
+       },
+       "mpropdefs": [],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$String"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": []
+}
+{
+       "name": "List",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$List",
+       "mdoc": {
+               "content": "List of things.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 59,
+                       "line_start": 58,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 17,
+               "column_start": 1,
+               "line_end": 59,
+               "line_start": 58,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [{
+               "name": "E",
+               "rank": 0,
+               "mtype": {
+                       "full_name": "nullable test_prog::Object"
+               }
+       }],
+       "mmodule": {
+               "full_name": "test_prog::platform"
+       },
+       "mclass": {
+               "full_name": "test_prog::List"
+       },
+       "mpropdefs": [],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$List"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Career",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Career",
+       "mdoc": {
+               "content": "A `Career` gives a characteristic bonus or malus to the character.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 30,
+                       "line_start": 29,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "abstract class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 36,
+               "line_start": 29,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::careers"
+       },
+       "mclass": {
+               "full_name": "test_prog::Career"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Career$_strength_bonus"
+       }, {
+               "full_name": "test_prog$Career$strength_bonus"
+       }, {
+               "full_name": "test_prog$Career$strength_bonus="
+       }, {
+               "full_name": "test_prog$Career$_endurance_bonus"
+       }, {
+               "full_name": "test_prog$Career$endurance_bonus"
+       }, {
+               "full_name": "test_prog$Career$endurance_bonus="
+       }, {
+               "full_name": "test_prog$Career$_intelligence_bonus"
+       }, {
+               "full_name": "test_prog$Career$intelligence_bonus"
+       }, {
+               "full_name": "test_prog$Career$intelligence_bonus="
+       }, {
+               "full_name": "test_prog$Career$Object::init"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::careers::Career::_strength_bonus"
+       }, {
+               "full_name": "test_prog::Career::strength_bonus"
+       }, {
+               "full_name": "test_prog::Career::strength_bonus="
+       }, {
+               "full_name": "test_prog::careers::Career::_endurance_bonus"
+       }, {
+               "full_name": "test_prog::Career::endurance_bonus"
+       }, {
+               "full_name": "test_prog::Career::endurance_bonus="
+       }, {
+               "full_name": "test_prog::careers::Career::_intelligence_bonus"
+       }, {
+               "full_name": "test_prog::Career::intelligence_bonus"
+       }, {
+               "full_name": "test_prog::Career::intelligence_bonus="
+       }],
+       "intro": {
+               "full_name": "test_prog$Career"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Career$_strength_bonus"
+       }, {
+               "full_name": "test_prog$Career$strength_bonus"
+       }, {
+               "full_name": "test_prog$Career$strength_bonus="
+       }, {
+               "full_name": "test_prog$Career$_endurance_bonus"
+       }, {
+               "full_name": "test_prog$Career$endurance_bonus"
+       }, {
+               "full_name": "test_prog$Career$endurance_bonus="
+       }, {
+               "full_name": "test_prog$Career$_intelligence_bonus"
+       }, {
+               "full_name": "test_prog$Career$intelligence_bonus"
+       }, {
+               "full_name": "test_prog$Career$intelligence_bonus="
+       }],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Career$Object::init"
+       }]
+}
+{
+       "name": "Warrior",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Warrior",
+       "mdoc": {
+               "content": "Warriors are good for fighting.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 39,
+                       "line_start": 38,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 47,
+               "line_start": 38,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::careers"
+       },
+       "mclass": {
+               "full_name": "test_prog::Warrior"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Warrior$Object::init"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Warrior"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Warrior$Object::init"
+       }]
+}
+{
+       "name": "Magician",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Magician",
+       "mdoc": {
+               "content": "Magicians know magic and how to use it.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 50,
+                       "line_start": 49,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 58,
+               "line_start": 49,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::careers"
+       },
+       "mclass": {
+               "full_name": "test_prog::Magician"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Magician$Object::init"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Magician"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Magician$Object::init"
+       }]
+}
+{
+       "name": "Alcoholic",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Alcoholic",
+       "mdoc": {
+               "content": "Alcoholics are good to nothing escept taking punches.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 61,
+                       "line_start": 60,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 69,
+               "line_start": 60,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::careers"
+       },
+       "mclass": {
+               "full_name": "test_prog::Alcoholic"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Alcoholic$Object::init"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Alcoholic"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Alcoholic$Object::init"
+       }]
+}
+{
+       "name": "Race",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Race",
+       "mdoc": {
+               "content": "Race determines basic characteristics and what the character will be able to do in life.\n\nThese are base characteristics, they cannot be changed\nbut you can add new ones if needed using refinement.\nObjects and spells cannot change those characteristics.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 33,
+                       "line_start": 28,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "abstract class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 45,
+               "line_start": 28,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::races"
+       },
+       "mclass": {
+               "full_name": "test_prog::Race"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Race$_base_strength"
+       }, {
+               "full_name": "test_prog$Race$base_strength"
+       }, {
+               "full_name": "test_prog$Race$base_strength="
+       }, {
+               "full_name": "test_prog$Race$_base_endurance"
+       }, {
+               "full_name": "test_prog$Race$base_endurance"
+       }, {
+               "full_name": "test_prog$Race$base_endurance="
+       }, {
+               "full_name": "test_prog$Race$_base_intelligence"
+       }, {
+               "full_name": "test_prog$Race$base_intelligence"
+       }, {
+               "full_name": "test_prog$Race$base_intelligence="
+       }, {
+               "full_name": "test_prog$Race$Object::init"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::races::Race::_base_strength"
+       }, {
+               "full_name": "test_prog::Race::base_strength"
+       }, {
+               "full_name": "test_prog::Race::base_strength="
+       }, {
+               "full_name": "test_prog::races::Race::_base_endurance"
+       }, {
+               "full_name": "test_prog::Race::base_endurance"
+       }, {
+               "full_name": "test_prog::Race::base_endurance="
+       }, {
+               "full_name": "test_prog::races::Race::_base_intelligence"
+       }, {
+               "full_name": "test_prog::Race::base_intelligence"
+       }, {
+               "full_name": "test_prog::Race::base_intelligence="
+       }],
+       "intro": {
+               "full_name": "test_prog$Race"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Race$_base_strength"
+       }, {
+               "full_name": "test_prog$Race$base_strength"
+       }, {
+               "full_name": "test_prog$Race$base_strength="
+       }, {
+               "full_name": "test_prog$Race$_base_endurance"
+       }, {
+               "full_name": "test_prog$Race$base_endurance"
+       }, {
+               "full_name": "test_prog$Race$base_endurance="
+       }, {
+               "full_name": "test_prog$Race$_base_intelligence"
+       }, {
+               "full_name": "test_prog$Race$base_intelligence"
+       }, {
+               "full_name": "test_prog$Race$base_intelligence="
+       }],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Race$Object::init"
+       }]
+}
+{
+       "name": "Human",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Human",
+       "mdoc": {
+               "content": "Humans are able to do everithing.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 48,
+                       "line_start": 47,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 56,
+               "line_start": 47,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::races"
+       },
+       "mclass": {
+               "full_name": "test_prog::Human"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Human$Object::init"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Human"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Human$Object::init"
+       }]
+}
+{
+       "name": "Dwarf",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Dwarf",
+       "mdoc": {
+               "content": "Dwarves make strong warriors.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 59,
+                       "line_start": 58,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 67,
+               "line_start": 58,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::races"
+       },
+       "mclass": {
+               "full_name": "test_prog::Dwarf"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Dwarf$Object::init"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Dwarf"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Dwarf$Object::init"
+       }]
+}
+{
+       "name": "Dwarf",
+       "class_name": "MClassDef",
+       "full_name": "test_prog::combat$Dwarf",
+       "mdoc": {
+               "content": "Dwarves can be used as weapons.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 62,
+                       "line_start": 61,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["redef", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 67,
+               "line_start": 61,
+               "file": "test_location"
+       },
+       "is_intro": false,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::combat"
+       },
+       "mclass": {
+               "full_name": "test_prog::Dwarf"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog::combat$Dwarf$Weapon::dps"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Dwarf"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog::combat$Dwarf$Weapon::dps"
+       }]
+}
+{
+       "name": "Elf",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Elf",
+       "mdoc": {
+               "content": "Elves make good magicians.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 70,
+                       "line_start": 69,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 78,
+               "line_start": 69,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::races"
+       },
+       "mclass": {
+               "full_name": "test_prog::Elf"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Elf$Object::init"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Elf"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Elf$Object::init"
+       }]
+}
+{
+       "name": "Character",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Character",
+       "mdoc": {
+               "content": "Characters can be played by both the human or the machine.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 22,
+                       "line_start": 21,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 68,
+               "line_start": 21,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::character"
+       },
+       "mclass": {
+               "full_name": "test_prog::Character"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Character$_race"
+       }, {
+               "full_name": "test_prog$Character$race"
+       }, {
+               "full_name": "test_prog$Character$race="
+       }, {
+               "full_name": "test_prog$Character$_career"
+       }, {
+               "full_name": "test_prog$Character$career"
+       }, {
+               "full_name": "test_prog$Character$career="
+       }, {
+               "full_name": "test_prog$Character$quit"
+       }, {
+               "full_name": "test_prog$Character$_name"
+       }, {
+               "full_name": "test_prog$Character$name"
+       }, {
+               "full_name": "test_prog$Character$name="
+       }, {
+               "full_name": "test_prog$Character$_age"
+       }, {
+               "full_name": "test_prog$Character$age"
+       }, {
+               "full_name": "test_prog$Character$age="
+       }, {
+               "full_name": "test_prog$Character$_sex"
+       }, {
+               "full_name": "test_prog$Character$sex"
+       }, {
+               "full_name": "test_prog$Character$sex="
+       }, {
+               "full_name": "test_prog$Character$total_strengh"
+       }, {
+               "full_name": "test_prog$Character$total_endurance"
+       }, {
+               "full_name": "test_prog$Character$total_intelligence"
+       }, {
+               "full_name": "test_prog$Character$max_health"
+       }, {
+               "full_name": "test_prog$Character$_health"
+       }, {
+               "full_name": "test_prog$Character$health"
+       }, {
+               "full_name": "test_prog$Character$health="
+       }, {
+               "full_name": "test_prog$Character$Object::init"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::character::Character::_race"
+       }, {
+               "full_name": "test_prog::Character::race"
+       }, {
+               "full_name": "test_prog::Character::race="
+       }, {
+               "full_name": "test_prog::character::Character::_career"
+       }, {
+               "full_name": "test_prog::Character::career"
+       }, {
+               "full_name": "test_prog::Character::career="
+       }, {
+               "full_name": "test_prog::Character::quit"
+       }, {
+               "full_name": "test_prog::character::Character::_name"
+       }, {
+               "full_name": "test_prog::Character::name"
+       }, {
+               "full_name": "test_prog::Character::name="
+       }, {
+               "full_name": "test_prog::character::Character::_age"
+       }, {
+               "full_name": "test_prog::Character::age"
+       }, {
+               "full_name": "test_prog::Character::age="
+       }, {
+               "full_name": "test_prog::character::Character::_sex"
+       }, {
+               "full_name": "test_prog::Character::sex"
+       }, {
+               "full_name": "test_prog::Character::sex="
+       }, {
+               "full_name": "test_prog::Character::total_strengh"
+       }, {
+               "full_name": "test_prog::Character::total_endurance"
+       }, {
+               "full_name": "test_prog::Character::total_intelligence"
+       }, {
+               "full_name": "test_prog::Character::max_health"
+       }, {
+               "full_name": "test_prog::character::Character::_health"
+       }, {
+               "full_name": "test_prog::Character::health"
+       }, {
+               "full_name": "test_prog::Character::health="
+       }],
+       "intro": {
+               "full_name": "test_prog$Character"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Character$_race"
+       }, {
+               "full_name": "test_prog$Character$race"
+       }, {
+               "full_name": "test_prog$Character$race="
+       }, {
+               "full_name": "test_prog$Character$_career"
+       }, {
+               "full_name": "test_prog$Character$career"
+       }, {
+               "full_name": "test_prog$Character$career="
+       }, {
+               "full_name": "test_prog$Character$quit"
+       }, {
+               "full_name": "test_prog$Character$_name"
+       }, {
+               "full_name": "test_prog$Character$name"
+       }, {
+               "full_name": "test_prog$Character$name="
+       }, {
+               "full_name": "test_prog$Character$_age"
+       }, {
+               "full_name": "test_prog$Character$age"
+       }, {
+               "full_name": "test_prog$Character$age="
+       }, {
+               "full_name": "test_prog$Character$_sex"
+       }, {
+               "full_name": "test_prog$Character$sex"
+       }, {
+               "full_name": "test_prog$Character$sex="
+       }, {
+               "full_name": "test_prog$Character$total_strengh"
+       }, {
+               "full_name": "test_prog$Character$total_endurance"
+       }, {
+               "full_name": "test_prog$Character$total_intelligence"
+       }, {
+               "full_name": "test_prog$Character$max_health"
+       }, {
+               "full_name": "test_prog$Character$_health"
+       }, {
+               "full_name": "test_prog$Character$health"
+       }, {
+               "full_name": "test_prog$Character$health="
+       }],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog$Character$Object::init"
+       }]
+}
+{
+       "name": "Character",
+       "class_name": "MClassDef",
+       "full_name": "test_prog::combat$Character",
+       "mdoc": {
+               "content": "Characters are now `Comabatable`",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 54,
+                       "line_start": 53,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["redef", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 59,
+               "line_start": 53,
+               "file": "test_location"
+       },
+       "is_intro": false,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::combat"
+       },
+       "mclass": {
+               "full_name": "test_prog::Character"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog::combat$Character$Combatable::hit_points"
+       }],
+       "intro_mproperties": [],
+       "intro": {
+               "full_name": "test_prog$Character"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [],
+       "redef_mpropdefs": [{
+               "full_name": "test_prog::combat$Character$Combatable::hit_points"
+       }]
+}
+{
+       "name": "Weapon",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Weapon",
+       "mdoc": {
+               "content": "Something that can be used to attack someone and inflict damage.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 21,
+                       "line_start": 20,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "interface"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 24,
+               "line_start": 20,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::combat"
+       },
+       "mclass": {
+               "full_name": "test_prog::Weapon"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Weapon$dps"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Weapon::dps"
+       }],
+       "intro": {
+               "full_name": "test_prog$Weapon"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Weapon$dps"
+       }],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Combatable",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Combatable",
+       "mdoc": {
+               "content": "Something that can be combatted, it can `attack` and `defend`.\n\nWorld items can also be `Combatable`.\n`defend` method is then used to determines how the object react to an attack\nSome magical items can even `attack`.",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 31,
+                       "line_start": 26,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "interface"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 51,
+               "line_start": 26,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::combat"
+       },
+       "mclass": {
+               "full_name": "test_prog::Combatable"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Combatable$hit_points"
+       }, {
+               "full_name": "test_prog$Combatable$attack"
+       }, {
+               "full_name": "test_prog$Combatable$direct_attack"
+       }, {
+               "full_name": "test_prog$Combatable$defend"
+       }, {
+               "full_name": "test_prog$Combatable$is_dead"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Combatable::hit_points"
+       }, {
+               "full_name": "test_prog::Combatable::attack"
+       }, {
+               "full_name": "test_prog::Combatable::direct_attack"
+       }, {
+               "full_name": "test_prog::Combatable::defend"
+       }, {
+               "full_name": "test_prog::Combatable::is_dead"
+       }],
+       "intro": {
+               "full_name": "test_prog$Combatable"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Combatable$hit_points"
+       }, {
+               "full_name": "test_prog$Combatable$attack"
+       }, {
+               "full_name": "test_prog$Combatable$direct_attack"
+       }, {
+               "full_name": "test_prog$Combatable$defend"
+       }, {
+               "full_name": "test_prog$Combatable$is_dead"
+       }],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Game",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Game",
+       "mdoc": {
+               "content": "This is the interface you have to implement to use ure gaming platform.\n\nsee http://our.platform.com",
+               "location": {
+                       "column_end": 0,
+                       "column_start": 1,
+                       "line_end": 23,
+                       "line_start": 20,
+                       "file": "test_location"
+               }
+       },
+       "visibility": "public",
+       "modifiers": ["public", "interface"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 45,
+               "line_start": 20,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::game"
+       },
+       "mclass": {
+               "full_name": "test_prog::Game"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Game$player_characters"
+       }, {
+               "full_name": "test_prog$Game$computer_characters"
+       }, {
+               "full_name": "test_prog$Game$start_game"
+       }, {
+               "full_name": "test_prog$Game$pause_game"
+       }, {
+               "full_name": "test_prog$Game$stop_game"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Game::player_characters"
+       }, {
+               "full_name": "test_prog::Game::computer_characters"
+       }, {
+               "full_name": "test_prog::Game::start_game"
+       }, {
+               "full_name": "test_prog::Game::pause_game"
+       }, {
+               "full_name": "test_prog::Game::stop_game"
+       }],
+       "intro": {
+               "full_name": "test_prog$Game"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Game$player_characters"
+       }, {
+               "full_name": "test_prog$Game$computer_characters"
+       }, {
+               "full_name": "test_prog$Game$start_game"
+       }, {
+               "full_name": "test_prog$Game$pause_game"
+       }, {
+               "full_name": "test_prog$Game$stop_game"
+       }],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Starter",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Starter",
+       "mdoc": null,
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 3,
+               "column_start": 1,
+               "line_end": 23,
+               "line_start": 21,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::test_prog"
+       },
+       "mclass": {
+               "full_name": "test_prog::Starter"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Starter$start"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Starter::start"
+       }],
+       "intro": {
+               "full_name": "test_prog$Starter"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Starter$start"
+       }],
+       "redef_mpropdefs": []
+}
+{
+       "name": "Sys",
+       "class_name": "MClassDef",
+       "full_name": "test_prog$Sys",
+       "mdoc": null,
+       "visibility": "public",
+       "modifiers": ["public", "class"],
+       "location": {
+               "column_end": 13,
+               "column_start": 1,
+               "line_end": 26,
+               "line_start": 25,
+               "file": "test_location"
+       },
+       "is_intro": true,
+       "mparameters": [],
+       "mmodule": {
+               "full_name": "test_prog::test_prog"
+       },
+       "mclass": {
+               "full_name": "test_prog::Sys"
+       },
+       "mpropdefs": [{
+               "full_name": "test_prog$Sys$main"
+       }],
+       "intro_mproperties": [{
+               "full_name": "test_prog::Sys::main"
+       }],
+       "intro": {
+               "full_name": "test_prog$Sys"
+       },
+       "mpackage": {
+               "full_name": "test_prog"
+       },
+       "intro_mpropdefs": [{
+               "full_name": "test_prog$Sys$main"
+       }],
+       "redef_mpropdefs": []
+}