[vala/staging: 2/3] vala: Don't set Expression.value_type to null on purpose



commit 47cb4772ed6bc081e9434e4231962b1f7be2458f
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Mar 6 16:09:20 2019 +0100

    vala: Don't set Expression.value_type to null on purpose

 vala/valaassignment.vala      | 2 +-
 vala/valainitializerlist.vala | 2 ++
 vala/valamemberaccess.vala    | 4 +++-
 3 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/vala/valaassignment.vala b/vala/valaassignment.vala
index 414edd017..324df5355 100644
--- a/vala/valaassignment.vala
+++ b/vala/valaassignment.vala
@@ -410,7 +410,7 @@ public class Vala.Assignment : Expression {
                        value_type = left.value_type.copy ();
                        value_type.value_owned = false;
                } else {
-                       value_type = null;
+                       value_type = new InvalidType ();
                }
 
                return !error;
diff --git a/vala/valainitializerlist.vala b/vala/valainitializerlist.vala
index 6d170f4ec..93c3339c6 100644
--- a/vala/valainitializerlist.vala
+++ b/vala/valainitializerlist.vala
@@ -245,6 +245,8 @@ public class Vala.InitializerList : Expression {
                        /* everything seems to be correct */
                        value_type = target_type.copy ();
                        value_type.nullable = false;
+               } else {
+                       value_type = new InvalidType ();
                }
 
                return !error;
diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala
index 8fd60db56..d1be1feb1 100644
--- a/vala/valamemberaccess.vala
+++ b/vala/valamemberaccess.vala
@@ -831,8 +831,10 @@ public class Vala.MemberAccess : Expression {
                        formal_value_type = context.analyzer.get_value_type_for_symbol (symbol_reference, 
lvalue);
                        if (inner != null && formal_value_type != null) {
                                value_type = formal_value_type.get_actual_type (inner.value_type, null, this);
-                       } else {
+                       } else if (formal_value_type != null) {
                                value_type = formal_value_type;
+                       } else {
+                               value_type = new InvalidType ();
                        }
 
                        if (symbol_reference is Method) {


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