]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Revert "Set lvalue access for struct properties" 1bb19961e4f30d15c18342f8533a5e66248b0bdd
authorLuca Bruno <lucabru@src.gnome.org>
Fri, 2 Sep 2011 11:22:02 +0000 (13:22 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Fri, 2 Sep 2011 11:22:02 +0000 (13:22 +0200)
This reverts commit f9186d12f28911d98e6f41d58f595fa81de602cb.

codegen/valaccodememberaccessmodule.vala
tests/Makefile.am
tests/objects/bug658046.vala [deleted file]
vala/valamemberaccess.vala

index deef89cd42bd4016d7b5c421fb48b6bf33dce0cd..349a96ead1fe4f2e40b2ffdd3416dfba5383f462 100644 (file)
@@ -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) {
index 25004eccc08302616e8e4ccc686be4d4d3b35e2a..d1b1491f9bf6f45976717042c8d2fe842e59f1c7 100644 (file)
@@ -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 (file)
index 263246b..0000000
+++ /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);
-}
index 9ced173af6a90a7d1dcba98ccdd01e5ad30d35e9..1ec08dac3fa9025c858e4fb3c3bb24a2d2d80b15 100644 (file)
@@ -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 ();