+var = var_mvisibility;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#APropdef#set_doc for (self: APropdef, MPropDef, ModelBuilder) */
+void nit__modelize_property___APropdef___set_doc(val* self, val* p0, val* p1) {
+val* var_mpropdef /* var mpropdef: MPropDef */;
+val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
+val* var /* : nullable ADoc */;
+val* var2 /* : nullable ADoc */;
+val* var_ndoc /* var ndoc: nullable ADoc */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var6 /* : Bool */;
+short int var7 /* : Bool */;
+val* var8 /* : MDoc */;
+val* var_mdoc /* var mdoc: MDoc */;
+short int var11 /* : Bool */;
+short int var12 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var13 /* : MProperty */;
+val* var15 /* : MProperty */;
+val* var16 /* : MVisibility */;
+val* var18 /* : MVisibility */;
+val* var19 /* : Sys */;
+val* var20 /* : MVisibility */;
+short int var21 /* : Bool */;
+static val* varonce;
+val* var22 /* : String */;
+char* var23 /* : NativeString */;
+val* var24 /* : FlatString */;
+val* var26 /* : NativeArray[String] */;
+static val* varonce25;
+static val* varonce27;
+val* var28 /* : String */;
+char* var29 /* : NativeString */;
+val* var30 /* : FlatString */;
+static val* varonce31;
+val* var32 /* : String */;
+char* var33 /* : NativeString */;
+val* var34 /* : FlatString */;
+val* var35 /* : MProperty */;
+val* var37 /* : MProperty */;
+val* var38 /* : String */;
+val* var39 /* : String */;
+static val* varonce40;
+val* var41 /* : String */;
+char* var42 /* : NativeString */;
+val* var43 /* : FlatString */;
+val* var44 /* : nullable AAnnotation */;
+val* var_at_deprecated /* var at_deprecated: nullable AAnnotation */;
+short int var45 /* : Bool */;
+short int var46 /* : Bool */;
+short int var48 /* : Bool */;
+short int var49 /* : Bool */;
+short int var50 /* : Bool */;
+short int var51 /* : Bool */;
+static val* varonce52;
+val* var53 /* : String */;
+char* var54 /* : NativeString */;
+val* var55 /* : FlatString */;
+val* var56 /* : MDeprecationInfo */;
+val* var_info /* var info: MDeprecationInfo */;
+val* var58 /* : nullable ADoc */;
+val* var60 /* : nullable ADoc */;
+short int var61 /* : Bool */;
+short int var62 /* : Bool */;
+short int var64 /* : Bool */;
+short int var65 /* : Bool */;
+val* var66 /* : MDoc */;
+val* var68 /* : MProperty */;
+val* var70 /* : MProperty */;
+var_mpropdef = p0;
+var_modelbuilder = p1;
+{
+{ /* Inline parser_nodes#ADefinition#n_doc (self) on <self:APropdef> */
+var2 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:APropdef> */
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+var_ndoc = var;
+if (var_ndoc == NULL) {
+var3 = 0; /* is null */
+} else {
+var3 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_ndoc,((val*)NULL)) on <var_ndoc:nullable ADoc> */
+var_other = ((val*)NULL);
+{
+var6 = ((short int(*)(val* self, val* p0))(var_ndoc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ndoc, var_other); /* == on <var_ndoc:nullable ADoc(ADoc)>*/
+}
+var7 = !var6;
+var4 = var7;
+goto RET_LABEL5;
+RET_LABEL5:(void)0;
+}
+var3 = var4;
+}
+if (var3){
+{
+var8 = nit__modelbuilder_base___ADoc___to_mdoc(var_ndoc);
+}
+var_mdoc = var8;
+{
+{ /* Inline mdoc#MEntity#mdoc= (var_mpropdef,var_mdoc) on <var_mpropdef:MPropDef> */
+var_mpropdef->attrs[COLOR_nit__mdoc__MEntity___mdoc].val = var_mdoc; /* _mdoc on <var_mpropdef:MPropDef> */
+RET_LABEL9:(void)0;
+}
+}
+{
+{ /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mpropdef) on <var_mdoc:MDoc> */
+var_mdoc->attrs[COLOR_nit__mdoc__MDoc___original_mentity].val = var_mpropdef; /* _original_mentity on <var_mdoc:MDoc> */
+RET_LABEL10:(void)0;
+}
+}
+} else {
+{
+var12 = nit___nit__MPropDef___is_intro(var_mpropdef);
+}
+var_ = var12;
+if (var12){
+{
+{ /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
+var15 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
+if (unlikely(var15 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var13 = var15;
+RET_LABEL14:(void)0;
+}
+}
+{
+{ /* Inline model#MProperty#visibility (var13) on <var13:MProperty> */
+var18 = var13->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var13:MProperty> */
+if (unlikely(var18 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1949);
+fatal_exit(1);
+}
+var16 = var18;
+RET_LABEL17:(void)0;
+}
+}
+var19 = glob_sys;
+{
+var20 = nit__model_base___standard__Sys___protected_visibility(var19);
+}
+{
+var21 = standard___standard__Comparable____62d_61d(var16, var20);
+}
+var11 = var21;
+} else {
+var11 = var_;
+}
+if (var11){
+if (likely(varonce!=NULL)) {
+var22 = varonce;
+} else {
+var23 = "missing-doc";
+var24 = standard___standard__NativeString___to_s_with_length(var23, 11l);
+var22 = var24;
+varonce = var22;
+}
+if (unlikely(varonce25==NULL)) {
+var26 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce27!=NULL)) {
+var28 = varonce27;
+} else {
+var29 = "Documentation warning: Undocumented property `";
+var30 = standard___standard__NativeString___to_s_with_length(var29, 46l);
+var28 = var30;
+varonce27 = var28;
+}
+((struct instance_standard__NativeArray*)var26)->values[0]=var28;
+if (likely(varonce31!=NULL)) {
+var32 = varonce31;
+} else {
+var33 = "`";
+var34 = standard___standard__NativeString___to_s_with_length(var33, 1l);
+var32 = var34;
+varonce31 = var32;
+}
+((struct instance_standard__NativeArray*)var26)->values[2]=var32;
+} else {
+var26 = varonce25;
+varonce25 = NULL;
+}
+{
+{ /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
+var37 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
+if (unlikely(var37 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var35 = var37;
+RET_LABEL36:(void)0;
+}
+}
+{
+var38 = ((val*(*)(val* self))(var35->class->vft[COLOR_standard__string__Object__to_s]))(var35); /* to_s on <var35:MProperty>*/
+}
+((struct instance_standard__NativeArray*)var26)->values[1]=var38;
+{
+var39 = ((val*(*)(val* self))(var26->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var26); /* native_to_s on <var26:NativeArray[String]>*/
+}
+varonce25 = var26;
+{
+nit___nit__ModelBuilder___advice(var_modelbuilder, self, var22, var39); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
+}
+} else {
+}
+}
+if (likely(varonce40!=NULL)) {
+var41 = varonce40;
+} else {
+var42 = "deprecated";
+var43 = standard___standard__NativeString___to_s_with_length(var42, 10l);
+var41 = var43;
+varonce40 = var41;
+}
+{
+var44 = nit__annotation___Prod___get_single_annotation(self, var41, var_modelbuilder);
+}
+var_at_deprecated = var44;
+if (var_at_deprecated == NULL) {
+var45 = 0; /* is null */
+} else {
+var45 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_at_deprecated,((val*)NULL)) on <var_at_deprecated:nullable AAnnotation> */
+var_other = ((val*)NULL);
+{
+var48 = ((short int(*)(val* self, val* p0))(var_at_deprecated->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_at_deprecated, var_other); /* == on <var_at_deprecated:nullable AAnnotation(AAnnotation)>*/
+}
+var49 = !var48;
+var46 = var49;
+goto RET_LABEL47;
+RET_LABEL47:(void)0;
+}
+var45 = var46;
+}
+if (var45){
+{
+var50 = nit___nit__MPropDef___is_intro(var_mpropdef);
+}
+var51 = !var50;
+if (var51){
+if (likely(varonce52!=NULL)) {
+var53 = varonce52;
+} else {
+var54 = "Error: method redefinition cannot be deprecated.";
+var55 = standard___standard__NativeString___to_s_with_length(var54, 48l);
+var53 = var55;
+varonce52 = var53;
+}
+{
+nit___nit__ModelBuilder___error(var_modelbuilder, self, var53); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
+}
+} else {
+var56 = NEW_nit__MDeprecationInfo(&type_nit__MDeprecationInfo);
+{
+{ /* Inline kernel#Object#init (var56) on <var56:MDeprecationInfo> */
+RET_LABEL57:(void)0;
+}
+}
+var_info = var56;
+{
+{ /* Inline parser_nodes#ADefinition#n_doc (var_at_deprecated) on <var_at_deprecated:nullable AAnnotation(AAnnotation)> */
+var60 = var_at_deprecated->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <var_at_deprecated:nullable AAnnotation(AAnnotation)> */
+var58 = var60;
+RET_LABEL59:(void)0;
+}
+}
+var_ndoc = var58;
+if (var_ndoc == NULL) {
+var61 = 0; /* is null */
+} else {
+var61 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_ndoc,((val*)NULL)) on <var_ndoc:nullable ADoc> */
+var_other = ((val*)NULL);
+{
+var64 = ((short int(*)(val* self, val* p0))(var_ndoc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ndoc, var_other); /* == on <var_ndoc:nullable ADoc(ADoc)>*/
+}
+var65 = !var64;
+var62 = var65;
+goto RET_LABEL63;
+RET_LABEL63:(void)0;
+}
+var61 = var62;
+}
+if (var61){
+{
+var66 = nit__modelbuilder_base___ADoc___to_mdoc(var_ndoc);
+}
+{
+{ /* Inline mdoc#MDeprecationInfo#mdoc= (var_info,var66) on <var_info:MDeprecationInfo> */
+var_info->attrs[COLOR_nit__mdoc__MDeprecationInfo___mdoc].val = var66; /* _mdoc on <var_info:MDeprecationInfo> */
+RET_LABEL67:(void)0;
+}
+}
+} else {
+}
+{
+{ /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
+var70 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
+if (unlikely(var70 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
+fatal_exit(1);
+}
+var68 = var70;
+RET_LABEL69:(void)0;
+}
+}
+{
+{ /* Inline mdoc#MEntity#deprecation= (var68,var_info) on <var68:MProperty> */
+var68->attrs[COLOR_nit__mdoc__MEntity___deprecation].val = var_info; /* _deprecation on <var68:MProperty> */
+RET_LABEL71:(void)0;
+}
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method modelize_property#APropdef#check_redef_property_visibility for (self: APropdef, ModelBuilder, nullable AVisibility, MProperty) */
+void nit__modelize_property___APropdef___check_redef_property_visibility(val* self, val* p0, val* p1, val* p2) {
+val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
+val* var_nvisibility /* var nvisibility: nullable AVisibility */;
+val* var_mprop /* var mprop: MProperty */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var5 /* : Bool */;
+val* var6 /* : MVisibility */;
+val* var_mvisibility /* var mvisibility: MVisibility */;
+short int var7 /* : Bool */;
+val* var8 /* : MVisibility */;
+val* var10 /* : MVisibility */;
+short int var11 /* : Bool */;
+val* var_other13 /* var other: nullable Object */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var16 /* : Sys */;
+val* var17 /* : MVisibility */;
+short int var18 /* : Bool */;
+short int var20 /* : Bool */;
+short int var21 /* : Bool */;
+val* var22 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce23;
+val* var24 /* : String */;
+char* var25 /* : NativeString */;
+val* var26 /* : FlatString */;
+static val* varonce27;
+val* var28 /* : String */;
+char* var29 /* : NativeString */;
+val* var30 /* : FlatString */;
+static val* varonce31;
+val* var32 /* : String */;
+char* var33 /* : NativeString */;
+val* var34 /* : FlatString */;
+val* var35 /* : MVisibility */;
+val* var37 /* : MVisibility */;
+val* var38 /* : String */;
+val* var39 /* : String */;
+val* var40 /* : String */;
+var_modelbuilder = p0;
+var_nvisibility = p1;
+var_mprop = p2;
+if (var_nvisibility == NULL) {
+var = 1; /* is null */
+} else {
+var = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_nvisibility,((val*)NULL)) on <var_nvisibility:nullable AVisibility> */
+var_other = ((val*)NULL);
+{
+{ /* Inline kernel#Object#is_same_instance (var_nvisibility,var_other) on <var_nvisibility:nullable AVisibility(AVisibility)> */
+var5 = var_nvisibility == var_other;
+var3 = var5;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
+}
+}
+var1 = var3;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+var = var1;
+}
+if (var){
+goto RET_LABEL;
+} else {