[vala/staging] vala: Don't replace assignments for local variables with non-null simple-types
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/staging] vala: Don't replace assignments for local variables with non-null simple-types
- Date: Tue, 26 Mar 2019 12:29:48 +0000 (UTC)
commit 1f885e91cb196b9f03586e88ec56c8c8995919c3
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Thu Nov 22 12:40:23 2018 +0100
vala: Don't replace assignments for local variables with non-null simple-types
Reintroduce e701142da4601ece5ca71cc4484728b08969c74e
See https://gitlab.gnome.org/GNOME/vala/issues/755
vala/valaassignment.vala | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
---
diff --git a/vala/valaassignment.vala b/vala/valaassignment.vala
index 0b6fbc9ad..183ea57be 100644
--- a/vala/valaassignment.vala
+++ b/vala/valaassignment.vala
@@ -224,13 +224,13 @@ public class Vala.Assignment : Expression {
return false;
}
- if (operator != AssignmentOperator.SIMPLE && left is MemberAccess) {
+ unowned MemberAccess? ma = left as MemberAccess;
+ if (operator != AssignmentOperator.SIMPLE && ma != null
+ && !(left.value_type.is_non_null_simple_type () && ma.symbol_reference is LocalVariable))
{
// transform into simple assignment
// FIXME: only do this if the backend doesn't support
// the assignment natively
- var ma = (MemberAccess) left;
-
var old_value = new MemberAccess (ma.inner, ma.member_name);
BinaryOperator bop;
@@ -260,9 +260,7 @@ public class Vala.Assignment : Expression {
operator = AssignmentOperator.SIMPLE;
}
- if (left is MemberAccess) {
- var ma = (MemberAccess) left;
-
+ if (ma != null) {
if (ma.symbol_reference is Property) {
var prop = (Property) ma.symbol_reference;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]