Merge branch 'pu/parser_tables_in_c' into wip
[nit.git] / src / syntax / mmbuilder.nit
index 3b7951f..585c70c 100644 (file)
@@ -93,9 +93,6 @@ redef class MMSrcModule
                # Property inhritance and introduction
                var mmbv2 = new PropertyBuilderVisitor(tc, self)
                for c in classes do
-                       # Inherit global properties
-                       c.inherit_global_properties
-
                        # Global property introduction and redefinition 
                        c.accept_class_visitor(mmbv2)
 
@@ -114,14 +111,6 @@ redef class MMSrcModule
                        c.accept_properties_visitor(mmbv3)
                end
 
-               # Check inherited local properties
-               for c in classes do
-                       for g in c.global_properties do
-                               if visibility_for(g.intro.module) < g.visibility_level then continue
-                               var p = c[g]
-                       end
-               end
-
                tc.check_errors
        end
 
@@ -960,7 +949,7 @@ redef class AAttrPropdef
                        var t0 = n_type.get_stype(v)
                        if t0 != null then t = t0 else return
                else
-                       v.error(self, "Not yet implemented: Attribute definition {_prop.local_class}::{_prop} requires an explicit type.")
+                       v.error(self, "Not yet implemented: Attribute definition {prop.local_class}::{prop} requires an explicit type.")
                        return
                end
 
@@ -1061,6 +1050,21 @@ redef class AMainMethPropdef
        end
 end
 
+redef class AExternMethPropdef
+       redef fun accept_property_verifier(v)
+       do
+               super # Compute signature
+               var ename: String
+               if n_extern != null then
+                       ename = n_extern.text
+                       ename = ename.substring(1, ename.length-2)
+               else
+                       ename = "{method.module.name}_{method.local_class.name}_{method.local_class.name}_{method.name}_{method.signature.arity}"
+               end
+               method.extern_name = ename
+       end
+end
+
 redef class ATypePropdef
        redef fun prop do return _prop.as(not null)
        var _prop: nullable MMSrcTypeProperty