[vala] Make address-of operator work on all variables



commit a36fe4be766c0b5f14cd1bf1f75b9e2ddc77e76c
Author: Jürg Billeter <j bitron ch>
Date:   Sun Oct 3 12:19:24 2010 -0700

    Make address-of operator work on all variables
    
    Fixes bug 631247.

 vala/valaaddressofexpression.vala |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/vala/valaaddressofexpression.vala b/vala/valaaddressofexpression.vala
index cda53ed..6ac0b1e 100644
--- a/vala/valaaddressofexpression.vala
+++ b/vala/valaaddressofexpression.vala
@@ -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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]