private static bool IsChangeDestructiveForChildNodes(IAstNode node, ITextRange changedRange) {
if(changedRange.End <= node.Start || changedRange.Start >= node.End) {
return false;
}
else if(node.Children.Count == 0) {
return true;
}
bool result = false;
foreach (var child in node.Children) {
result |= IsChangeDestructiveForChildNodes(child, changedRange);
if(result) {
break;
}
}
return result;
}