]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: More regular invocations of check() on inferred Expression.value_type 13f38eb6e2f21a9a02a3536323b1496bfb82cad4
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 6 Mar 2019 14:55:13 +0000 (15:55 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 6 Mar 2019 16:26:27 +0000 (17:26 +0100)
vala/valaassignment.vala
vala/valabinaryexpression.vala
vala/valaconditionalexpression.vala
vala/valaelementaccess.vala
vala/valainitializerlist.vala
vala/valamemberaccess.vala
vala/valamethodcall.vala
vala/valareferencetransferexpression.vala
vala/valasliceexpression.vala
vala/valaunaryexpression.vala

index 414edd0178be078429f229374d8cc38302c368db..0b6fbc9adafb19c31efe0f803ead5f14eefdc87e 100644 (file)
@@ -413,6 +413,10 @@ public class Vala.Assignment : Expression {
                        value_type = null;
                }
 
+               if (value_type != null) {
+                       value_type.check (context);
+               }
+
                return !error;
        }
 
index 5c9cefbe4554eb67455a4d1a72190664d4d5501d..0dd61b6c19450bba83a6b22a2167f22e40303c7c 100644 (file)
@@ -528,6 +528,8 @@ public class Vala.BinaryExpression : Expression {
                        assert_not_reached ();
                }
 
+               value_type.check (context);
+
                return !error;
        }
 
index ce1ee10adbb81333e1f318ad05ba15608caddfdf..3395dd56f5dc7df04f61e9ba9975790f828e0e2b 100644 (file)
@@ -200,6 +200,7 @@ public class Vala.ConditionalExpression : Expression {
 
                value_type.value_owned = (true_expression.value_type.value_owned || false_expression.value_type.value_owned);
                value_type.floating_reference = false;
+               value_type.check (context);
 
                local.variable_type = value_type;
                decl.check (context);
index bc1072901eb4ae013984eb47f35f8a8d2cc8bdc5..b847e9515ebfbaf111c8ed759e23e545440b079d 100644 (file)
@@ -247,6 +247,8 @@ public class Vala.ElementAccess : Expression {
                        }
                }
 
+               value_type.check (context);
+
                return !error;
        }
 
index 6d170f4ecf20553f8f85a81f28704feaa42561de..f7d806cfeea6b50e63131c4af73eb10921a0d5bb 100644 (file)
@@ -247,6 +247,10 @@ public class Vala.InitializerList : Expression {
                        value_type.nullable = false;
                }
 
+               if (value_type != null) {
+                       value_type.check (context);
+               }
+
                return !error;
        }
 
index 8fd60db56c140d658d019da87f36711beeda7610..dfd68a4aa65c2c54c316d5c20207169265861bf9 100644 (file)
@@ -857,6 +857,10 @@ public class Vala.MemberAccess : Expression {
                        }
                }
 
+               if (value_type != null) {
+                       value_type.check (context);
+               }
+
                return !error;
        }
 
index fc1bfed1183995ade18051933c18415c2c8c9b34..af44a2a5b81a1058bfb088af30222bdfc0a0b954 100644 (file)
@@ -630,6 +630,8 @@ public class Vala.MethodCall : Expression {
                        }
                }
 
+               value_type.check (context);
+
                if (tree_can_fail) {
                        if (parent_node is LocalVariable || parent_node is ExpressionStatement) {
                                // simple statements, no side effects after method call
index 6a06b1d65d6c3bc4f596bdd563a62c4605fa0494..f9b4289979db1fcadb8ca15f54fc622729248522 100644 (file)
@@ -109,6 +109,7 @@ public class Vala.ReferenceTransferExpression : Expression {
 
                value_type = inner.value_type.copy ();
                value_type.value_owned = true;
+               value_type.check (context);
 
                return !error;
        }
index 4d3e84489094c65a785a5d0c4aed9ea6ee4d6eda..5637330315f0c63a096b42ec6511c25b8f449c58 100644 (file)
@@ -145,6 +145,7 @@ public class Vala.SliceExpression : Expression {
                if (container.value_type is ArrayType) {
                        value_type = container.value_type.copy ();
                        value_type.value_owned = false;
+                       value_type.check (context);
 
                        /* check if the index is of type integer */
                        if (!(start.value_type is IntegerType || start.value_type is EnumValueType)) {
index e04dcb57d61ce1d124e850d43bfea976fc94d853..d371d39d926cb06fb3719c88502e865e45389b9d 100644 (file)
@@ -236,6 +236,8 @@ public class Vala.UnaryExpression : Expression {
                        return false;
                }
 
+               value_type.check (context);
+
                return !error;
        }