Author: marek
Date: 2005-10-23 12:49:26 -0400 (Sun, 23 Oct 2005)
New Revision: 52086

Modified:
   trunk/mcs/mcs/ChangeLog
   trunk/mcs/mcs/expression.cs
Log:
2005-10-23  Marek Safar  <[EMAIL PROTECTED]>

        * expression.cs (Binary.DoResolve): Warn when comparing same
        values.


Modified: trunk/mcs/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog     2005-10-23 16:43:01 UTC (rev 52085)
+++ trunk/mcs/mcs/ChangeLog     2005-10-23 16:49:26 UTC (rev 52086)
@@ -1,5 +1,10 @@
 2005-10-23  Marek Safar  <[EMAIL PROTECTED]>
 
+       * expression.cs (Binary.DoResolve): Warn when comparing same
+       values.
+
+2005-10-23  Marek Safar  <[EMAIL PROTECTED]>
+
        Fix #76486.
        * expression.cs (Binary.DoResolve): It looks like there are no
        convetsion rules in enum context.

Modified: trunk/mcs/mcs/expression.cs
===================================================================
--- trunk/mcs/mcs/expression.cs 2005-10-23 16:43:01 UTC (rev 52085)
+++ trunk/mcs/mcs/expression.cs 2005-10-23 16:49:26 UTC (rev 52086)
@@ -2383,15 +2383,15 @@
                                        return e;
                        }
 
-                       // Check CS0652 warning here (before resolving 
operator).
-                       if (oper == Operator.Equality ||
-                           oper == Operator.Inequality ||
-                           oper == Operator.LessThanOrEqual ||
-                           oper == Operator.LessThan ||
-                           oper == Operator.GreaterThanOrEqual ||
-                           oper == Operator.GreaterThan){
-                               CheckUselessComparison (left as Constant, 
right.Type);
-                               CheckUselessComparison (right as Constant, 
left.Type);
+                       // Comparison warnings
+                       if (oper == Operator.Equality || oper == 
Operator.Inequality ||
+                           oper == Operator.LessThanOrEqual || oper == 
Operator.LessThan ||
+                           oper == Operator.GreaterThanOrEqual || oper == 
Operator.GreaterThan){
+                               if (left.Equals (right)) {
+                                       Report.Warning (1718, 3, loc, 
"Comparison made to same variable; did you mean to compare something else?");
+                               }
+                               CheckUselessComparison (lc, right.Type);
+                               CheckUselessComparison (rc, left.Type);
                        }
 
                        return ResolveOperator (ec);

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

Reply via email to