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