2 writes to Regions
Microsoft.CodeAnalysis (2)
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (2)
132Regions = ArrayBuilder<RegionBuilder>.GetInstance(); 289Regions = null;
52 references to Regions
Microsoft.CodeAnalysis (52)
Operations\ControlFlowGraphBuilder.cs (16)
522for (int i = region.Regions.Count - 1; i >= 0; i--) 524RegionBuilder r = region.Regions[i]; 550if (region.Regions?.Count == 1) 552RegionBuilder subRegion = region.Regions[0]; 569for (int i = region.Regions.Count - 1; i >= 0; i--) 571RegionBuilder subRegion = region.Regions[i]; 590region.Regions.RemoveAt(i); 638foreach (RegionBuilder r in subRegion.Regions) 650enclosing.ReplaceRegion(subRegion, subRegion.Regions); 760Debug.Assert(tryAndFinally.Regions!.Count == 2); 762RegionBuilder @try = tryAndFinally.Regions.First(); 764Debug.Assert(tryAndFinally.Regions.Last() == currentRegion); 3732Debug.Assert(filterAndHandlerRegion.Regions![0].LastBlock!.FallThrough.Destination == null); 3737Debug.Assert(predecessors.All(p => filterAndHandlerRegion.Regions[0].FirstBlock!.Ordinal <= p.Ordinal && 3738filterAndHandlerRegion.Regions[0].LastBlock!.Ordinal >= p.Ordinal)); 3774Debug.Assert(tryAndFinallyRegion?.Regions![1].LastBlock!.FallThrough.Destination == null);
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (36)
52[MemberNotNullWhen(true, nameof(Regions))] 53public bool HasRegions => Regions?.Count > 0; 127[MemberNotNull(nameof(Regions))] 130if (Regions == null) 139Regions.Add(region); 142ControlFlowRegionKind lastKind = Regions.Last().Kind; 146Debug.Assert(Regions.Count <= 2); 147Debug.Assert(lastKind == (Regions.Count < 2 ? ControlFlowRegionKind.Filter : ControlFlowRegionKind.Catch)); 151if (Regions.Count == 1) 162Debug.Assert(Regions.Count <= 2); 163if (Regions.Count == 1) 186Debug.Assert(Regions != null); 188if (Regions.Count == 1) 190Debug.Assert(Regions[0] == region); 191Regions.Clear(); 195Regions.RemoveAt(Regions.IndexOf(region)); 206Debug.Assert(Regions != null); 210if (Regions.Count == 1) 212Debug.Assert(Regions[0] == toReplace); 217insertAt = Regions.IndexOf(toReplace); 225Regions[insertAt] = single; 229int originalCount = Regions.Count; 230Regions.Count = replaceWithCount - 1 + originalCount; 232for (int i = originalCount - 1, j = Regions.Count - 1; i > insertAt; i--, j--) 234Regions[j] = Regions[i]; 240Regions[insertAt++] = region; 254Regions!.Last().LastBlock == block); 267FirstBlock = Regions.First().FirstBlock; 269Debug.Assert(Regions.Count == 1 && Regions.First().LastBlock == block); 274Debug.Assert(!HasRegions || Regions.Last().LastBlock!.Ordinal <= block.Ordinal); 288Regions?.Free(); 321var builder = ArrayBuilder<ControlFlowRegion>.GetInstance(Regions.Count); 323foreach (RegionBuilder region in Regions)