From ad2c63ca3700663f10e054d0a1f19209cd486104 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Fri, 16 Feb 2018 09:22:45 +0000 Subject: [PATCH] Make OpenRegion/CloseRegion not public because they are only to support AddContent(seq, fragment) --- .../RenderTree/RenderTreeBuilder.cs | 17 ++++++----------- .../BasicTestApp/RenderBlockComponent.cs | 16 +++++++--------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs b/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs index f71cc4c92a..4b5f7e6bb2 100644 --- a/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs +++ b/src/Microsoft.AspNetCore.Blazor/RenderTree/RenderTreeBuilder.cs @@ -201,22 +201,17 @@ namespace Microsoft.AspNetCore.Blazor.RenderTree entry = entry.WithComponentSubtreeLength(_entries.Count - indexOfEntryBeingClosed); } - /// - /// Appends a frame denoting the start of a region (that is, a tree fragment that is - /// processed as a unit for the purposes of diffing). - /// - /// An integer that represents the position of the instruction in the source code. - public void OpenRegion(int sequence) + // Internal for tests + // Not public because there's no current use case for user code defining regions arbitrarily. + // Currently the sole use case for regions is when appending a RenderFragment. + internal void OpenRegion(int sequence) { _openElementIndices.Push(_entries.Count); Append(RenderTreeFrame.Region(sequence)); } - /// - /// Marks a previously appended region frame as closed. Calls to this method - /// must be balanced with calls to . - /// - public void CloseRegion() + // See above for why this is not public + internal void CloseRegion() { var indexOfEntryBeingClosed = _openElementIndices.Pop(); ref var entry = ref _entries.Buffer[indexOfEntryBeingClosed]; diff --git a/test/testapps/BasicTestApp/RenderBlockComponent.cs b/test/testapps/BasicTestApp/RenderBlockComponent.cs index 7088aad36d..ff68bc5846 100644 --- a/test/testapps/BasicTestApp/RenderBlockComponent.cs +++ b/test/testapps/BasicTestApp/RenderBlockComponent.cs @@ -43,22 +43,20 @@ namespace BasicTestApp private void Render() => _renderHandle.Render(builder => { builder.OpenElement(0, "div"); // Container so we can see that passing through regions is OK - builder.OpenRegion(1); - builder.AddContent(2, "Region will be toggled below "); + builder.AddContent(1, "Region will be toggled below "); if (_showRegion) { - builder.AddContent(3, _exampleContent); + builder.AddContent(2, _exampleContent); } - builder.OpenElement(4, "button"); - builder.AddAttribute(5, "onclick", ToggleRegion); - builder.AddContent(6, "Toggle"); + builder.OpenElement(3, "button"); + builder.AddAttribute(4, "onclick", ToggleRegion); + builder.AddContent(5, "Toggle"); builder.CloseElement(); - builder.CloseRegion(); - builder.OpenElement(7, "p"); - builder.AddContent(8, "The end"); + builder.OpenElement(6, "p"); + builder.AddContent(7, "The end"); builder.CloseElement(); builder.CloseElement(); });