From: Rico Tzschichholz Date: Tue, 23 Oct 2018 13:05:30 +0000 (+0200) Subject: vala: Add some missing type copying X-Git-Tag: 0.43.1~176 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f373db98f897ac5266b2b0fb8034a8b4d0837a9;p=thirdparty%2Fvala.git vala: Add some missing type copying --- diff --git a/vala/valaassignment.vala b/vala/valaassignment.vala index d00e2f011..abb225662 100644 --- a/vala/valaassignment.vala +++ b/vala/valaassignment.vala @@ -221,10 +221,10 @@ public class Vala.Assignment : Expression { parent_node.replace_expression (this, set_call); return set_call.check (context); } else { - right.target_type = left.value_type; + right.target_type = left.value_type.copy (); } } else if (left is PointerIndirection) { - right.target_type = left.value_type; + right.target_type = left.value_type.copy (); } else { error = true; Report.error (source_reference, "unsupported lvalue in assignment"); @@ -247,7 +247,7 @@ public class Vala.Assignment : Expression { var old_value = new MemberAccess (ma.inner, ma.member_name); var bin = new BinaryExpression (BinaryOperator.PLUS, old_value, right, source_reference); - bin.target_type = right.target_type; + bin.target_type = right.target_type.copy (); right.target_type = right.target_type.copy (); right.target_type.value_owned = false; @@ -315,7 +315,7 @@ public class Vala.Assignment : Expression { return false; } - right.value_type = variable.variable_type; + right.value_type = variable.variable_type.copy (); } else { error = true; Report.error (source_reference, "Assignment: Invalid assignment attempt"); diff --git a/vala/valareturnstatement.vala b/vala/valareturnstatement.vala index cdb782cf2..f51164968 100644 --- a/vala/valareturnstatement.vala +++ b/vala/valareturnstatement.vala @@ -84,7 +84,7 @@ public class Vala.ReturnStatement : CodeNode, Statement { checked = true; if (return_expression != null) { - return_expression.target_type = context.analyzer.current_return_type; + return_expression.target_type = context.analyzer.current_return_type.copy (); } if (return_expression != null && !return_expression.check (context)) {