private static void Validate(SyntaxNodeOrTokenList list) { for (int i = 0; i < list.Count; i++) { var item = list[i]; if ((i & 1) == 0) { Debug.Assert(item.IsNode, "Node missing in separated list."); } else { Debug.Assert(item.IsToken, "Separator token missing in separated list."); } } }
internal SeparatedSyntaxList(SyntaxNodeOrTokenList list) : this() { Validate(list); // calculating counts is very cheap when list interleaves nodes and tokens // so lets just do it here. int allCount = list.Count; _count = (allCount + 1) >> 1; _separatorCount = allCount >> 1; _list = list; }