improve error reporting in invocation expressions
authorJuerg Billeter <j@bitron.ch>
Wed, 29 Aug 2007 13:31:43 +0000 (13:31 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Wed, 29 Aug 2007 13:31:43 +0000 (13:31 +0000)
2007-08-29  Juerg Billeter  <j@bitron.ch>

* vala/valasemanticanalyzer.vala: improve error reporting in invocation
  expressions

svn path=/trunk/; revision=529

ChangeLog
vala/valasemanticanalyzer.vala

index 548c330..ea062c4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2007-08-29  Jürg Billeter  <j@bitron.ch>
 
+       * vala/valasemanticanalyzer.vala: improve error reporting in invocation
+         expressions
+
+2007-08-29  Jürg Billeter  <j@bitron.ch>
+
        * vala/valaclass.vala, vala/valasemanticanalyzer.vala,
          gobject/valacodegeneratorassignment.vala: deny access to instance
          members from static methods, improve error reporting
index eba19ca..2c131a6 100644 (file)
@@ -898,6 +898,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
        public override void visit_end_return_statement (ReturnStatement! stmt) {
                if (stmt.return_expression != null && stmt.return_expression.error) {
                        // ignore inner error
+                       stmt.error = true;
                        return;
                }
 
@@ -1481,7 +1482,11 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                                }
                        } else {
                                var arg = arg_it.get ();
-                               if (arg.static_type == null) {
+                               if (arg.error) {
+                                       // ignore inner error
+                                       expr.error = true;
+                                       return false;
+                               } else if (arg.static_type == null) {
                                        // disallow untyped arguments except for type inference of callbacks
                                        if (!(param.type_reference.data_type is Callback)) {
                                                expr.error = true;