improve error reporting for methods missing the return type, fixes bug
authorJuerg Billeter <j@bitron.ch>
Tue, 5 Feb 2008 00:13:47 +0000 (00:13 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Tue, 5 Feb 2008 00:13:47 +0000 (00:13 +0000)
2008-02-05  Juerg Billeter  <j@bitron.ch>

* vala/valaclass.vala, vala/valastruct.vala: improve error reporting
  for methods missing the return type, fixes bug 514344

svn path=/trunk/; revision=969

ChangeLog
vala/valaclass.vala
vala/valastruct.vala

index 688b4fa..7bbf5c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2008-02-05  Jürg Billeter  <j@bitron.ch>
 
+       * vala/valaclass.vala, vala/valastruct.vala: improve error reporting
+         for methods missing the return type, fixes bug 514344
+
+2008-02-05  Jürg Billeter  <j@bitron.ch>
+
        * vala/valasemanticanalyzer.vala: fix error message for invalid
          symbols, fixes bug 514329
 
index 587e008..f42ff40 100644 (file)
@@ -202,6 +202,14 @@ public class Vala.Class : Typesymbol {
                        } else {
                                m.name = ".new." + m.name;
                        }
+
+                       var cm = (CreationMethod) m;
+                       if (cm.type_name != null && cm.type_name != name) {
+                               // type_name is null for constructors generated by GIdlParser
+                               Report.error (m.source_reference, "missing return type in method `%s.%s´".printf (get_full_name (), cm.type_name));
+                               m.error = true;
+                               return;
+                       }
                }
 
                methods.add (m);
index 8782646..931e42f 100644 (file)
@@ -129,6 +129,14 @@ public class Vala.Struct : Typesymbol {
                        } else {
                                m.name = ".new." + m.name;
                        }
+
+                       var cm = (CreationMethod) m;
+                       if (cm.type_name != null && cm.type_name != name) {
+                               // type_name is null for constructors generated by GIdlParser
+                               Report.error (m.source_reference, "missing return type in method `%s.%s´".printf (get_full_name (), cm.type_name));
+                               m.error = true;
+                               return;
+                       }
                }
 
                methods.add (m);