From 1bb19961e4f30d15c18342f8533a5e66248b0bdd Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 2 Sep 2011 13:22:02 +0200 Subject: [PATCH] Revert "Set lvalue access for struct properties" This reverts commit f9186d12f28911d98e6f41d58f595fa81de602cb. --- codegen/valaccodememberaccessmodule.vala | 4 ---- tests/Makefile.am | 1 - tests/objects/bug658046.vala | 17 ----------------- vala/valamemberaccess.vala | 2 +- 4 files changed, 1 insertion(+), 23 deletions(-) delete mode 100644 tests/objects/bug658046.vala diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala index deef89cd4..349a96ead 100644 --- a/codegen/valaccodememberaccessmodule.vala +++ b/codegen/valaccodememberaccessmodule.vala @@ -193,10 +193,6 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule { CCodeExpression inst; inst = new CCodeMemberAccess.pointer (pub_inst, "priv"); set_cvalue (expr, new CCodeMemberAccess.pointer (inst, get_ccode_name (prop.field))); - if (expr.lvalue) { - // no temp variable - return; - } } else if (!get_ccode_no_accessor_method (prop)) { var base_property = prop; if (prop.base_property != null) { diff --git a/tests/Makefile.am b/tests/Makefile.am index 25004eccc..d1b1491f9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -109,7 +109,6 @@ TESTS = \ objects/bug646792.vala \ objects/bug653138.vala \ objects/bug654702.vala \ - objects/bug658046.vala \ errors/errors.vala \ errors/bug567181.vala \ errors/bug579101.vala \ diff --git a/tests/objects/bug658046.vala b/tests/objects/bug658046.vala deleted file mode 100644 index 263246b0e..000000000 --- a/tests/objects/bug658046.vala +++ /dev/null @@ -1,17 +0,0 @@ -struct Foo { - int i; -} - -class Bar { - public Foo prop { get; protected set; } - - public void baz () { - prop.i = 10; - } -} - -void main () { - var bar = new Bar (); - bar.baz (); - assert (bar.prop.i == 10); -} diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index 9ced173af..1ec08dac3 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -829,7 +829,7 @@ public class Vala.MemberAccess : Expression { instance = symbol_reference is Property && ((Property) symbol_reference).binding == MemberBinding.INSTANCE; } var this_access = inner.symbol_reference is Parameter && inner.symbol_reference.name == "this"; - if (instance && inner.value_type is StructValueType && !inner.value_type.nullable && (symbol_reference is Method || lvalue) && ((inner is MemberAccess && (inner.symbol_reference is Variable || inner.symbol_reference is Property)) || inner is ElementAccess) && !this_access) { + if (instance && inner.value_type is StructValueType && !inner.value_type.nullable && (symbol_reference is Method || lvalue) && ((inner is MemberAccess && inner.symbol_reference is Variable) || inner is ElementAccess) && !this_access) { inner.lvalue = true; if (inner is MemberAccess) { ((MemberAccess) inner).check_lvalue_struct_access (); -- 2.47.2