static void CollectSwitchSectionStatements(AstNodeCollection <Statement> result, RefactoringContext context, Statement statement) { BlockStatement blockStatement; if (statement is BlockStatement) { blockStatement = (BlockStatement)statement.Clone(); } else { blockStatement = new BlockStatement { statement.Clone() } }; var breackStatement = new BreakStatement(); blockStatement.Add(breackStatement); // check if break is needed var reachabilityAnalysis = context.CreateReachabilityAnalysis(blockStatement); if (!reachabilityAnalysis.IsReachable(breackStatement)) { blockStatement.Statements.Remove(breackStatement); } var statements = blockStatement.Statements.ToArray(); blockStatement.Statements.Clear(); result.AddRange(statements); } }