Browse Source

Make collapsing of "x = x + y" to "x += y" work in a few more cases.

pull/100/head
Daniel Grunwald 15 years ago
parent
commit
de3d9117c4
  1. 9
      ICSharpCode.Decompiler/Ast/Transforms/ReplaceMethodCallsWithOperators.cs

9
ICSharpCode.Decompiler/Ast/Transforms/ReplaceMethodCallsWithOperators.cs

@ -207,7 +207,14 @@ namespace ICSharpCode.Decompiler.Ast.Transforms
bool IsWithoutSideEffects(Expression left) bool IsWithoutSideEffects(Expression left)
{ {
return left is IdentifierExpression; // TODO if (left is ThisReferenceExpression)
return true;
if (left is IdentifierExpression)
return true;
MemberReferenceExpression mre = left as MemberReferenceExpression;
if (mre != null)
return mre.Annotation<FieldReference>() != null && IsWithoutSideEffects(mre.Target);
return false;
} }
void IAstTransform.Run(AstNode node) void IAstTransform.Run(AstNode node)

Loading…
Cancel
Save