[vala/wip/transform: 2/99] Analyze nodes after they are inserted into the tree
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/wip/transform: 2/99] Analyze nodes after they are inserted into the tree
- Date: Sun, 25 Sep 2016 19:16:31 +0000 (UTC)
commit ae3349ff499d148e4455981f43c6e8f3ed2beb06
Author: Luca Bruno <lucabru src gnome org>
Date: Fri Aug 5 17:22:18 2011 +0200
Analyze nodes after they are inserted into the tree
vala/valabinaryexpression.vala | 9 ++++++---
vala/valaconditionalexpression.vala | 6 +++---
vala/valamethodcall.vala | 1 -
vala/valaobjectcreationexpression.vala | 1 -
4 files changed, 9 insertions(+), 8 deletions(-)
---
diff --git a/vala/valabinaryexpression.vala b/vala/valabinaryexpression.vala
index e57ebb4..7d9f751 100644
--- a/vala/valabinaryexpression.vala
+++ b/vala/valabinaryexpression.vala
@@ -157,7 +157,6 @@ public class Vala.BinaryExpression : Expression {
var local = new LocalVariable (context.analyzer.bool_type.copy (), get_temp_name (),
null, source_reference);
var decl = new DeclarationStatement (local, source_reference);
- decl.check (context);
var right_stmt = new ExpressionStatement (new Assignment (new MemberAccess.simple
(local.name, right.source_reference), right, AssignmentOperator.SIMPLE, right.source_reference),
right.source_reference);
@@ -179,6 +178,8 @@ public class Vala.BinaryExpression : Expression {
insert_statement (context.analyzer.insert_block, decl);
insert_statement (context.analyzer.insert_block, if_stmt);
+ decl.check (context);
+
if (!if_stmt.check (context)) {
error = true;
return false;
@@ -187,10 +188,11 @@ public class Vala.BinaryExpression : Expression {
var ma = new MemberAccess.simple (local.name, source_reference);
ma.target_type = target_type;
ma.formal_target_type = formal_target_type;
- ma.check (context);
parent_node.replace_expression (this, ma);
+ ma.check (context);
+
return true;
}
@@ -243,10 +245,11 @@ public class Vala.BinaryExpression : Expression {
}
var temp_access = SemanticAnalyzer.create_temp_access (local, target_type);
- temp_access.check (context);
parent_node.replace_expression (this, temp_access);
+ temp_access.check (context);
+
return true;
}
diff --git a/vala/valaconditionalexpression.vala b/vala/valaconditionalexpression.vala
index 3ae003c..b86ee1f 100644
--- a/vala/valaconditionalexpression.vala
+++ b/vala/valaconditionalexpression.vala
@@ -169,20 +169,20 @@ public class Vala.ConditionalExpression : Expression {
false_expression.target_type = value_type;
var true_stmt = new ExpressionStatement (new Assignment (new MemberAccess.simple (local.name,
true_expression.source_reference), true_expression, AssignmentOperator.SIMPLE,
true_expression.source_reference), true_expression.source_reference);
- true_stmt.check (context);
var false_stmt = new ExpressionStatement (new Assignment (new MemberAccess.simple
(local.name, false_expression.source_reference), false_expression, AssignmentOperator.SIMPLE,
false_expression.source_reference), false_expression.source_reference);
- false_stmt.check (context);
true_block.replace_statement (true_decl, true_stmt);
false_block.replace_statement (false_decl, false_stmt);
+ true_stmt.check (context);
+ false_stmt.check (context);
var ma = new MemberAccess.simple (local.name, source_reference);
ma.formal_target_type = formal_target_type;
ma.target_type = target_type;
- ma.check (context);
parent_node.replace_expression (this, ma);
+ ma.check (context);
return true;
}
diff --git a/vala/valamethodcall.vala b/vala/valamethodcall.vala
index 0229e40..bb0a94a 100644
--- a/vala/valamethodcall.vala
+++ b/vala/valamethodcall.vala
@@ -637,7 +637,6 @@ public class Vala.MethodCall : Expression {
local.initializer = this;
decl.check (context);
-
// move temp variable to insert block to ensure the
// variable is in the same block as the declaration
// otherwise there will be scoping issues in the generated code
diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala
index 954f77c..6a1d319 100644
--- a/vala/valaobjectcreationexpression.vala
+++ b/vala/valaobjectcreationexpression.vala
@@ -439,7 +439,6 @@ public class Vala.ObjectCreationExpression : Expression {
local.initializer = this;
decl.check (context);
-
// move temp variable to insert block to ensure the
// variable is in the same block as the declaration
// otherwise there will be scoping issues in the generated code
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]