Author: martin
Date: 2005-04-12 08:06:44 -0400 (Tue, 12 Apr 2005)
New Revision: 42824
Modified:
trunk/mcs/gmcs/ChangeLog
trunk/mcs/gmcs/expression.cs
Log:
**** Merged r40513 from MCS ****
Modified: trunk/mcs/gmcs/ChangeLog
===================================================================
--- trunk/mcs/gmcs/ChangeLog 2005-04-12 12:05:43 UTC (rev 42823)
+++ trunk/mcs/gmcs/ChangeLog 2005-04-12 12:06:44 UTC (rev 42824)
@@ -1,5 +1,11 @@
2005-02-11 Miguel de Icaza <[EMAIL PROTECTED]>
+ * expression.cs (Cast): Overload DoResolveLValue so we can pass
+ resolve our casted expression as an LValue. This triggers the
+ proper LValue processing that is later required by Assign.
+
+ This fixes 72347.
+
* cs-tokenizer.cs (pp_and): recurse on pp_and, fixes #61903.
2005-02-11 Marek Safar <[EMAIL PROTECTED]>
Modified: trunk/mcs/gmcs/expression.cs
===================================================================
--- trunk/mcs/gmcs/expression.cs 2005-04-12 12:05:43 UTC (rev 42823)
+++ trunk/mcs/gmcs/expression.cs 2005-04-12 12:06:44 UTC (rev 42824)
@@ -1804,12 +1804,26 @@
return null;
}
+ public override Expression DoResolveLValue (EmitContext ec,
Expression right_side)
+ {
+ expr = expr.DoResolveLValue (ec, right_side);
+ if (expr == null)
+ return null;
+
+ return ResolveRest (ec);
+ }
+
public override Expression DoResolve (EmitContext ec)
{
expr = expr.Resolve (ec);
if (expr == null)
return null;
+ return ResolveRest (ec);
+ }
+
+ Expression ResolveRest (EmitContext ec)
+ {
TypeExpr target = target_type.ResolveAsTypeTerminal
(ec);
if (target == null)
return null;
@@ -1839,7 +1853,7 @@
expr = Convert.ExplicitConversion (ec, expr, type, loc);
return expr;
}
-
+
public override void Emit (EmitContext ec)
{
//
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches