[vala/staging: 4/5] vala: Don't ignore errors in Parameter and acknowledge them further



commit 91b7b02916c34922bb6afd853d6d3764ac33def5
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Feb 5 08:32:53 2020 +0100

    vala: Don't ignore errors in Parameter and acknowledge them further
    
    This avoids useless subsequent errors and possible criticals while
    operating on broken AST.

 vala/valacreationmethod.vala | 4 +++-
 vala/valadelegate.vala       | 4 +++-
 vala/valamethod.vala         | 5 ++++-
 vala/valasignal.vala         | 4 +++-
 4 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/vala/valacreationmethod.vala b/vala/valacreationmethod.vala
index 3c0b22992..89db56abe 100644
--- a/vala/valacreationmethod.vala
+++ b/vala/valacreationmethod.vala
@@ -107,7 +107,9 @@ public class Vala.CreationMethod : Method {
 
                int i = 0;
                foreach (Parameter param in get_parameters()) {
-                       param.check (context);
+                       if (!param.check (context)) {
+                               error = true;
+                       }
                        if (i == 0 && param.ellipsis && body != null) {
                                error = true;
                                Report.error (param.source_reference, "Named parameter required before 
`...'");
diff --git a/vala/valadelegate.vala b/vala/valadelegate.vala
index b9db0b287..abe9f8634 100644
--- a/vala/valadelegate.vala
+++ b/vala/valadelegate.vala
@@ -318,7 +318,9 @@ public class Vala.Delegate : TypeSymbol, Callable {
                }
 
                foreach (Parameter param in parameters) {
-                       param.check (context);
+                       if (!param.check (context)) {
+                               error = true;
+                       }
                }
 
                if (error_types != null) {
diff --git a/vala/valamethod.vala b/vala/valamethod.vala
index f6ce67d31..f5b22131a 100644
--- a/vala/valamethod.vala
+++ b/vala/valamethod.vala
@@ -823,7 +823,10 @@ public class Vala.Method : Subroutine, Callable {
 
                var optional_param = false;
                foreach (Parameter param in parameters) {
-                       param.check (context);
+                       if (!param.check (context)) {
+                               error = true;
+                               continue;
+                       }
                        if (coroutine && param.direction == ParameterDirection.REF) {
                                error = true;
                                Report.error (param.source_reference, "Reference parameters are not supported 
for async methods");
diff --git a/vala/valasignal.vala b/vala/valasignal.vala
index c6390c0a3..f7b987994 100644
--- a/vala/valasignal.vala
+++ b/vala/valasignal.vala
@@ -217,7 +217,9 @@ public class Vala.Signal : Symbol, Callable {
                                return false;
                        }
 
-                       param.check (context);
+                       if (!param.check (context)) {
+                               error = true;
+                       }
                }
 
                if (!is_virtual && body != null) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]