From e639b4bcbbef6ebbc639ecae7348bd607ea31cf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Tue, 28 Aug 2012 06:57:38 +0200 Subject: [PATCH] [Analysis] Handled null conditions in do while & while statements. --- ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs b/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs index 21b4526963..b74c2fe1df 100644 --- a/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs +++ b/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs @@ -535,7 +535,7 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis Connect(data, conditionNode); - bool? cond = builder.EvaluateCondition(whileStatement.Condition); + bool? cond = whileStatement.Condition.IsNull ? true : builder.EvaluateCondition(whileStatement.Condition); ControlFlowNode bodyStart = builder.CreateStartNode(whileStatement.EmbeddedStatement); if (cond != false) Connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); @@ -563,7 +563,7 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis ControlFlowNode bodyEnd = doWhileStatement.EmbeddedStatement.AcceptVisitor(this, bodyStart); Connect(bodyEnd, conditionNode); - bool? cond = builder.EvaluateCondition(doWhileStatement.Condition); + bool? cond = doWhileStatement.Condition.IsNull ? true : builder.EvaluateCondition(doWhileStatement.Condition); if (cond != false) Connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); if (cond != true)