]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add overriding members to .vapi files, fixes bug 569219
authorJürg Billeter <j@bitron.ch>
Tue, 27 Jan 2009 20:09:35 +0000 (20:09 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Tue, 27 Jan 2009 20:09:35 +0000 (20:09 +0000)
2009-01-27  Jürg Billeter  <j@bitron.ch>

* vala/valacodewriter.vala:
* vala/valamethod.vala:

Add overriding members to .vapi files, fixes bug 569219

svn path=/trunk/; revision=2405

ChangeLog
vala/valacodewriter.vala
vala/valamethod.vala

index c0b221e30c83fa9c4caf688fed19dc79a28bbd8d..9ff0dd1826ad11b84f16edfd8b486a3b778267bd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-27  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valacodewriter.vala:
+       * vala/valamethod.vala:
+
+       Add overriding members to .vapi files, fixes bug 569219
+
 2009-01-27  Jürg Billeter  <j@bitron.ch>
 
        * vala/valamemberaccess.vala:
index 259cdbccb5a64b970293cbc46d12f1e661b9624c..9e82047edd0fad137bb6bf9bc5551931aa9f8841 100644 (file)
@@ -813,7 +813,7 @@ public class Vala.CodeWriter : CodeVisitor {
                }
 
                // don't write interface implementation unless it's an abstract or virtual method
-               if (!check_accessibility (m) || m.overrides || (m.base_interface_method != null && !m.is_abstract && !m.is_virtual)) {
+               if (!check_accessibility (m) || (m.base_interface_method != null && !m.is_abstract && !m.is_virtual)) {
                        if (!dump_tree) {
                                return;
                        }
@@ -910,6 +910,8 @@ public class Vala.CodeWriter : CodeVisitor {
                        write_string ("abstract ");
                } else if (m.is_virtual) {
                        write_string ("virtual ");
+               } else if (m.overrides) {
+                       write_string ("override ");
                }
                
                if (!(m is CreationMethod)) {
@@ -933,7 +935,7 @@ public class Vala.CodeWriter : CodeVisitor {
        }
 
        public override void visit_property (Property prop) {
-               if (!check_accessibility (prop) || prop.overrides || (prop.base_interface_property != null && !prop.is_abstract && !prop.is_virtual)) {
+               if (!check_accessibility (prop) || (prop.base_interface_property != null && !prop.is_abstract && !prop.is_virtual)) {
                        return;
                }
 
@@ -951,6 +953,8 @@ public class Vala.CodeWriter : CodeVisitor {
                        write_string ("abstract ");
                } else if (prop.is_virtual) {
                        write_string ("virtual ");
+               } else if (prop.overrides) {
+                       write_string ("override ");
                }
 
                write_type (prop.property_type);
index 98e8d9da77e62ca284c8a8faff1793b09b42680f..b5218caf5e460a5eb3316d218c2ac6650d2ae1fc 100644 (file)
@@ -526,16 +526,11 @@ public class Vala.Method : Member {
                }
 
                if (parent_symbol is Class) {
-                       /* VAPI classes don't specify overridden methods */
-                       if (!parent_symbol.external_package) {
-                               if (!(this is CreationMethod)) {
-                                       find_base_interface_method ((Class) parent_symbol);
-                                       if (is_virtual || is_abstract || overrides) {
-                                               find_base_class_method ((Class) parent_symbol);
-                                       }
+                       if (!(this is CreationMethod)) {
+                               find_base_interface_method ((Class) parent_symbol);
+                               if (is_virtual || is_abstract || overrides) {
+                                       find_base_class_method ((Class) parent_symbol);
                                }
-                       } else if (is_virtual || is_abstract) {
-                               _base_method = this;
                        }
                } else if (parent_symbol is Interface) {
                        if (is_virtual || is_abstract) {