@@ -51,6 +51,11 @@ private bool Visit(Expression x, Expression y)
5151 case ExpressionType . ArrayLength :
5252 case ExpressionType . Quote :
5353 case ExpressionType . TypeAs :
54+ case ExpressionType . Decrement :
55+ case ExpressionType . Increment :
56+ case ExpressionType . IsFalse :
57+ case ExpressionType . IsTrue :
58+ case ExpressionType . OnesComplement :
5459 return VisitUnary ( ( UnaryExpression ) x , ( UnaryExpression ) y ) ;
5560 case ExpressionType . Add :
5661 case ExpressionType . AddChecked :
@@ -75,13 +80,19 @@ private bool Visit(Expression x, Expression y)
7580 case ExpressionType . RightShift :
7681 case ExpressionType . LeftShift :
7782 case ExpressionType . ExclusiveOr :
83+ case ExpressionType . Power :
84+ case ExpressionType . Assign :
7885 return VisitBinary ( ( BinaryExpression ) x , ( BinaryExpression ) y ) ;
7986 case ExpressionType . TypeIs :
8087 return VisitTypeIs ( ( TypeBinaryExpression ) x , ( TypeBinaryExpression ) y ) ;
88+ case ExpressionType . TypeEqual :
89+ return VisitTypeEqual ( ( TypeBinaryExpression ) x , ( TypeBinaryExpression ) y ) ;
8190 case ExpressionType . Conditional :
8291 return VisitConditional ( ( ConditionalExpression ) x , ( ConditionalExpression ) y ) ;
8392 case ExpressionType . Constant :
8493 return VisitConstant ( ( ConstantExpression ) x , ( ConstantExpression ) y ) ;
94+ case ExpressionType . Default :
95+ return true ; // types and references are already compared
8596 case ExpressionType . Parameter :
8697 return VisitParameter ( ( ParameterExpression ) x , ( ParameterExpression ) y ) ;
8798 case ExpressionType . MemberAccess :
@@ -236,6 +247,11 @@ private bool VisitTypeIs(TypeBinaryExpression x, TypeBinaryExpression y)
236247 return x . TypeOperand == y . TypeOperand && Visit ( x . Expression , y . Expression ) ;
237248 }
238249
250+ private bool VisitTypeEqual ( TypeBinaryExpression x , TypeBinaryExpression y )
251+ {
252+ return x . TypeOperand == y . TypeOperand && Visit ( x . Expression , y . Expression ) ;
253+ }
254+
239255 private bool VisitBinary ( BinaryExpression x , BinaryExpression y )
240256 {
241257 return x . Method == y . Method && Visit ( x . Left , y . Left ) && Visit ( x . Right , y . Right ) ;
0 commit comments