+{
+ "name": "OTHER",
+ "class_name": "MVirtualTypeDef",
+ "full_name": "test_prog$Object$OTHER",
+ "mdoc": {
+ "content": "Used for comparisons.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 23,
+ "line_start": 22,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "type"],
+ "location": {
+ "column_end": 28,
+ "column_start": 2,
+ "line_end": 23,
+ "line_start": 22,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::OTHER"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$OTHER"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "bound": {
+ "full_name": "nullable test_prog::Object"
+ },
+ "is_fixed": false
+}
+{
+ "name": "==",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Object$==",
+ "mdoc": {
+ "content": "Is `other` equqls to `self`?",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 26,
+ "line_start": 25,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 37,
+ "column_start": 2,
+ "line_end": 26,
+ "line_start": 25,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::=="
+ },
+ "intro": {
+ "full_name": "test_prog$Object$=="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "other",
+ "mtype": {
+ "full_name": "test_prog::Object::OTHER"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Bool"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "!=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Object$!=",
+ "mdoc": {
+ "content": "Is `other` different from `self`?",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 28,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 55,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 28,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::!="
+ },
+ "intro": {
+ "full_name": "test_prog$Object$!="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "other",
+ "mtype": {
+ "full_name": "test_prog::Object::OTHER"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Bool"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Object$init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "init"],
+ "location": {
+ "column_end": 3,
+ "column_start": 1,
+ "line_end": 30,
+ "line_start": 20,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Career$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 12,
+ "column_start": 2,
+ "line_end": 35,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Warrior$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 46,
+ "line_start": 42,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Warrior"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Magician$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 57,
+ "line_start": 53,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Magician"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Alcoholic$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 68,
+ "line_start": 64,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Alcoholic"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Race$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 12,
+ "column_start": 2,
+ "line_end": 44,
+ "line_start": 44,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Human$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 55,
+ "line_start": 51,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Human"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Dwarf$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 66,
+ "line_start": 62,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Dwarf"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Elf$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 77,
+ "line_start": 73,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Elf"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "init",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$Object::init",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["redef", "init"],
+ "location": {
+ "column_end": 3,
+ "column_start": 1,
+ "line_end": 68,
+ "line_start": 21,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Object::init"
+ },
+ "intro": {
+ "full_name": "test_prog$Object$init"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Object"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "unary -",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Int$unary -",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 21,
+ "column_start": 2,
+ "line_end": 34,
+ "line_start": 34,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Int::unary -"
+ },
+ "intro": {
+ "full_name": "test_prog$Int$unary -"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "+",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Int$+",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 29,
+ "column_start": 2,
+ "line_end": 35,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Int::+"
+ },
+ "intro": {
+ "full_name": "test_prog$Int$+"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "i",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "-",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Int$-",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 29,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 36,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Int::-"
+ },
+ "intro": {
+ "full_name": "test_prog$Int$-"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "i",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "*",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Int$*",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 29,
+ "column_start": 2,
+ "line_end": 37,
+ "line_start": 37,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Int::*"
+ },
+ "intro": {
+ "full_name": "test_prog$Int$*"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "i",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "/",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Int$/",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 29,
+ "column_start": 2,
+ "line_end": 38,
+ "line_start": 38,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Int::/"
+ },
+ "intro": {
+ "full_name": "test_prog$Int$/"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "i",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": ">",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Int$>",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 30,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 39,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Int::>"
+ },
+ "intro": {
+ "full_name": "test_prog$Int$>"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "i",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Bool"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "to_f",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Int$to_f",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 26,
+ "column_start": 2,
+ "line_end": 40,
+ "line_start": 40,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Int::to_f"
+ },
+ "intro": {
+ "full_name": "test_prog$Int$to_f"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Int"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Float"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "+",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Float$+",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 33,
+ "column_start": 2,
+ "line_end": 45,
+ "line_start": 45,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Float::+"
+ },
+ "intro": {
+ "full_name": "test_prog$Float$+"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "f",
+ "mtype": {
+ "full_name": "test_prog::Float"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Float"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "-",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Float$-",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 33,
+ "column_start": 2,
+ "line_end": 46,
+ "line_start": 46,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Float::-"
+ },
+ "intro": {
+ "full_name": "test_prog$Float$-"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "f",
+ "mtype": {
+ "full_name": "test_prog::Float"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Float"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "*",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Float$*",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 33,
+ "column_start": 2,
+ "line_end": 47,
+ "line_start": 47,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Float::*"
+ },
+ "intro": {
+ "full_name": "test_prog$Float$*"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "f",
+ "mtype": {
+ "full_name": "test_prog::Float"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Float"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "/",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Float$/",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 33,
+ "column_start": 2,
+ "line_end": 48,
+ "line_start": 48,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Float::/"
+ },
+ "intro": {
+ "full_name": "test_prog$Float$/"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "f",
+ "mtype": {
+ "full_name": "test_prog::Float"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Float"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": ">",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Float$>",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "intern", "fun"],
+ "location": {
+ "column_end": 32,
+ "column_start": 2,
+ "line_end": 49,
+ "line_start": 49,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Float::>"
+ },
+ "intro": {
+ "full_name": "test_prog$Float$>"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Float"
+ },
+ "mmodule": {
+ "full_name": "test_prog::platform"
+ },
+ "mgroup": {
+ "full_name": "test_prog>platform>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "f",
+ "mtype": {
+ "full_name": "test_prog::Float"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Bool"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_strength_bonus",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Career$_strength_bonus",
+ "mdoc": null,
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 24,
+ "column_start": 2,
+ "line_end": 31,
+ "line_start": 31,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::careers::Career::_strength_bonus"
+ },
+ "intro": {
+ "full_name": "test_prog$Career$_strength_bonus"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "strength_bonus",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Career$strength_bonus",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 24,
+ "column_start": 2,
+ "line_end": 31,
+ "line_start": 31,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Career::strength_bonus"
+ },
+ "intro": {
+ "full_name": "test_prog$Career$strength_bonus"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "strength_bonus=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Career$strength_bonus=",
+ "mdoc": null,
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 24,
+ "column_start": 2,
+ "line_end": 31,
+ "line_start": 31,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Career::strength_bonus="
+ },
+ "intro": {
+ "full_name": "test_prog$Career$strength_bonus="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "strength_bonus",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_endurance_bonus",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Career$_endurance_bonus",
+ "mdoc": null,
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 25,
+ "column_start": 2,
+ "line_end": 32,
+ "line_start": 32,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::careers::Career::_endurance_bonus"
+ },
+ "intro": {
+ "full_name": "test_prog$Career$_endurance_bonus"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "endurance_bonus",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Career$endurance_bonus",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 25,
+ "column_start": 2,
+ "line_end": 32,
+ "line_start": 32,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Career::endurance_bonus"
+ },
+ "intro": {
+ "full_name": "test_prog$Career$endurance_bonus"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "endurance_bonus=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Career$endurance_bonus=",
+ "mdoc": null,
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 25,
+ "column_start": 2,
+ "line_end": 32,
+ "line_start": 32,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Career::endurance_bonus="
+ },
+ "intro": {
+ "full_name": "test_prog$Career$endurance_bonus="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "endurance_bonus",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_intelligence_bonus",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Career$_intelligence_bonus",
+ "mdoc": null,
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 28,
+ "column_start": 2,
+ "line_end": 33,
+ "line_start": 33,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ },
+ "intro": {
+ "full_name": "test_prog$Career$_intelligence_bonus"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "intelligence_bonus",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Career$intelligence_bonus",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 28,
+ "column_start": 2,
+ "line_end": 33,
+ "line_start": 33,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Career::intelligence_bonus"
+ },
+ "intro": {
+ "full_name": "test_prog$Career$intelligence_bonus"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "intelligence_bonus=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Career$intelligence_bonus=",
+ "mdoc": null,
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 28,
+ "column_start": 2,
+ "line_end": 33,
+ "line_start": 33,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Career::intelligence_bonus="
+ },
+ "intro": {
+ "full_name": "test_prog$Career$intelligence_bonus="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Career"
+ },
+ "mmodule": {
+ "full_name": "test_prog::careers"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "intelligence_bonus",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_base_strength",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Race$_base_strength",
+ "mdoc": {
+ "content": "Used to represents how strong the race is.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 35,
+ "file": "test_location"
+ }
+ },
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 23,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::races::Race::_base_strength"
+ },
+ "intro": {
+ "full_name": "test_prog$Race$_base_strength"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "base_strength",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Race$base_strength",
+ "mdoc": {
+ "content": "Used to represents how strong the race is.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 35,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 23,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Race::base_strength"
+ },
+ "intro": {
+ "full_name": "test_prog$Race$base_strength"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "base_strength=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Race$base_strength=",
+ "mdoc": {
+ "content": "Used to represents how strong the race is.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 35,
+ "file": "test_location"
+ }
+ },
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 23,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Race::base_strength="
+ },
+ "intro": {
+ "full_name": "test_prog$Race$base_strength="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "base_strength",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_base_endurance",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Race$_base_endurance",
+ "mdoc": {
+ "content": "Used to represents how the race can absorb damage.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 38,
+ "file": "test_location"
+ }
+ },
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 24,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 38,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::races::Race::_base_endurance"
+ },
+ "intro": {
+ "full_name": "test_prog$Race$_base_endurance"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "base_endurance",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Race$base_endurance",
+ "mdoc": {
+ "content": "Used to represents how the race can absorb damage.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 38,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 24,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 38,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Race::base_endurance"
+ },
+ "intro": {
+ "full_name": "test_prog$Race$base_endurance"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "base_endurance=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Race$base_endurance=",
+ "mdoc": {
+ "content": "Used to represents how the race can absorb damage.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 38,
+ "file": "test_location"
+ }
+ },
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 24,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 38,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Race::base_endurance="
+ },
+ "intro": {
+ "full_name": "test_prog$Race$base_endurance="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "base_endurance",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_base_intelligence",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Race$_base_intelligence",
+ "mdoc": {
+ "content": "Is this race smart?",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 42,
+ "line_start": 41,
+ "file": "test_location"
+ }
+ },
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 27,
+ "column_start": 2,
+ "line_end": 42,
+ "line_start": 41,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::races::Race::_base_intelligence"
+ },
+ "intro": {
+ "full_name": "test_prog$Race$_base_intelligence"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "base_intelligence",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Race$base_intelligence",
+ "mdoc": {
+ "content": "Is this race smart?",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 42,
+ "line_start": 41,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 27,
+ "column_start": 2,
+ "line_end": 42,
+ "line_start": 41,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Race::base_intelligence"
+ },
+ "intro": {
+ "full_name": "test_prog$Race$base_intelligence"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "base_intelligence=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Race$base_intelligence=",
+ "mdoc": {
+ "content": "Is this race smart?",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 42,
+ "line_start": 41,
+ "file": "test_location"
+ }
+ },
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 27,
+ "column_start": 2,
+ "line_end": 42,
+ "line_start": 41,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Race::base_intelligence="
+ },
+ "intro": {
+ "full_name": "test_prog$Race$base_intelligence="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Race"
+ },
+ "mmodule": {
+ "full_name": "test_prog::races"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "base_intelligence",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_race",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Character$_race",
+ "mdoc": {
+ "content": "The `Race` of the character.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 25,
+ "line_start": 24,
+ "file": "test_location"
+ }
+ },
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 15,
+ "column_start": 2,
+ "line_end": 25,
+ "line_start": 24,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::character::Character::_race"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$_race"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Race"
+ }
+}
+{
+ "name": "race",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$race",
+ "mdoc": {
+ "content": "The `Race` of the character.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 25,
+ "line_start": 24,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 15,
+ "column_start": 2,
+ "line_end": 25,
+ "line_start": 24,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::race"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$race"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Race"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "race=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$race=",
+ "mdoc": {
+ "content": "The `Race` of the character.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 25,
+ "line_start": 24,
+ "file": "test_location"
+ }
+ },
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 15,
+ "column_start": 2,
+ "line_end": 25,
+ "line_start": 24,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::race="
+ },
+ "intro": {
+ "full_name": "test_prog$Character$race="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "race",
+ "mtype": {
+ "full_name": "test_prog::Race"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_career",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Character$_career",
+ "mdoc": {
+ "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 27,
+ "file": "test_location"
+ }
+ },
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 47,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 27,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::character::Character::_career"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$_career"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "nullable test_prog::Career"
+ }
+}
+{
+ "name": "career",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$career",
+ "mdoc": {
+ "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 27,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 47,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 27,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::career"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$career"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "nullable test_prog::Career"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "career=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$career=",
+ "mdoc": {
+ "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 27,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 47,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 27,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::career="
+ },
+ "intro": {
+ "full_name": "test_prog$Character$career="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "career",
+ "mtype": {
+ "full_name": "nullable test_prog::Career"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "quit",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$quit",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 33,
+ "line_start": 31,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::quit"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$quit"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_name",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Character$_name",
+ "mdoc": null,
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 17,
+ "column_start": 2,
+ "line_end": 35,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::character::Character::_name"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$_name"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::String"
+ }
+}
+{
+ "name": "name",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$name",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 17,
+ "column_start": 2,
+ "line_end": 35,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::name"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$name"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::String"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "name=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$name=",
+ "mdoc": null,
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 17,
+ "column_start": 2,
+ "line_end": 35,
+ "line_start": 35,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::name="
+ },
+ "intro": {
+ "full_name": "test_prog$Character$name="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "name",
+ "mtype": {
+ "full_name": "test_prog::String"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_age",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Character$_age",
+ "mdoc": null,
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 13,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 36,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::character::Character::_age"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$_age"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "age",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$age",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 13,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 36,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::age"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$age"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "age=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$age=",
+ "mdoc": null,
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 13,
+ "column_start": 2,
+ "line_end": 36,
+ "line_start": 36,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::age="
+ },
+ "intro": {
+ "full_name": "test_prog$Character$age="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "age",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_sex",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Character$_sex",
+ "mdoc": null,
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 14,
+ "column_start": 2,
+ "line_end": 37,
+ "line_start": 37,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::character::Character::_sex"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$_sex"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Bool"
+ }
+}
+{
+ "name": "sex",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$sex",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 14,
+ "column_start": 2,
+ "line_end": 37,
+ "line_start": 37,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::sex"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$sex"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Bool"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "sex=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$sex=",
+ "mdoc": null,
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 14,
+ "column_start": 2,
+ "line_end": 37,
+ "line_start": 37,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::sex="
+ },
+ "intro": {
+ "full_name": "test_prog$Character$sex="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "sex",
+ "mtype": {
+ "full_name": "test_prog::Bool"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "total_strengh",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$total_strengh",
+ "mdoc": {
+ "content": "The actual strength of the character.\n\nReturns `race.base_strength + career.strength_bonus` or just `race.base_strength` is unemployed.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 42,
+ "line_start": 39,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 45,
+ "line_start": 39,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::total_strengh"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$total_strengh"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "total_endurance",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$total_endurance",
+ "mdoc": {
+ "content": "The actual endurance of the character.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 48,
+ "line_start": 47,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 51,
+ "line_start": 47,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::total_endurance"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$total_endurance"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "total_intelligence",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$total_intelligence",
+ "mdoc": {
+ "content": "The acutal intelligence of the character.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 54,
+ "line_start": 53,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 4,
+ "column_start": 2,
+ "line_end": 57,
+ "line_start": 53,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::total_intelligence"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$total_intelligence"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "max_health",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$max_health",
+ "mdoc": {
+ "content": "Maximum health of the character.\n\nBased on `total endurance * 10`.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 62,
+ "line_start": 59,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 51,
+ "column_start": 2,
+ "line_end": 62,
+ "line_start": 59,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::max_health"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$max_health"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "_health",
+ "class_name": "MAttributeDef",
+ "full_name": "test_prog$Character$_health",
+ "mdoc": {
+ "content": "The current `health` of the character.\n\nStarts at `max_health`.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 67,
+ "line_start": 64,
+ "file": "test_location"
+ }
+ },
+ "visibility": "private",
+ "modifiers": ["private", "var"],
+ "location": {
+ "column_end": 29,
+ "column_start": 2,
+ "line_end": 67,
+ "line_start": 64,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::character::Character::_health"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$_health"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "static_mtype": {
+ "full_name": "test_prog::Int"
+ }
+}
+{
+ "name": "health",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$health",
+ "mdoc": {
+ "content": "The current `health` of the character.\n\nStarts at `max_health`.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 67,
+ "line_start": 64,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 29,
+ "column_start": 2,
+ "line_end": 67,
+ "line_start": 64,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::health"
+ },
+ "intro": {
+ "full_name": "test_prog$Character$health"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "health=",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Character$health=",
+ "mdoc": {
+ "content": "The current `health` of the character.\n\nStarts at `max_health`.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 67,
+ "line_start": 64,
+ "file": "test_location"
+ }
+ },
+ "visibility": "protected",
+ "modifiers": ["protected", "fun"],
+ "location": {
+ "column_end": 29,
+ "column_start": 2,
+ "line_end": 67,
+ "line_start": 64,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Character::health="
+ },
+ "intro": {
+ "full_name": "test_prog$Character$health="
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Character"
+ },
+ "mmodule": {
+ "full_name": "test_prog::character"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "health",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "dps",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Weapon$dps",
+ "mdoc": {
+ "content": "Damage per second inflicted by this weapon.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 23,
+ "line_start": 22,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 27,
+ "column_start": 2,
+ "line_end": 23,
+ "line_start": 22,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Weapon"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Weapon::dps"
+ },
+ "intro": {
+ "full_name": "test_prog$Weapon$dps"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Weapon"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Float"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "dps",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog::combat$Dwarf$Weapon::dps",
+ "mdoc": {
+ "content": "Dwarf `dps` are based on the dwarf `base_endurance` (represents weight here)",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 66,
+ "line_start": 65,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["redef", "fun"],
+ "location": {
+ "column_end": 51,
+ "column_start": 2,
+ "line_end": 66,
+ "line_start": 65,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog::combat$Dwarf"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Weapon::dps"
+ },
+ "intro": {
+ "full_name": "test_prog$Weapon$dps"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Weapon"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Float"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "hit_points",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Combatable$hit_points",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 32,
+ "column_start": 2,
+ "line_end": 32,
+ "line_start": 32,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Combatable::hit_points"
+ },
+ "intro": {
+ "full_name": "test_prog$Combatable$hit_points"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "hit_points",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog::combat$Character$Combatable::hit_points",
+ "mdoc": {
+ "content": "Use character `health` to determines hit_points.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 58,
+ "line_start": 57,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["redef", "fun"],
+ "location": {
+ "column_end": 38,
+ "column_start": 2,
+ "line_end": 58,
+ "line_start": 57,
+ "file": "test_location"
+ },
+ "is_intro": false,
+ "mclassdef": {
+ "full_name": "test_prog::combat$Character"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Combatable::hit_points"
+ },
+ "intro": {
+ "full_name": "test_prog$Combatable$hit_points"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "attack",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Combatable$attack",
+ "mdoc": {
+ "content": "A `Combatable` can attack a `target` that is also a `Combatable`.\n\nAttack the `target` using `wepaon` and returns the number of inflicted hit points.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 37,
+ "line_start": 34,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 64,
+ "column_start": 2,
+ "line_end": 37,
+ "line_start": 34,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Combatable::attack"
+ },
+ "intro": {
+ "full_name": "test_prog$Combatable$attack"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 2,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "target",
+ "mtype": {
+ "full_name": "test_prog::Combatable"
+ }
+ }, {
+ "is_vararg": false,
+ "name": "weapon",
+ "mtype": {
+ "full_name": "test_prog::Weapon"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "direct_attack",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Combatable$direct_attack",
+ "mdoc": {
+ "content": "Like `attack` but cannot be defended.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 40,
+ "line_start": 39,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 71,
+ "column_start": 2,
+ "line_end": 40,
+ "line_start": 39,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Combatable::direct_attack"
+ },
+ "intro": {
+ "full_name": "test_prog$Combatable$direct_attack"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 2,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "target",
+ "mtype": {
+ "full_name": "test_prog::Combatable"
+ }
+ }, {
+ "is_vararg": false,
+ "name": "weapon",
+ "mtype": {
+ "full_name": "test_prog::Weapon"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "defend",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Combatable$defend",
+ "mdoc": {
+ "content": "`Combatable` can defend against attacks.\n\nDefends against a number of received hit points and return the number of pared hit points.\n\n@param hit: damage received.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 47,
+ "line_start": 42,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 38,
+ "column_start": 2,
+ "line_end": 47,
+ "line_start": 42,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Combatable::defend"
+ },
+ "intro": {
+ "full_name": "test_prog$Combatable$defend"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 1,
+ "mparams": [{
+ "is_vararg": false,
+ "name": "hit",
+ "mtype": {
+ "full_name": "test_prog::Int"
+ }
+ }],
+ "return_mtype": {
+ "full_name": "test_prog::Int"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "is_dead",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Combatable$is_dead",
+ "mdoc": {
+ "content": "Is the character still have hit_points?",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 50,
+ "line_start": 49,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 43,
+ "column_start": 2,
+ "line_end": 50,
+ "line_start": 49,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Combatable::is_dead"
+ },
+ "intro": {
+ "full_name": "test_prog$Combatable$is_dead"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Combatable"
+ },
+ "mmodule": {
+ "full_name": "test_prog::combat"
+ },
+ "mgroup": {
+ "full_name": "test_prog>rpg>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::Bool"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "player_characters",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Game$player_characters",
+ "mdoc": {
+ "content": "Characters played by human players.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 26,
+ "line_start": 25,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 51,
+ "column_start": 2,
+ "line_end": 26,
+ "line_start": 25,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Game::player_characters"
+ },
+ "intro": {
+ "full_name": "test_prog$Game$player_characters"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mmodule": {
+ "full_name": "test_prog::game"
+ },
+ "mgroup": {
+ "full_name": "test_prog>game>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::List[test_prog::Character]"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "computer_characters",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Game$computer_characters",
+ "mdoc": {
+ "content": "Characters players by computer.",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 28,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 53,
+ "column_start": 2,
+ "line_end": 29,
+ "line_start": 28,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Game::computer_characters"
+ },
+ "intro": {
+ "full_name": "test_prog$Game$computer_characters"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mmodule": {
+ "full_name": "test_prog::game"
+ },
+ "mgroup": {
+ "full_name": "test_prog>game>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": {
+ "full_name": "test_prog::List[test_prog::Character]"
+ },
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "start_game",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Game$start_game",
+ "mdoc": {
+ "content": "Start the game.\n\nYou have to implement that method!",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 34,
+ "line_start": 31,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 27,
+ "column_start": 2,
+ "line_end": 34,
+ "line_start": 31,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Game::start_game"
+ },
+ "intro": {
+ "full_name": "test_prog$Game$start_game"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mmodule": {
+ "full_name": "test_prog::game"
+ },
+ "mgroup": {
+ "full_name": "test_prog>game>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "pause_game",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Game$pause_game",
+ "mdoc": {
+ "content": "Pause the game.\n\nYou have to implement that method!",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 36,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 27,
+ "column_start": 2,
+ "line_end": 39,
+ "line_start": 36,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Game::pause_game"
+ },
+ "intro": {
+ "full_name": "test_prog$Game$pause_game"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mmodule": {
+ "full_name": "test_prog::game"
+ },
+ "mgroup": {
+ "full_name": "test_prog>game>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "stop_game",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Game$stop_game",
+ "mdoc": {
+ "content": "Stop the game.\n\nYou have to implement that method!",
+ "location": {
+ "column_end": 0,
+ "column_start": 2,
+ "line_end": 44,
+ "line_start": 41,
+ "file": "test_location"
+ }
+ },
+ "visibility": "public",
+ "modifiers": ["public", "abstract", "fun"],
+ "location": {
+ "column_end": 26,
+ "column_start": 2,
+ "line_end": 44,
+ "line_start": 41,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Game::stop_game"
+ },
+ "intro": {
+ "full_name": "test_prog$Game$stop_game"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Game"
+ },
+ "mmodule": {
+ "full_name": "test_prog::game"
+ },
+ "mgroup": {
+ "full_name": "test_prog>game>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "start",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Starter$start",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 17,
+ "column_start": 2,
+ "line_end": 22,
+ "line_start": 22,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Starter"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Starter::start"
+ },
+ "intro": {
+ "full_name": "test_prog$Starter$start"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Starter"
+ },
+ "mmodule": {
+ "full_name": "test_prog::test_prog"
+ },
+ "mgroup": {
+ "full_name": "test_prog>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}
+{
+ "name": "main",
+ "class_name": "MMethodDef",
+ "full_name": "test_prog$Sys$main",
+ "mdoc": null,
+ "visibility": "public",
+ "modifiers": ["public", "fun"],
+ "location": {
+ "column_end": 13,
+ "column_start": 1,
+ "line_end": 26,
+ "line_start": 25,
+ "file": "test_location"
+ },
+ "is_intro": true,
+ "mclassdef": {
+ "full_name": "test_prog$Sys"
+ },
+ "mproperty": {
+ "full_name": "test_prog::Sys::main"
+ },
+ "intro": {
+ "full_name": "test_prog$Sys$main"
+ },
+ "intro_mclassdef": {
+ "full_name": "test_prog$Sys"
+ },
+ "mmodule": {
+ "full_name": "test_prog::test_prog"
+ },
+ "mgroup": {
+ "full_name": "test_prog>"
+ },
+ "mpackage": {
+ "full_name": "test_prog"
+ },
+ "msignature": {
+ "arity": 0,
+ "mparams": [],
+ "return_mtype": null,
+ "vararg_rank": -1
+ }
+}