From 32c75fc78ea204e584e2d04f0637651f01108878 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 25 Feb 2016 16:08:44 -0800 Subject: [PATCH] [Fixes #698] Removed unnecessary Debug.Assert in TagHelperBlockRewriter --- .../TagHelpers/TagHelperBlockRewriter.cs | 9 +++++---- .../TagHelpers/TagHelperBlockRewriterTest.cs | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor/Parser/TagHelpers/TagHelperBlockRewriter.cs b/src/Microsoft.AspNetCore.Razor/Parser/TagHelpers/TagHelperBlockRewriter.cs index 015f8fc608..1659736df4 100644 --- a/src/Microsoft.AspNetCore.Razor/Parser/TagHelpers/TagHelperBlockRewriter.cs +++ b/src/Microsoft.AspNetCore.Razor/Parser/TagHelpers/TagHelperBlockRewriter.cs @@ -105,6 +105,11 @@ namespace Microsoft.AspNetCore.Razor.Parser.TagHelpers.Internal attributes.Add( new KeyValuePair(result.AttributeName, result.AttributeValueNode)); } + else + { + // Error occured while parsing the attribute. Don't try parsing the rest to avoid misleading errors. + break; + } } return attributes; @@ -205,10 +210,6 @@ namespace Microsoft.AspNetCore.Razor.Parser.TagHelpers.Internal } else if (symbol.Type == HtmlSymbolType.Equals) { - Debug.Assert( - name != null, - "Name should never be null here. The parser should guarantee an attribute has a name."); - // We've captured all leading whitespace and the attribute name. // We're now at: " asp-for|='...'" or " asp-for|=..." // The goal here is to consume the equal sign and the optional single/double-quote. diff --git a/test/Microsoft.AspNetCore.Razor.Test/TagHelpers/TagHelperBlockRewriterTest.cs b/test/Microsoft.AspNetCore.Razor.Test/TagHelpers/TagHelperBlockRewriterTest.cs index f59d5b9624..e3651ed668 100644 --- a/test/Microsoft.AspNetCore.Razor.Test/TagHelpers/TagHelperBlockRewriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Test/TagHelpers/TagHelperBlockRewriterTest.cs @@ -757,7 +757,23 @@ namespace Microsoft.AspNetCore.Razor.Compilation.TagHelpers RazorResources.FormatParseError_UnexpectedEndTag("p"), absoluteIndex: 31, lineIndex: 0, columnIndex: 31, length: 1) } - } + }, + { + "

", + new MarkupBlock( + new MarkupTagHelperBlock("p", + new List> + { + new KeyValuePair("class", factory.Markup("some")) + })), + new [] + { + new RazorError( + "TagHelper attributes must be well-formed.", + new SourceLocation(13, 0, 13), + length: 13) + } + }, }; } }