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'");
        }