From 9fc340553fa65d0587714d16bdf5510f9a5c16e5 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Fri, 14 Dec 2018 16:34:03 -0800 Subject: [PATCH] Minor text tag fix \n\nCommit migrated from https://github.com/dotnet/aspnetcore-tooling/commit/5787d1e7d4bc208664fcb0ff57e376785388419c --- .../src/Legacy/HtmlMarkupParser.cs | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/HtmlMarkupParser.cs b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/HtmlMarkupParser.cs index 65fc3f0640..3286cbbc66 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/HtmlMarkupParser.cs +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/HtmlMarkupParser.cs @@ -712,35 +712,27 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AcceptAndMoveNext(); - var bookmark = CurrentStart.AbsoluteIndex; - var tokens = ReadWhile(IsSpacingToken(includeNewLines: true)); - var selfClosing = At(SyntaxKind.ForwardSlash); - if (selfClosing) + AcceptWhile(IsSpacingToken(includeNewLines: false)); + if (At(SyntaxKind.CloseAngle) || + (At(SyntaxKind.ForwardSlash) && NextIs(SyntaxKind.CloseAngle))) { - tagMode = MarkupTagMode.SelfClosing; - Accept(tokens); - Assert(SyntaxKind.ForwardSlash); - AcceptAndMoveNext(); - bookmark = CurrentStart.AbsoluteIndex; - tokens = ReadWhile(IsSpacingToken(includeNewLines: true)); - } + if (At(SyntaxKind.ForwardSlash)) + { + tagMode = MarkupTagMode.SelfClosing; + AcceptAndMoveNext(); // '/' + } - if (!At(SyntaxKind.CloseAngle)) + AcceptAndMoveNext(); // '>' + SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; + } + else { - Context.Source.Position = bookmark; - NextToken(); Context.ErrorSink.OnError( RazorDiagnosticFactory.CreateParsing_TextTagCannotContainAttributes( new SourceSpan(textLocation, contentLength: 4 /* text */))); RecoverTextTag(); } - else - { - Accept(tokens); - TryAccept(SyntaxKind.CloseAngle); - SpanContext.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; - } isWellFormed = true; SpanContext.ChunkGenerator = SpanChunkGenerator.Null;