diff dmd/expression.c @ 139:0ab29b838084 trunk

[svn r143] Fixed: a few bugs in debug information, still only line info, but should be correct files now :) Fixed: tango.io.Console seems to be working now.
author lindquist
date Tue, 22 Jan 2008 00:01:16 +0100
parents 0e28624814e8
children 5acec6b2eef8
line wrap: on
line diff
--- a/dmd/expression.c	Fri Jan 18 20:13:19 2008 +0100
+++ b/dmd/expression.c	Tue Jan 22 00:01:16 2008 +0100
@@ -518,7 +518,7 @@
 	    {
 		// BUG: should check that argument to ref is type 'invariant'
 		// BUG: assignments to ref should also be type 'invariant'
-		arg = arg->modifiableLvalue(sc, NULL);
+		arg = arg->modifiableLvalue(sc, arg);
 
 		//if (arg->op == TOKslice)
 		    //arg->error("cannot modify slice %s", arg->toChars());
@@ -4357,7 +4357,7 @@
 	if (e)
 	    return e;
 
-	e1 = e1->modifiableLvalue(sc, NULL);
+	e1 = e1->modifiableLvalue(sc, e1);
 	e1->checkScalar();
 	type = e1->type;
 	if (type->toBasetype()->ty == Tbool)
@@ -4388,7 +4388,7 @@
 	if (e)
 	    return e;
 
-	e1 = e1->modifiableLvalue(sc, NULL);
+	e1 = e1->modifiableLvalue(sc, e1);
 	e1->checkScalar();
 	type = e1->type;
 	if (type->toBasetype()->ty == Tbool)
@@ -6874,7 +6874,7 @@
 	    return e;
 
 	e = this;
-	e1 = e1->modifiableLvalue(sc, NULL);
+	e1 = e1->modifiableLvalue(sc, e1);
 	e1->checkScalar();
 	e1->checkNoBool();
 	if (e1->type->ty == Tpointer)
@@ -7060,7 +7060,7 @@
 	// e1 is not an lvalue, but we let code generator handle it
 	ArrayLengthExp *ale = (ArrayLengthExp *)e1;
 
-	ale->e1 = ale->e1->modifiableLvalue(sc, NULL);
+	ale->e1 = ale->e1->modifiableLvalue(sc, e1);
     }
     else if (e1->op == TOKslice)
 	;
@@ -7122,7 +7122,7 @@
     if (e)
 	return e;
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
 
     Type *tb1 = e1->type->toBasetype();
     Type *tb2 = e2->type->toBasetype();
@@ -7222,7 +7222,7 @@
     if (e)
 	return e;
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
     e1->checkScalar();
     e1->checkNoBool();
     if (e1->type->ty == Tpointer && e2->type->isintegral())
@@ -7267,7 +7267,7 @@
 	    error("cannot append to static array %s", se->e1->type->toChars());
     }
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
 
     Type *tb1 = e1->type->toBasetype();
     Type *tb2 = e2->type->toBasetype();
@@ -7316,7 +7316,7 @@
     if (e)
 	return e;
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
     e1->checkScalar();
     e1->checkNoBool();
     type = e1->type;
@@ -7372,7 +7372,7 @@
     if (e)
 	return e;
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
     e1->checkScalar();
     e1->checkNoBool();
     type = e1->type;
@@ -7443,7 +7443,7 @@
     if (e)
 	return e;
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
     e1->checkScalar();
     e1->checkNoBool();
     type = e1->type;
@@ -7472,7 +7472,7 @@
     if (e)
 	return e;
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
     e1->checkScalar();
     e1->checkNoBool();
     type = e1->type;
@@ -7501,7 +7501,7 @@
     if (e)
 	return e;
 
-    e1 = e1->modifiableLvalue(sc, NULL);
+    e1 = e1->modifiableLvalue(sc, e1);
     e1->checkScalar();
     e1->checkNoBool();
     type = e1->type;