Browse Source

Update PatternStatementTransform: auto events now use do-while loops.

pull/976/head
Siegfried Pammer 8 years ago
parent
commit
e66ebfca7a
  1. 23
      ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs

23
ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs

@ -488,8 +488,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
MemberName = Pattern.AnyString MemberName = Pattern.AnyString
}) })
}, },
new WhileStatement { new DoWhileStatement {
Condition = new PrimitiveExpression(true),
EmbeddedStatement = new BlockStatement { EmbeddedStatement = new BlockStatement {
new AssignmentExpression(new NamedNode("var2", new IdentifierExpression(Pattern.AnyString)), new IdentifierExpressionBackreference("var1")), new AssignmentExpression(new NamedNode("var2", new IdentifierExpression(Pattern.AnyString)), new IdentifierExpressionBackreference("var1")),
new AssignmentExpression { new AssignmentExpression {
@ -507,18 +506,16 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
new IdentifierExpressionBackreference("var3"), new IdentifierExpressionBackreference("var3"),
new IdentifierExpressionBackreference("var2") new IdentifierExpressionBackreference("var2")
} }
)}, )}
new IfElseStatement { },
Condition = new BinaryOperatorExpression { Condition = new BinaryOperatorExpression {
Left = new CastExpression(new TypePattern(typeof(object)), new IdentifierExpressionBackreference("var1")), Left = new CastExpression(new TypePattern(typeof(object)), new IdentifierExpressionBackreference("var1")),
Operator = BinaryOperatorType.Equality, Operator = BinaryOperatorType.InEquality,
Right = new IdentifierExpressionBackreference("var2") Right = new IdentifierExpressionBackreference("var2")
}, },
TrueStatement = new BreakStatement()
}
}
} }
}}; }
};
bool CheckAutomaticEventMatch(Match m, CustomEventDeclaration ev, bool isAddAccessor) bool CheckAutomaticEventMatch(Match m, CustomEventDeclaration ev, bool isAddAccessor)
{ {

Loading…
Cancel
Save