From 57e0ef47749286aa4fe8ee442e02a76b7ce94e31 Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Tue, 4 Feb 2014 11:59:50 -0800 Subject: [PATCH] Revert changes to CSharpDesignTimeHelpersVisitor. Without the initial code tree acceptance you end up stack overflowing. Also removed a validation check that ensures that there's always a base type (not true). --- .../Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs | 2 +- .../CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs | 4 ++-- .../Generator/Compiler/CodeBuilder/ChunkVisitor.cs | 2 +- .../Generator/CodeTree/CodeTreeOutputValidator.cs | 1 - 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs index 7735dbc7d6..9cf55d6ecc 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs @@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp new CSharpHelperVisitor(writer, Context).Accept(Tree.Chunks); new CSharpTypeMemberVisitor(writer, Context).Accept(Tree.Chunks); - new CSharpDesignTimeHelpersVisitor(writer, Context).Accept(Tree.Chunks); + new CSharpDesignTimeHelpersVisitor(writer, Context).AcceptTree(Tree); // TODO: resolve variable declarations diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs index 1c000663f8..b8eb2c5bec 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpDesignTimeHelpersVisitor.cs @@ -14,7 +14,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp _context = context; } - public override void Accept(System.Collections.Generic.IList chunks) + public void AcceptTree(CodeTree tree) { if (_context.Host.DesignTimeMode) { @@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp { using (_writer.BuildDisableWarningScope()) { - Accept(chunks); + Accept(tree.Chunks); } } } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs index d91309327f..8e4028c5d7 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/ChunkVisitor.cs @@ -5,7 +5,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler { public abstract class ChunkVisitor : IChunkVisitor { - public virtual void Accept(IList chunks) + public void Accept(IList chunks) { if (chunks == null) { diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeOutputValidator.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeOutputValidator.cs index 3a67b066b9..c6f1f4086a 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeOutputValidator.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeOutputValidator.cs @@ -114,7 +114,6 @@ namespace Microsoft.AspNet.Razor.Test.Generator private static void ValidateCodeTreeContainsAll(string codeTreeCode, string codeDOMCode, string regex) { var matches = Regex.Matches(codeDOMCode, regex); - Assert.NotEmpty(matches); for (int i = 0; i < matches.Count; i++) {