From 267b3fab0a54c93baec7db30bae46056abd63407 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 6 Jul 2017 19:24:25 -0700 Subject: [PATCH] Made IntermediateNodeWalker.Ancestors indexable --- .../Intermediate/IntermediateNodeWalker.cs | 10 +++++----- .../Intermediate/IntermediateNodeWalkerTest.cs | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IntermediateNodeWalker.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IntermediateNodeWalker.cs index b333bda1d0..8cafe05a9a 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IntermediateNodeWalker.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IntermediateNodeWalker.cs @@ -7,11 +7,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate { public abstract class IntermediateNodeWalker : IntermediateNodeVisitor { - private readonly Stack _ancestors = new Stack(); + private readonly List _ancestors = new List(); - protected IEnumerable Ancestors => _ancestors; + protected IReadOnlyList Ancestors => _ancestors; - protected IntermediateNode Parent => _ancestors.Count > 0 ? _ancestors.Peek() : null; + protected IntermediateNode Parent => _ancestors.Count > 0 ? _ancestors[0] : null; public override void VisitDefault(IntermediateNode node) { @@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate return; } - _ancestors.Push(node); + _ancestors.Insert(0, node); try { @@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate } finally { - _ancestors.Pop(); + _ancestors.RemoveAt(0); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Intermediate/IntermediateNodeWalkerTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Intermediate/IntermediateNodeWalkerTest.cs index 50f0894df6..f91735f9c3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Intermediate/IntermediateNodeWalkerTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Intermediate/IntermediateNodeWalkerTest.cs @@ -93,7 +93,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate private class DerivedIntermediateNodeWalker : IntermediateNodeWalker { - public new IEnumerable Ancestors => base.Ancestors; + public new IReadOnlyList Ancestors => base.Ancestors; public new IntermediateNode Parent => base.Parent;