Fix RazorDiagnostics from being hidden and unordered.
- Diagnostics were not being raised to the `RazorSyntaxTree` and weren't being ordered on final output. This resulted in some of our tests missing the fact that certain cases were generating errors.
- Made all three phases of Razor parsing order their diagnostics.
- Added `GetAllDiagnostics` methods to `SyntaxNode`s to be more consistent with IR documents.
- Updated test files. In some cases new errors were found because we're now lifting them to the `SyntaxTree`, in most others the errors are re-ordered.
**Note: In end-to-end scenarios diagnostics were not hidden, only unordered. The IR phase would find nested/hidden documents and lift them to the IR/C# documents.**
\n\nCommit migrated from ef31a9683b
This commit is contained in:
parent
d388f38f1f
commit
b9fde956ea
|
|
@ -42,10 +42,12 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
|
|||
context.Visitor.VisitDocument(documentNode);
|
||||
|
||||
var cSharp = context.CodeWriter.GenerateCode();
|
||||
|
||||
var allOrderedDiagnostics = context.Diagnostics.OrderBy(diagnostic => diagnostic.Span.AbsoluteIndex);
|
||||
return new DefaultRazorCSharpDocument(
|
||||
cSharp,
|
||||
_options,
|
||||
context.Diagnostics.ToArray(),
|
||||
allOrderedDiagnostics.ToArray(),
|
||||
context.SourceMappings.ToArray(),
|
||||
context.LinePragmas.ToArray());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNetCore.Razor.Language.Legacy;
|
||||
using Microsoft.AspNetCore.Razor.Language.Syntax;
|
||||
|
||||
|
|
@ -10,6 +10,9 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
{
|
||||
internal class DefaultRazorSyntaxTree : RazorSyntaxTree
|
||||
{
|
||||
private readonly IReadOnlyList<RazorDiagnostic> _diagnostics;
|
||||
private IReadOnlyList<RazorDiagnostic> _allDiagnostics;
|
||||
|
||||
public DefaultRazorSyntaxTree(
|
||||
SyntaxNode root,
|
||||
RazorSourceDocument source,
|
||||
|
|
@ -18,11 +21,35 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
{
|
||||
Root = root;
|
||||
Source = source;
|
||||
Diagnostics = diagnostics;
|
||||
_diagnostics = diagnostics;
|
||||
Options = options;
|
||||
}
|
||||
|
||||
public override IReadOnlyList<RazorDiagnostic> Diagnostics { get; }
|
||||
public override IReadOnlyList<RazorDiagnostic> Diagnostics
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_allDiagnostics == null)
|
||||
{
|
||||
var allDiagnostics = new HashSet<RazorDiagnostic>();
|
||||
for (var i = 0; i < _diagnostics.Count; i++)
|
||||
{
|
||||
allDiagnostics.Add(_diagnostics[i]);
|
||||
}
|
||||
|
||||
var rootDiagnostics = Root.GetAllDiagnostics();
|
||||
for (var i = 0; i < rootDiagnostics.Count; i++)
|
||||
{
|
||||
allDiagnostics.Add(rootDiagnostics[i]);
|
||||
}
|
||||
|
||||
var allOrderedDiagnostics = allDiagnostics.OrderBy(diagnostic => diagnostic.Span.AbsoluteIndex);
|
||||
_allDiagnostics = allOrderedDiagnostics.ToArray();
|
||||
}
|
||||
|
||||
return _allDiagnostics;
|
||||
}
|
||||
}
|
||||
|
||||
public override RazorParserOptions Options { get; }
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate
|
|||
|
||||
AddAllDiagnostics(node);
|
||||
|
||||
return diagnostics?.ToList() ?? EmptyDiagnostics;
|
||||
var allOrderedDiagnostics = diagnostics?.OrderBy(diagnostic => diagnostic.Span.AbsoluteIndex);
|
||||
|
||||
return allOrderedDiagnostics?.ToList() ?? EmptyDiagnostics;
|
||||
|
||||
void AddAllDiagnostics(IntermediateNode n)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
{
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
{
|
||||
throw new ArgumentNullException(nameof(source));
|
||||
}
|
||||
|
||||
|
||||
var parser = new RazorParser(options ?? RazorParserOptions.CreateDefault());
|
||||
return parser.Parse(source);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
return (TNode)node.WithDiagnostics(allDiagnostics);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets top-level and nested diagnostics from the <paramref name="node"/>.
|
||||
/// </summary>
|
||||
/// <typeparam name="TNode">The type of syntax node.</typeparam>
|
||||
/// <param name="node">The syntax node.</param>
|
||||
/// <returns>The list of <see cref="RazorDiagnostic"/>s.</returns>
|
||||
public static IReadOnlyList<RazorDiagnostic> GetAllDiagnostics<TNode>(this TNode node) where TNode : SyntaxNode
|
||||
{
|
||||
if (node == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(node));
|
||||
}
|
||||
|
||||
var walker = new DiagnosticSyntaxWalker();
|
||||
walker.Visit(node);
|
||||
|
||||
return walker.Diagnostics;
|
||||
}
|
||||
|
||||
public static SourceLocation GetSourceLocation(this SyntaxNode node, RazorSourceDocument source)
|
||||
{
|
||||
if (node == null)
|
||||
|
|
@ -220,5 +239,29 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
var content = string.Concat(tokens.Select(t => t.Content));
|
||||
return content;
|
||||
}
|
||||
|
||||
private class DiagnosticSyntaxWalker : SyntaxWalker
|
||||
{
|
||||
private readonly List<RazorDiagnostic> _diagnostics;
|
||||
|
||||
public DiagnosticSyntaxWalker()
|
||||
{
|
||||
_diagnostics = new List<RazorDiagnostic>();
|
||||
}
|
||||
|
||||
public IReadOnlyList<RazorDiagnostic> Diagnostics => _diagnostics;
|
||||
|
||||
public override void Visit(SyntaxNode node)
|
||||
{
|
||||
if (node?.ContainsDiagnostics == true)
|
||||
{
|
||||
var diagnostics = node.GetDiagnostics();
|
||||
|
||||
_diagnostics.AddRange(diagnostics);
|
||||
|
||||
base.Visit(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,11 +80,13 @@ namespace Test
|
|||
[Fact]
|
||||
public void Bind_InvalidUseOfDirective_DoesNotThrow()
|
||||
{
|
||||
// We're looking for VS crash issues. Meaning if the parser returns
|
||||
// diagnostics we don't want to throw.
|
||||
var generated = CompileToCSharp(@"
|
||||
<input type=""text"" bind=""@page"" />
|
||||
@functions {
|
||||
public string page { get; set; } = ""text"";
|
||||
}");
|
||||
}", throwOnFailure: false);
|
||||
|
||||
// Assert
|
||||
Assert.Collection(
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup.cshtml(1,11): Error RZ1026: Encountered end tag "div" with no matching start tag. Are your start/end tags properly balanced?
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup.cshtml(1,7): Error RZ1006: The explicit expression block is missing a closing ")" character. Make sure you have a matching ")" character for all the "(" characters within this block, and that none of the ")" characters are being interpreted as markup.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup.cshtml(1,11): Error RZ1026: Encountered end tag "div" with no matching start tag. Are your start/end tags properly balanced?
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup.cshtml(1,11): Error RZ1026: Encountered end tag "div" with no matching start tag. Are your start/end tags properly balanced?
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup.cshtml(1,7): Error RZ1006: The explicit expression block is missing a closing ")" character. Make sure you have a matching ")" character for all the "(" characters within this block, and that none of the ")" characters are being interpreted as markup.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup.cshtml(1,11): Error RZ1026: Encountered end tag "div" with no matching start tag. Are your start/end tags properly balanced?
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@ TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cs
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(9,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(9,18): Error RZ1036: Invalid tag helper directive look up text '"'. The correct look up text format is: "name, assemblyName".
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(11,2): Error RZ1018: Directive 'tagHelperPrefix' must have a value.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(12,2): Error RZ1018: Directive 'tagHelperPrefix' must have a value.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(12,1): Error RZ2001: The 'tagHelperPrefix' directive may only occur once per document.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(12,2): Error RZ1018: Directive 'tagHelperPrefix' must have a value.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,1): Error RZ2001: The 'tagHelperPrefix' directive may only occur once per document.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,18): Error RZ1020: Invalid tag helper directive 'tagHelperPrefix' value. '"' is not allowed in prefix '"'.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(15,10): Error RZ1013: The 'inherits' directive expects a type name.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(16,1): Error RZ2001: The 'inherits' directive may only occur once per document.
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@ TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cs
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(9,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(9,18): Error RZ1036: Invalid tag helper directive look up text '"'. The correct look up text format is: "name, assemblyName".
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(11,2): Error RZ1018: Directive 'tagHelperPrefix' must have a value.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(12,2): Error RZ1018: Directive 'tagHelperPrefix' must have a value.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(12,1): Error RZ2001: The 'tagHelperPrefix' directive may only occur once per document.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(12,2): Error RZ1018: Directive 'tagHelperPrefix' must have a value.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,1): Error RZ2001: The 'tagHelperPrefix' directive may only occur once per document.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(13,18): Error RZ1020: Invalid tag helper directive 'tagHelperPrefix' value. '"' is not allowed in prefix '"'.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(15,10): Error RZ1013: The 'inherits' directive expects a type name.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives.cshtml(16,1): Error RZ2001: The 'inherits' directive may only occur once per document.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(3,2): Error RZ1006: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(4,3): Error RZ1026: Encountered end tag "body" with no matching start tag. Are your start/end tags properly balanced?
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(5,3): Error RZ1026: Encountered end tag "html" with no matching start tag. Are your start/end tags properly balanced?
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(3,2): Error RZ1006: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(3,2): Error RZ1006: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(4,3): Error RZ1026: Encountered end tag "body" with no matching start tag. Are your start/end tags properly balanced?
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(5,3): Error RZ1026: Encountered end tag "html" with no matching start tag. Are your start/end tags properly balanced?
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf.cshtml(3,2): Error RZ1006: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError.cshtml(2,1): Error RZ1001: End of file was reached before the end of the block comment. All comments started with "/*" sequence must be terminated with a matching "*/" sequence.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError.cshtml(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError.cshtml(2,1): Error RZ1001: End of file was reached before the end of the block comment. All comments started with "/*" sequence must be terminated with a matching "*/" sequence.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError.cshtml(2,1): Error RZ1001: End of file was reached before the end of the block comment. All comments started with "/*" sequence must be terminated with a matching "*/" sequence.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError.cshtml(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError.cshtml(2,1): Error RZ1001: End of file was reached before the end of the block comment. All comments started with "/*" sequence must be terminated with a matching "*/" sequence.
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
(1,11): Error RZ1006: The functions block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,11): Error RZ1006: The functions block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,17): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,17): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
(1,26): Error RZ1001: End of file was reached before the end of the block comment. All comments started with "/*" sequence must be terminated with a matching "*/" sequence.
|
||||
(1,2): Error RZ1006: The foreach block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,26): Error RZ1001: End of file was reached before the end of the block comment. All comments started with "/*" sequence must be terminated with a matching "*/" sequence.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,4): Error RZ1024: End of file or an unexpected character was reached before the "span" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,4): Error RZ1024: End of file or an unexpected character was reached before the "span" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(2,6): Error RZ1004: End-of-file was found after the "@" character. "@" must be followed by a valid code block. If you want to output an "@", escape it using the sequence: "@@"
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(2,6): Error RZ1004: End-of-file was found after the "@" character. "@" must be followed by a valid code block. If you want to output an "@", escape it using the sequence: "@@"
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
(1,12): Error RZ1006: The functions block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
(1,22): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
(1,2): Error RZ1006: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,22): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,22): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
(1,2): Error RZ1006: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,22): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(2,6): Error RZ1023: "<text>" and "</text>" tags cannot contain attributes.
|
||||
(2,6): Error RZ1025: The "text" element was not closed. All elements must be either self-closing or have a matching end tag.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,6): Error RZ1028: End of file was reached before the end of the block comment. All comments that start with the "@*" sequence must be terminated with a matching "*@" sequence.
|
||||
(1,5): Error RZ1027: An opening "(" is missing the corresponding closing ")".
|
||||
(1,6): Error RZ1028: End of file was reached before the end of the block comment. All comments that start with the "@*" sequence must be terminated with a matching "*@" sequence.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,3): Error RZ1028: End of file was reached before the end of the block comment. All comments that start with the "@*" sequence must be terminated with a matching "*@" sequence.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,3): Error RZ1028: End of file was reached before the end of the block comment. All comments that start with the "@*" sequence must be terminated with a matching "*@" sequence.
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1015: The 'section' directive expects an identifier.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,18): Error RZ1015: The 'section' directive expects an identifier.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(2,5): Error RZ1012: Unexpected end of file following the 'section' directive. Expected '{'.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,14): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,14): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,14): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,14): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,14): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,14): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(2,1): Error RZ1006: The section block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
(1,17): Error RZ2005: The 'inherits` directive must appear at the start of the line.
|
||||
(1,30): Error RZ1017: Unexpected literal following the 'inherits' directive. Expected 'line break'.
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
(1,16): Error RZ2002: Section blocks ("@section Header { ... }") cannot be nested. Only one level of section blocks are allowed.
|
||||
(1,17): Error RZ2005: The 'section` directive must appear at the start of the line.
|
||||
(1,42): Error RZ2002: Section blocks ("@section Header { ... }") cannot be nested. Only one level of section blocks are allowed.
|
||||
(1,43): Error RZ2005: The 'section` directive must appear at the start of the line.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
(1,16): Error RZ2002: Section blocks ("@section Header { ... }") cannot be nested. Only one level of section blocks are allowed.
|
||||
(1,17): Error RZ2005: The 'section` directive must appear at the start of the line.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(2,1): Error RZ1012: Unexpected end of file following the 'section' directive. Expected '{'.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,10): Error RZ1015: The 'section' directive expects an identifier.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,13): Error RZ1017: Unexpected literal following the 'section' directive. Expected '{'.
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
(2,1): Error RZ1024: End of file or an unexpected character was reached before the "" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(2,1): Error RZ1024: End of file or an unexpected character was reached before the "" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(2,1): Error RZ1024: End of file or an unexpected character was reached before the "" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
(3,3): Error RZ1026: Encountered end tag "html" with no matching start tag. Are your start/end tags properly balanced?
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,3): Error RZ1024: End of file or an unexpected character was reached before the "" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,3): Error RZ1024: End of file or an unexpected character was reached before the "" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,4): Error RZ1025: The "foo" element was not closed. All elements must be either self-closing or have a matching end tag.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,4): Error RZ1025: The "foo" element was not closed. All elements must be either self-closing or have a matching end tag.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,4): Error RZ1025: The "foo" element was not closed. All elements must be either self-closing or have a matching end tag.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,4): Error RZ1025: The "foo" element was not closed. All elements must be either self-closing or have a matching end tag.
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
(1,4): Error RZ1024: End of file or an unexpected character was reached before the "foo" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
(1,4): Error RZ1024: End of file or an unexpected character was reached before the "foo" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("<br />") or have matching end tags ("<p>Hello</p>"). If you intended to display a "<" character, use the "<" HTML entity.
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
(1,4): Error RZ2005: The 'section` directive must appear at the start of the line.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,15): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1014: The 'custom' directive expects a namespace name.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1014: The 'custom' directive expects a namespace name.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1014: The 'custom' directive expects a namespace name.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1014: The 'custom' directive expects a namespace name.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,17): Error RZ1017: Unexpected literal following the 'custom' directive. Expected 'line break'.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1015: The 'custom' directive expects an identifier.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,16): Error RZ1012: Unexpected end of file following the 'custom' directive. Expected '{'.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,17): Error RZ1017: Unexpected literal following the 'custom' directive. Expected '{'.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,17): Error RZ1006: The custom block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(2,1): Error RZ2001: The 'custom' directive may only occur once per document.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1016: The 'custom' directive expects a string surrounded by double quotes.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1016: The 'custom' directive expects a string surrounded by double quotes.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1016: The 'custom' directive expects a string surrounded by double quotes.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,9): Error RZ1016: The 'custom' directive expects a string surrounded by double quotes.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,18): Error RZ1011: The 'custom' directives value(s) must be separated by whitespace.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,5): Error RZ2005: The 'custom` directive must appear at the start of the line.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,21): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,24): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,18): Error RZ1000: Unterminated string literal. Strings that start with a quotation mark (") must be terminated before the end of the line. However, strings that start with @ and a quotation mark (@") can span multiple lines.
|
||||
Loading…
Reference in New Issue