internal override void CheckInvariant(ILPhase phase) { base.CheckInvariant(phase); bool expectNullSection = this.IsLifted; LongSet sets = LongSet.Empty; foreach (var section in Sections) { if (section.HasNullLabel) { Debug.Assert(expectNullSection, "Duplicate 'case null' or 'case null' in non-lifted switch."); expectNullSection = false; } Debug.Assert(!section.Labels.IsEmpty || section.HasNullLabel); Debug.Assert(!section.Labels.Overlaps(sets)); sets = sets.UnionWith(section.Labels); } Debug.Assert(sets.SetEquals(LongSet.Universe), "switch does not handle all possible cases"); Debug.Assert(!expectNullSection, "Lifted switch is missing 'case null'"); }