Author: marek
Date: 2007-11-07 10:57:03 -0500 (Wed, 07 Nov 2007)
New Revision: 89114

Modified:
   trunk/mcs/mcs/ecore.cs
   trunk/mcs/mcs/expression.cs
Log:
Re-enabled CS1612 test.



Modified: trunk/mcs/mcs/ecore.cs
===================================================================
--- trunk/mcs/mcs/ecore.cs      2007-11-07 15:56:35 UTC (rev 89113)
+++ trunk/mcs/mcs/ecore.cs      2007-11-07 15:57:03 UTC (rev 89114)
@@ -1146,7 +1146,7 @@
                        Report.Error (205, loc, "Cannot call an abstract base 
member `{0}'", name);
                }
                
-               protected void Error_CannotModiftyIntermediateExpressionValue ()
+               protected void Error_CannotModifyIntermediateExpressionValue ()
                {
                        Report.Error (1612, loc, "Cannot modify a value type 
return value of `{0}'. Consider storing the value in a temporary variable",
                                GetSignatureForError ());
@@ -5114,7 +5114,7 @@
                        }
 
                        if (right_side == EmptyExpression.LValueMemberAccess || 
right_side == EmptyExpression.LValueMemberOutAccess) {
-                               Error_CannotModiftyIntermediateExpressionValue 
();
+                               Error_CannotModifyIntermediateExpressionValue 
();
                        }
 
                        if (setter == null){

Modified: trunk/mcs/mcs/expression.cs
===================================================================
--- trunk/mcs/mcs/expression.cs 2007-11-07 15:56:35 UTC (rev 89113)
+++ trunk/mcs/mcs/expression.cs 2007-11-07 15:57:03 UTC (rev 89114)
@@ -7022,8 +7022,8 @@
                        if (t.IsPointer)
                                return MakePointerAccess (ec, t);
 
-                       //if (t.IsValueType)
-                       //      Error_CannotModiftyIntermediateExpressionValue 
();
+                       if (Expr.eclass != ExprClass.Variable && t.IsValueType)
+                               Error_CannotModifyIntermediateExpressionValue 
();
 
                        return (new IndexerAccess (this, loc)).DoResolveLValue 
(ec, right_side);
                }
@@ -7634,7 +7634,7 @@
 
                        // if the indexer returns a value type, and we try to 
set a field in it
                        if (right_side == EmptyExpression.LValueMemberAccess || 
right_side == EmptyExpression.LValueMemberOutAccess) {
-                               Error_CannotModiftyIntermediateExpressionValue 
();
+                               Error_CannotModifyIntermediateExpressionValue 
();
                        }
 
                        Expression e = ResolveAccessor (ec, AccessorType.Set);

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to