[vala/staging] Recurse more child expressions for error types



commit 2165f6915f753c7823ce1a53d735c556f5d0a329
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Apr 1 21:22:27 2020 +0200

    Recurse more child expressions for error types

 vala/valamemberinitializer.vala        |  7 +++++++
 vala/valaobjectcreationexpression.vala | 12 +++++++++---
 2 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/vala/valamemberinitializer.vala b/vala/valamemberinitializer.vala
index 436423aa5..fc068280c 100644
--- a/vala/valamemberinitializer.vala
+++ b/vala/valamemberinitializer.vala
@@ -72,6 +72,13 @@ public class Vala.MemberInitializer : CodeNode {
                return initializer.check (context);
        }
 
+       public override void get_error_types (Collection<DataType> collection, SourceReference? 
source_reference = null) {
+               if (source_reference == null) {
+                       source_reference = this.source_reference;
+               }
+               initializer.get_error_types (collection, source_reference);
+       }
+
        public override void emit (CodeGenerator codegen) {
                initializer.emit (codegen);
        }
diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala
index 7c76f7a82..36b25bda3 100644
--- a/vala/valaobjectcreationexpression.vala
+++ b/vala/valaobjectcreationexpression.vala
@@ -504,13 +504,19 @@ public class Vala.ObjectCreationExpression : Expression {
        }
 
        public override void get_error_types (Collection<DataType> collection, SourceReference? 
source_reference = null) {
+               if (source_reference == null) {
+                       source_reference = this.source_reference;
+               }
                if (symbol_reference is Method) {
-                       if (source_reference == null) {
-                               source_reference = this.source_reference;
-                       }
                        var m = (Method) symbol_reference;
                        m.get_error_types (collection, source_reference);
                }
+               foreach (Expression expr in argument_list) {
+                       expr.get_error_types (collection, source_reference);
+               }
+               foreach (MemberInitializer init in object_initializer) {
+                       init.get_error_types (collection, source_reference);
+               }
        }
 
        public override void emit (CodeGenerator codegen) {


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