]> 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>
Fri, 8 Oct 2010 21:06:47 +0000 (23:06 +0200)
Fixes bug 631247.

vala/valaaddressofexpression.vala

index c6804d6d88ea36648a68c5b2604bac2835416201..83754e5cd05e1dedbb8402910d32dc5ec9e2d270 100644 (file)
@@ -81,10 +81,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;