]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Make address-of operator work on all variables
authorJürg Billeter <j@bitron.ch>
Sun, 3 Oct 2010 19:19:24 +0000 (12:19 -0700)
committerJürg Billeter <j@bitron.ch>
Wed, 6 Oct 2010 20:13:30 +0000 (22:13 +0200)
Fixes bug 631247.

vala/valaaddressofexpression.vala

index cda53ed5e7776d36efb059a8fcdafb9fe8c7e218..6ac0b1e1be978f0d12dc582bf1e94232ff67e1ca 100644 (file)
@@ -83,10 +83,11 @@ public class Vala.AddressofExpression : Expression {
                        error = true;
                        return false;
                }
-               if (!(inner.value_type is ValueType
-                     || inner.value_type is ObjectType
-                     || inner.value_type is PointerType
-                     || inner.value_type is GenericType)) {
+               if (inner is MemberAccess && inner.symbol_reference is Variable) {
+                       // address of variable is always possible
+               } else if (inner is ElementAccess && ((ElementAccess) inner).container.value_type is ArrayType) {
+                       // address of element of regular array is always possible
+               } else {
                        error = true;
                        Report.error (source_reference, "Address-of operator not supported for this expression");
                        return false;