Convert CSharpErrorTest

This commit is contained in:
Ajay Bhargav Baaskaran 2018-06-27 11:28:30 -07:00
parent 69cfb95b90
commit c0929a9002
90 changed files with 1205 additions and 359 deletions

View File

@ -9,105 +9,52 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
public class CSharpErrorTest : CsHtmlCodeParserTestBase
{
public CSharpErrorTest()
{
UseBaselineTests = true;
}
[Fact]
public void ParseBlockHandlesQuotesAfterTransition()
{
ParseBlockTest("@\"",
new ExpressionBlock(
Factory.CodeTransition(),
Factory.EmptyCSharp()
.AsImplicitExpression(KeywordSet)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
),
RazorDiagnosticFactory.CreateParsing_UnexpectedCharacterAtStartOfCodeBlock(
new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1),
"\""));
ParseBlockTest("@\"");
}
[Fact]
public void ParseBlockWithHelperDirectiveProducesError()
{
ParseBlockTest("@helper fooHelper { }",
new ExpressionBlock(
Factory.CodeTransition(),
Factory.Code("helper")
.AsImplicitExpression(KeywordSet)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
RazorDiagnosticFactory.CreateParsing_HelperDirectiveNotAvailable(
new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 6)));
ParseBlockTest("@helper fooHelper { }");
}
[Fact]
public void ParseBlockWithNestedCodeBlockProducesError()
{
ParseBlockTest("@if { @{} }",
new StatementBlock(
Factory.CodeTransition(),
Factory.Code("if { ")
.AsStatement()
.Accepts(AcceptedCharactersInternal.Any),
new StatementBlock(
Factory.CodeTransition(),
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.EmptyCSharp()
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
Factory.Code(" }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.Any)),
RazorDiagnosticFactory.CreateParsing_UnexpectedNestedCodeBlock(
new SourceSpan(new SourceLocation(7, 0, 7), contentLength: 1)));
ParseBlockTest("@if { @{} }");
}
[Fact]
public void ParseBlockCapturesWhitespaceToEndOfLineInInvalidUsingStatementAndTreatsAsFileCode()
{
ParseBlockTest("using " + Environment.NewLine
+ Environment.NewLine,
new StatementBlock(
Factory.Code("using " + Environment.NewLine).AsStatement()
));
+ Environment.NewLine);
}
[Fact]
public void ParseBlockMethodOutputsOpenCurlyAsCodeSpanIfEofFoundAfterOpenCurlyBrace()
{
ParseBlockTest("{",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.EmptyCSharp()
.AsStatement()
.With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" })
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_Code, "}", "{"));
ParseBlockTest("{");
}
[Fact]
public void ParseBlockMethodOutputsZeroLengthCodeSpanIfStatementBlockEmpty()
{
ParseBlockTest("{}",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.EmptyCSharp()
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("{}");
}
[Fact]
public void ParseBlockMethodProducesErrorIfNewlineFollowsTransition()
{
ParseBlockTest("@" + Environment.NewLine,
new ExpressionBlock(
Factory.CodeTransition(),
Factory.EmptyCSharp()
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
RazorDiagnosticFactory.CreateParsing_UnexpectedWhiteSpaceAtStartOfCodeBlock(
new SourceSpan(new SourceLocation(1, 0, 1), Environment.NewLine.Length)));
ParseBlockTest("@" + Environment.NewLine);
}
[Fact]
@ -115,72 +62,27 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
ParseBlockTest("{" + Environment.NewLine
+ " @ {}" + Environment.NewLine
+ "}",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(Environment.NewLine + " ")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.EmptyCSharp()
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
Factory.Code(" {}" + Environment.NewLine).AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
),
RazorDiagnosticFactory.CreateParsing_UnexpectedWhiteSpaceAtStartOfCodeBlock(
new SourceSpan(new SourceLocation(6 + Environment.NewLine.Length, 1, 5), contentLength: 3)));
+ "}");
}
[Fact]
public void ParseBlockMethodProducesErrorIfEOFAfterTransitionInEmbeddedExpression()
{
ParseBlockTest("{" + Environment.NewLine
+ " @",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(Environment.NewLine + " ")
.AsStatement()
.AutoCompleteWith("}"),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.EmptyCSharp()
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
Factory.EmptyCSharp().AsStatement()
),
RazorDiagnosticFactory.CreateParsing_UnexpectedEndOfFileAtStartOfCodeBlock(
new SourceSpan(new SourceLocation(6 + Environment.NewLine.Length, 1, 5), contentLength: 1)),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_Code, "}", "{"));
+ " @");
}
[Fact]
public void ParseBlockMethodParsesNothingIfFirstCharacterIsNotIdentifierStartOrParenOrBrace()
{
ParseBlockTest("@!!!",
new ExpressionBlock(
Factory.CodeTransition(),
Factory.EmptyCSharp()
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
RazorDiagnosticFactory.CreateParsing_UnexpectedCharacterAtStartOfCodeBlock(
new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1),
"!"));
ParseBlockTest("@!!!");
}
[Fact]
public void ParseBlockShouldReportErrorAndTerminateAtEOFIfIfParenInExplicitExpressionUnclosed()
{
ParseBlockTest("(foo bar" + Environment.NewLine
+ "baz",
new ExpressionBlock(
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
Factory.Code($"foo bar{Environment.NewLine}baz").AsExpression()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_ExplicitExpression, ")", "("));
+ "baz");
}
[Fact]
@ -189,26 +91,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
ParseBlockTest("(foo bar" + Environment.NewLine
+ "<html>" + Environment.NewLine
+ "baz" + Environment.NewLine
+ "</html",
new ExpressionBlock(
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
Factory.Code($"foo bar{Environment.NewLine}").AsExpression()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_ExplicitExpression, ")", "("));
+ "</html");
}
[Fact]
public void ParseBlockCorrectlyHandlesInCorrectTransitionsIfImplicitExpressionParensUnclosed()
{
ParseBlockTest("Href(" + Environment.NewLine
+ "<h1>@Html.Foo(Bar);</h1>" + Environment.NewLine,
new ExpressionBlock(
Factory.Code("Href(" + Environment.NewLine)
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(4, 0, 4), contentLength: 1), "(", ")"));
+ "<h1>@Html.Foo(Bar);</h1>" + Environment.NewLine);
}
[Fact]
@ -217,13 +107,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
ParseBlockTest("Foo(Bar(Baz)" + Environment.NewLine
+ "Biz" + Environment.NewLine
+ "Boz",
new ExpressionBlock(
Factory.Code($"Foo(Bar(Baz){Environment.NewLine}Biz{Environment.NewLine}Boz")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(3, 0, 3), contentLength: 1), "(", ")"));
+ "Boz");
}
[Fact]
@ -234,13 +118,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
+ "Biz" + Environment.NewLine
+ "<html>" + Environment.NewLine
+ "Boz" + Environment.NewLine
+ "</html>",
new ExpressionBlock(
Factory.Code($"Foo(Bar(Baz){Environment.NewLine}Biz{Environment.NewLine}")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(3, 0, 3), contentLength: 1), "(", ")"));
+ "</html>");
}
[Fact]
@ -249,13 +127,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
ParseBlockTest("Foo[Bar[Baz]" + Environment.NewLine
+ "Biz" + Environment.NewLine
+ "Boz",
new ExpressionBlock(
Factory.Code($"Foo[Bar[Baz]{Environment.NewLine}Biz{Environment.NewLine}Boz")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(3, 0, 3), contentLength: 1), "[", "]"));
+ "Boz");
}
[Fact]
@ -266,47 +138,22 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
+ "Biz" + Environment.NewLine
+ "<b>" + Environment.NewLine
+ "Boz" + Environment.NewLine
+ "</b>",
new ExpressionBlock(
Factory.Code($"Foo[Bar[Baz]{Environment.NewLine}Biz{Environment.NewLine}")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(3, 0, 3), contentLength: 1), "[", "]"));
+ "</b>");
}
// Simple EOF handling errors:
[Fact]
public void ParseBlockReportsErrorIfExplicitCodeBlockUnterminatedAtEOF()
{
ParseBlockTest("{ var foo = bar; if(foo != null) { bar(); } ",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code(" var foo = bar; if(foo != null) { bar(); } ")
.AsStatement()
.AutoCompleteWith("}")),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_Code, "}", "{"));
ParseBlockTest("{ var foo = bar; if(foo != null) { bar(); } ");
}
[Fact]
public void ParseBlockReportsErrorIfClassBlockUnterminatedAtEOF()
{
// Arrange
var chunkGenerator = new DirectiveChunkGenerator(FunctionsDirective.Directive);
chunkGenerator.Diagnostics.Add(
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(new SourceLocation(10, 0, 10), contentLength: 1), "functions", "}", "{"));
// Act & Assert
ParseBlockTest(
"functions { var foo = bar; if(foo != null) { bar(); } ",
new[] { FunctionsDirective.Directive },
new DirectiveBlock(chunkGenerator,
Factory.MetaCode("functions").Accepts(AcceptedCharactersInternal.None),
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
Factory.Code(" var foo = bar; if(foo != null) { bar(); } ").AsCodeBlock()));
new[] { FunctionsDirective.Directive });
}
[Fact]
@ -318,67 +165,37 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
[Fact]
public void ParseBlockReportsErrorIfElseBlockUnterminatedAtEOF()
{
ParseBlockTest("if(foo) { baz(); } else { var foo = bar; if(foo != null) { bar(); } ",
new StatementBlock(
Factory.Code("if(foo) { baz(); } else { var foo = bar; if(foo != null) { bar(); } ").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(new SourceLocation(19, 0, 19), contentLength: 1), "else", "}", "{"));
ParseBlockTest("if(foo) { baz(); } else { var foo = bar; if(foo != null) { bar(); } ");
}
[Fact]
public void ParseBlockReportsErrorIfElseIfBlockUnterminatedAtEOF()
{
ParseBlockTest("if(foo) { baz(); } else if { var foo = bar; if(foo != null) { bar(); } ",
new StatementBlock(
Factory.Code("if(foo) { baz(); } else if { var foo = bar; if(foo != null) { bar(); } ").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(new SourceLocation(19, 0, 19), contentLength: 1), "else if", "}", "{"));
ParseBlockTest("if(foo) { baz(); } else if { var foo = bar; if(foo != null) { bar(); } ");
}
[Fact]
public void ParseBlockReportsErrorIfDoBlockUnterminatedAtEOF()
{
ParseBlockTest("do { var foo = bar; if(foo != null) { bar(); } ",
new StatementBlock(
Factory.Code("do { var foo = bar; if(foo != null) { bar(); } ").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), "do", "}", "{"));
ParseBlockTest("do { var foo = bar; if(foo != null) { bar(); } ");
}
[Fact]
public void ParseBlockReportsErrorIfTryBlockUnterminatedAtEOF()
{
ParseBlockTest("try { var foo = bar; if(foo != null) { bar(); } ",
new StatementBlock(
Factory.Code("try { var foo = bar; if(foo != null) { bar(); } ").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), "try", "}", "{"));
ParseBlockTest("try { var foo = bar; if(foo != null) { bar(); } ");
}
[Fact]
public void ParseBlockReportsErrorIfCatchBlockUnterminatedAtEOF()
{
ParseBlockTest("try { baz(); } catch(Foo) { var foo = bar; if(foo != null) { bar(); } ",
new StatementBlock(
Factory.Code("try { baz(); } catch(Foo) { var foo = bar; if(foo != null) { bar(); } ").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(new SourceLocation(15, 0, 15), contentLength: 1), "catch", "}", "{"));
ParseBlockTest("try { baz(); } catch(Foo) { var foo = bar; if(foo != null) { bar(); } ");
}
[Fact]
public void ParseBlockReportsErrorIfFinallyBlockUnterminatedAtEOF()
{
ParseBlockTest("try { baz(); } finally { var foo = bar; if(foo != null) { bar(); } ",
new StatementBlock(
Factory.Code("try { baz(); } finally { var foo = bar; if(foo != null) { bar(); } ").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(new SourceLocation(15, 0, 15), contentLength: 1), "finally", "}", "{"));
ParseBlockTest("try { baz(); } finally { var foo = bar; if(foo != null) { bar(); } ");
}
[Fact]
@ -420,131 +237,54 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
[Fact]
public void ParseBlockRequiresControlFlowStatementsToHaveBraces()
{
var expectedMessage = Resources.FormatParseError_SingleLine_ControlFlowStatements_Not_Allowed("{", "<");
ParseBlockTest("if(foo) <p>Bar</p> else if(bar) <p>Baz</p> else <p>Boz</p>",
new StatementBlock(
Factory.Code("if(foo) ").AsStatement(),
new MarkupBlock(
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
Factory.Markup("Bar"),
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
Factory.Code("else if(bar) ").AsStatement(),
new MarkupBlock(
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
Factory.Markup("Baz"),
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
Factory.Code("else ").AsStatement(),
new MarkupBlock(
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
Factory.Markup("Boz"),
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None)),
Factory.EmptyCSharp().AsStatement()
),
RazorDiagnosticFactory.CreateParsing_SingleLineControlFlowStatementsNotAllowed(
new SourceSpan(new SourceLocation(8, 0, 8), contentLength: 1), "{", "<"),
RazorDiagnosticFactory.CreateParsing_SingleLineControlFlowStatementsNotAllowed(
new SourceSpan(new SourceLocation(32, 0, 32), contentLength: 1), "{", "<"),
RazorDiagnosticFactory.CreateParsing_SingleLineControlFlowStatementsNotAllowed(
new SourceSpan(new SourceLocation(48, 0, 48), contentLength: 1), "{", "<"));
ParseBlockTest("if(foo) <p>Bar</p> else if(bar) <p>Baz</p> else <p>Boz</p>");
}
[Fact]
public void ParseBlockIncludesUnexpectedCharacterInSingleStatementControlFlowStatementError()
{
ParseBlockTest("if(foo)) { var bar = foo; }",
new StatementBlock(
Factory.Code("if(foo)) { var bar = foo; }").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_SingleLineControlFlowStatementsNotAllowed(
new SourceSpan(new SourceLocation(7, 0, 7), contentLength: 1), "{", ")"));
ParseBlockTest("if(foo)) { var bar = foo; }");
}
[Fact]
public void ParseBlockOutputsErrorIfAtSignFollowedByLessThanSignAtStatementStart()
{
ParseBlockTest("if(foo) { @<p>Bar</p> }",
new StatementBlock(
Factory.Code("if(foo) {").AsStatement(),
new MarkupBlock(
Factory.Markup(" "),
Factory.MarkupTransition(),
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
Factory.Markup("Bar"),
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
Factory.Code("}").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_AtInCodeMustBeFollowedByColonParenOrIdentifierStart(
new SourceSpan(new SourceLocation(10, 0, 10), contentLength: 1)));
ParseBlockTest("if(foo) { @<p>Bar</p> }");
}
[Fact]
public void ParseBlockTerminatesIfBlockAtEOLWhenRecoveringFromMissingCloseParen()
{
ParseBlockTest("if(foo bar" + Environment.NewLine
+ "baz",
new StatementBlock(
Factory.Code("if(foo bar" + Environment.NewLine).AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(2, 0, 2), contentLength: 1), "(", ")"));
+ "baz");
}
[Fact]
public void ParseBlockTerminatesForeachBlockAtEOLWhenRecoveringFromMissingCloseParen()
{
ParseBlockTest("foreach(foo bar" + Environment.NewLine
+ "baz",
new StatementBlock(
Factory.Code("foreach(foo bar" + Environment.NewLine).AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(7, 0, 7), contentLength: 1), "(", ")"));
+ "baz");
}
[Fact]
public void ParseBlockTerminatesWhileClauseInDoStatementAtEOLWhenRecoveringFromMissingCloseParen()
{
ParseBlockTest("do { } while(foo bar" + Environment.NewLine
+ "baz",
new StatementBlock(
Factory.Code("do { } while(foo bar" + Environment.NewLine).AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(12, 0, 12), contentLength: 1), "(", ")"));
+ "baz");
}
[Fact]
public void ParseBlockTerminatesUsingBlockAtEOLWhenRecoveringFromMissingCloseParen()
{
ParseBlockTest("using(foo bar" + Environment.NewLine
+ "baz",
new StatementBlock(
Factory.Code("using(foo bar" + Environment.NewLine).AsStatement()
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(5, 0, 5), contentLength: 1), "(", ")"));
+ "baz");
}
[Fact]
public void ParseBlockResumesIfStatementAfterOpenParen()
{
ParseBlockTest("if(" + Environment.NewLine
+ "else { <p>Foo</p> }",
new StatementBlock(
Factory.Code($"if({Environment.NewLine}else {{").AsStatement(),
new MarkupBlock(
Factory.Markup(" "),
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
Factory.Markup("Foo"),
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
Factory.Code("}").AsStatement().Accepts(AcceptedCharactersInternal.None)
),
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(2, 0, 2), contentLength: 1), "(", ")"));
+ "else { <p>Foo</p> }");
}
[Fact]
@ -553,20 +293,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
SingleSpanBlockTest("if(foo) {" + Environment.NewLine
+ " var p = \"foo bar baz" + Environment.NewLine
+ ";" + Environment.NewLine
+ "}",
BlockKindInternal.Statement, SpanKindInternal.Code,
RazorDiagnosticFactory.CreateParsing_UnterminatedStringLiteral(
new SourceSpan(new SourceLocation(21 + Environment.NewLine.Length, 1, 12), contentLength: 1)));
+ "}");
}
[Fact]
public void ParseBlockTerminatesNormalStringAtEndOfFile()
{
SingleSpanBlockTest("if(foo) { var foo = \"blah blah blah blah blah", BlockKindInternal.Statement, SpanKindInternal.Code,
RazorDiagnosticFactory.CreateParsing_UnterminatedStringLiteral(
new SourceSpan(new SourceLocation(20, 0, 20), contentLength: 1)),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), "if", "}", "{"));
SingleSpanBlockTest("if(foo) { var foo = \"blah blah blah blah blah");
}
[Fact]
@ -576,12 +309,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
+ "blah; " + Environment.NewLine
+ "<p>Foo</p>" + Environment.NewLine
+ "blah " + Environment.NewLine
+ "blah",
BlockKindInternal.Statement, SpanKindInternal.Code,
RazorDiagnosticFactory.CreateParsing_UnterminatedStringLiteral(
new SourceSpan(new SourceLocation(20, 0, 20), contentLength: 1)),
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), "if", "}", "{"));
+ "blah");
}
[Fact]
@ -590,65 +318,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
ParseBlockTest("if(foo) {" + Environment.NewLine
+ " var foo = \"foo bar baz" + Environment.NewLine
+ " <p>Foo is @foo</p>" + Environment.NewLine
+ "}",
new StatementBlock(
Factory.Code($"if(foo) {{{Environment.NewLine} var foo = \"foo bar baz{Environment.NewLine} ").AsStatement(),
new MarkupBlock(
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
Factory.Markup("Foo is "),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.Code("foo")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)),
Factory.Code("}").AsStatement()
),
RazorDiagnosticFactory.CreateParsing_UnterminatedStringLiteral(
new SourceSpan(new SourceLocation(23 + Environment.NewLine.Length, 1, 14), contentLength: 1)));
+ "}");
}
[Fact]
public void ParseBlockCorrectlyParsesAtSignInDelimitedBlock()
{
ParseBlockTest("(Request[\"description\"] ?? @photo.Description)",
new ExpressionBlock(
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
Factory.Code("Request[\"description\"] ?? @photo.Description").AsExpression(),
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
));
ParseBlockTest("(Request[\"description\"] ?? @photo.Description)");
}
[Fact]
public void ParseBlockCorrectlyRecoversFromMissingCloseParenInExpressionWithinCode()
{
ParseBlockTest(@"{string.Format(<html></html>}",
new StatementBlock(
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
Factory.Code("string.Format(")
.AsStatement()
.AutoCompleteWith(autoCompleteString: null),
new MarkupBlock(
BlockFactory.MarkupTagBlock("<html>", AcceptedCharactersInternal.None),
BlockFactory.MarkupTagBlock("</html>", AcceptedCharactersInternal.None)),
Factory.EmptyCSharp().AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
expectedErrors: new[]
{
RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF(
new SourceSpan(new SourceLocation(14, 0, 14), contentLength: 1), "(", ")"),
});
ParseBlockTest(@"{string.Format(<html></html>}");
}
private void RunUnterminatedSimpleKeywordBlock(string keyword)
{
SingleSpanBlockTest(
keyword + " (foo) { var foo = bar; if(foo != null) { bar(); } ",
BlockKindInternal.Statement,
SpanKindInternal.Code,
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
new SourceSpan(SourceLocation.Zero, contentLength: 1), keyword, "}", "{"));
keyword + " (foo) { var foo = bar; if(foo != null) { bar(); } ");
}
}
}

View File

@ -0,0 +1,5 @@
Statement block - Gen<None> - 17 - (0:0,0)
Code span - Gen<Stmt> - [using LF] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:3
CSharpSymbolType.Keyword;[using];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1,5 @@
Expression block - Gen<Expr> - 7 - (0:0,0)
Code span - Gen<Expr> - [Href(LF] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:3
CSharpSymbolType.Identifier;[Href];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1,17 @@
Expression block - Gen<Expr> - 46 - (0:0,0)
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftParenthesis;[(];
Code span - Gen<Expr> - [Request["description"] ?? @photo.Description] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:11
CSharpSymbolType.Identifier;[Request];
CSharpSymbolType.LeftBracket;[[];
CSharpSymbolType.StringLiteral;["description"];
CSharpSymbolType.RightBracket;[]];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NullCoalesce;[??];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Transition;[@];
CSharpSymbolType.Identifier;[photo];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Description];
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (45:0,45) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];

View File

@ -0,0 +1 @@
(2,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.

View File

@ -0,0 +1,45 @@
Statement block - Gen<None> - 64 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) {LF var foo = "foo bar bazLF ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:17
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.StringLiteral;["foo bar baz];RZ1000(25:1,14 [1] )
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.WhiteSpace;[ ];
Markup block - Gen<None> - 20 - (43:2,4)
Tag block - Gen<None> - 3 - (43:2,4)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (43:2,4) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo is ] - SpanEditHandler;Accepts:Any - (46:2,7) - Symbols:4
HtmlSymbolType.Text;[Foo];
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[is];
HtmlSymbolType.WhiteSpace;[ ];
Expression block - Gen<Expr> - 4 - (53:2,14)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (53:2,14) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (54:2,15) - Symbols:1
CSharpSymbolType.Identifier;[foo];
Tag block - Gen<None> - 4 - (57:2,18)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (57:2,18) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:None - (61:2,22) - Symbols:1
HtmlSymbolType.NewLine;[LF];
Code span - Gen<Stmt> - [}] - SpanEditHandler;Accepts:Any - (63:3,0) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1 @@
(1,15): Error RZ1027: An opening "(" is missing the corresponding closing ")".

View File

@ -0,0 +1,24 @@
Statement block - Gen<None> - 29 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [string.Format(] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:4
CSharpSymbolType.Keyword;[string];
CSharpSymbolType.Dot;[.];
CSharpSymbolType.Identifier;[Format];
CSharpSymbolType.LeftParenthesis;[(];
Markup block - Gen<None> - 13 - (15:0,15)
Tag block - Gen<None> - 6 - (15:0,15)
Markup span - Gen<Markup> - [<html>] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[html];
HtmlSymbolType.CloseAngle;[>];
Tag block - Gen<None> - 7 - (21:0,21)
Markup span - Gen<Markup> - [</html>] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[html];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (28:0,28) - Symbols:1
CSharpSymbolType.Unknown;[];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1 @@
(1,2): Error RZ1005: """ is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid.

View File

@ -0,0 +1,5 @@
Expression block - Gen<Expr> - 1 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1
CSharpSymbolType.Unknown;[];

View File

@ -0,0 +1,10 @@
(1,8): Error RZ1008: Expected a "{" but found a ")". Block statements must be enclosed in "{" and "}". You cannot use single-statement control-flow statements in CSHTML pages. For example, the following is not allowed:
@if(isLoggedIn)
<p>Hello, @user</p>
Instead, wrap the contents of the block in "{}":
@if(isLoggedIn) {
<p>Hello, @user</p>
}

View File

@ -0,0 +1,20 @@
Statement block - Gen<None> - 27 - (0:0,0)
Code span - Gen<Stmt> - [if(foo)) { var bar = foo; }] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:18
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1 @@
(1,1): 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.

View File

@ -0,0 +1,5 @@
Statement block - Gen<None> - 1 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (1:0,1) - Symbols:1
CSharpSymbolType.Unknown;[];

View File

@ -0,0 +1,7 @@
Statement block - Gen<None> - 2 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:1
CSharpSymbolType.Unknown;[];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1 @@
(1,2): Error RZ1005: "!" is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid.

View File

@ -0,0 +1,5 @@
Expression block - Gen<Expr> - 1 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1
CSharpSymbolType.Unknown;[];

View File

@ -0,0 +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,1): 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.

View File

@ -0,0 +1,13 @@
Statement block - Gen<None> - 8 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [LF ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (1:0,1) - Symbols:2
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.WhiteSpace;[ ];
Expression block - Gen<Expr> - 1 - (7:1,4)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (7:1,4) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (8:1,5) - Symbols:1
CSharpSymbolType.Unknown;[];
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (8:1,5) - Symbols:1
CSharpSymbolType.Unknown;[];

View File

@ -0,0 +1 @@
(1,2): Error RZ1003: A space or line break was encountered after the "@" character. Only valid identifiers, keywords, comments, "(" and "{" are valid at the start of a code block and they must occur immediately following "@" with no space in between.

View File

@ -0,0 +1,5 @@
Expression block - Gen<Expr> - 1 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1
CSharpSymbolType.Unknown;[];

View File

@ -0,0 +1 @@
(2,6): Error RZ1003: A space or line break was encountered after the "@" character. Only valid identifiers, keywords, comments, "(" and "{" are valid at the start of a code block and they must occur immediately following "@" with no space in between.

View File

@ -0,0 +1,18 @@
Statement block - Gen<None> - 16 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [LF ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:2
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.WhiteSpace;[ ];
Expression block - Gen<Expr> - 1 - (7:1,4)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (7:1,4) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (8:1,5) - Symbols:1
CSharpSymbolType.Unknown;[];
Code span - Gen<Stmt> - [ {}LF] - SpanEditHandler;Accepts:Any - (8:1,5) - Symbols:4
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.NewLine;[LF];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (15:2,0) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,5 @@
(1,11): Error RZ1009: The "@" character must be followed by a ":", "(", or a C# identifier. If you intended to switch to markup, use an HTML start tag, for example:
@if(isLoggedIn) {
<p>Hello, @user!</p>
}

View File

@ -0,0 +1,30 @@
Statement block - Gen<None> - 23 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) {] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:6
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
Markup block - Gen<None> - 13 - (9:0,9)
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (10:0,10) - Symbols:1
HtmlSymbolType.Transition;[@];
Tag block - Gen<None> - 3 - (11:0,11)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (11:0,11) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Bar] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
HtmlSymbolType.Text;[Bar];
Tag block - Gen<None> - 4 - (17:0,17)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Code span - Gen<Stmt> - [}] - SpanEditHandler;Accepts:Any - (22:0,22) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1 @@
(1,16): Error RZ1006: The catch 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.

View File

@ -0,0 +1,47 @@
Statement block - Gen<None> - 70 - (0:0,0)
Code span - Gen<Stmt> - [try { baz(); } catch(Foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:45
CSharpSymbolType.Keyword;[try];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[baz];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[catch];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[Foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1,36 @@
Directive block - Gen<Directive:{functions;CodeBlock;Unrestricted} [RZ1006(10:0,10 [1] )]> - 54 - (0:0,0)
MetaCode span - Gen<None> - [functions] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Identifier;[functions];
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:AllWhiteSpace - (9:0,9) - Symbols:1
CSharpSymbolType.WhiteSpace;[ ];
MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[}];AtEnd - (10:0,10) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [ var foo = bar; if(foo != null) { bar(); } ] - CodeBlockEditHandler;Accepts:Any;CodeBlock - (11:0,11) - Symbols:28
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): Error RZ1006: The do 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.

View File

@ -0,0 +1,33 @@
Statement block - Gen<None> - 47 - (0:0,0)
Code span - Gen<Stmt> - [do { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:31
CSharpSymbolType.Keyword;[do];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,20): Error RZ1006: The else 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.

View File

@ -0,0 +1,47 @@
Statement block - Gen<None> - 68 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) { baz(); } else { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:45
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[baz];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[else];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,20): Error RZ1006: The else 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.

View File

@ -0,0 +1,49 @@
Statement block - Gen<None> - 71 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) { baz(); } else if { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:47
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[baz];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[else];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): 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.

View File

@ -0,0 +1,32 @@
Statement block - Gen<None> - 44 - (0:0,0)
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [ var foo = bar; if(foo != null) { bar(); } ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (1:0,1) - Symbols:28
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,16): Error RZ1006: The finally 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.

View File

@ -0,0 +1,44 @@
Statement block - Gen<None> - 67 - (0:0,0)
Code span - Gen<Stmt> - [try { baz(); } finally { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:42
CSharpSymbolType.Keyword;[try];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[baz];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[finally];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): Error RZ1006: The for 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.

View File

@ -0,0 +1,37 @@
Statement block - Gen<None> - 54 - (0:0,0)
Code span - Gen<Stmt> - [for (foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:35
CSharpSymbolType.Keyword;[for];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): 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.

View File

@ -0,0 +1,37 @@
Statement block - Gen<None> - 58 - (0:0,0)
Code span - Gen<Stmt> - [foreach (foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:35
CSharpSymbolType.Keyword;[foreach];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): 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.

View File

@ -0,0 +1,37 @@
Statement block - Gen<None> - 53 - (0:0,0)
Code span - Gen<Stmt> - [if (foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:35
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): Error RZ1006: The lock 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.

View File

@ -0,0 +1,37 @@
Statement block - Gen<None> - 55 - (0:0,0)
Code span - Gen<Stmt> - [lock (foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:35
CSharpSymbolType.Keyword;[lock];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): Error RZ1006: The switch 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.

View File

@ -0,0 +1,37 @@
Statement block - Gen<None> - 57 - (0:0,0)
Code span - Gen<Stmt> - [switch (foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:35
CSharpSymbolType.Keyword;[switch];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): Error RZ1006: The try 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.

View File

@ -0,0 +1,33 @@
Statement block - Gen<None> - 48 - (0:0,0)
Code span - Gen<Stmt> - [try { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:31
CSharpSymbolType.Keyword;[try];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): Error RZ1006: The using 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.

View File

@ -0,0 +1,37 @@
Statement block - Gen<None> - 56 - (0:0,0)
Code span - Gen<Stmt> - [using (foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:35
CSharpSymbolType.Keyword;[using];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1 @@
(1,1): Error RZ1006: The while 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.

View File

@ -0,0 +1,37 @@
Statement block - Gen<None> - 56 - (0:0,0)
Code span - Gen<Stmt> - [while (foo) { var foo = bar; if(foo != null) { bar(); } ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:35
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.NotEqual;[!=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[null];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];

View File

@ -0,0 +1,30 @@
(1,9): Error RZ1008: Expected a "{" but found a "<". Block statements must be enclosed in "{" and "}". You cannot use single-statement control-flow statements in CSHTML pages. For example, the following is not allowed:
@if(isLoggedIn)
<p>Hello, @user</p>
Instead, wrap the contents of the block in "{}":
@if(isLoggedIn) {
<p>Hello, @user</p>
}
(1,33): Error RZ1008: Expected a "{" but found a "<". Block statements must be enclosed in "{" and "}". You cannot use single-statement control-flow statements in CSHTML pages. For example, the following is not allowed:
@if(isLoggedIn)
<p>Hello, @user</p>
Instead, wrap the contents of the block in "{}":
@if(isLoggedIn) {
<p>Hello, @user</p>
}
(1,49): Error RZ1008: Expected a "{" but found a "<". Block statements must be enclosed in "{" and "}". You cannot use single-statement control-flow statements in CSHTML pages. For example, the following is not allowed:
@if(isLoggedIn)
<p>Hello, @user</p>
Instead, wrap the contents of the block in "{}":
@if(isLoggedIn) {
<p>Hello, @user</p>
}

View File

@ -0,0 +1,66 @@
Statement block - Gen<None> - 58 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:5
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
Markup block - Gen<None> - 11 - (8:0,8)
Tag block - Gen<None> - 3 - (8:0,8)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (8:0,8) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Bar] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:1
HtmlSymbolType.Text;[Bar];
Tag block - Gen<None> - 4 - (14:0,14)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:None - (18:0,18) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Code span - Gen<Stmt> - [else if(bar) ] - SpanEditHandler;Accepts:Any - (19:0,19) - Symbols:7
CSharpSymbolType.Keyword;[else];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
Markup block - Gen<None> - 11 - (32:0,32)
Tag block - Gen<None> - 3 - (32:0,32)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (32:0,32) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Baz] - SpanEditHandler;Accepts:Any - (35:0,35) - Symbols:1
HtmlSymbolType.Text;[Baz];
Tag block - Gen<None> - 4 - (38:0,38)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (38:0,38) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:None - (42:0,42) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Code span - Gen<Stmt> - [else ] - SpanEditHandler;Accepts:Any - (43:0,43) - Symbols:2
CSharpSymbolType.Keyword;[else];
CSharpSymbolType.WhiteSpace;[ ];
Markup block - Gen<None> - 10 - (48:0,48)
Tag block - Gen<None> - 3 - (48:0,48)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (48:0,48) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Boz] - SpanEditHandler;Accepts:Any - (51:0,51) - Symbols:1
HtmlSymbolType.Text;[Boz];
Tag block - Gen<None> - 4 - (54:0,54)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (54:0,54) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (58:0,58) - Symbols:1
CSharpSymbolType.Unknown;[];

View File

@ -0,0 +1 @@
(1,3): Error RZ1027: An opening "(" is missing the corresponding closing ")".

View File

@ -0,0 +1,28 @@
Statement block - Gen<None> - 24 - (0:0,0)
Code span - Gen<Stmt> - [if(LFelse {] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:6
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Keyword;[else];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
Markup block - Gen<None> - 12 - (11:1,6)
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (11:1,6) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Tag block - Gen<None> - 3 - (12:1,7)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (12:1,7) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Foo] - SpanEditHandler;Accepts:Any - (15:1,10) - Symbols:1
HtmlSymbolType.Text;[Foo];
Tag block - Gen<None> - 4 - (18:1,13)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (18:1,13) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:None - (22:1,17) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Code span - Gen<Stmt> - [}] - SpanEditHandler;Accepts:None - (23:1,18) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,12 @@
Expression block - Gen<Expr> - 22 - (0:0,0)
Code span - Gen<Expr> - [Foo[Bar[Baz]LFBizLFBoz] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:10
CSharpSymbolType.Identifier;[Foo];
CSharpSymbolType.LeftBracket;[[];
CSharpSymbolType.Identifier;[Bar];
CSharpSymbolType.LeftBracket;[[];
CSharpSymbolType.Identifier;[Baz];
CSharpSymbolType.RightBracket;[]];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Identifier;[Biz];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Identifier;[Boz];

View File

@ -0,0 +1 @@
(1,1): 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.

View File

@ -0,0 +1,9 @@
Expression block - Gen<Expr> - 13 - (0:0,0)
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftParenthesis;[(];
Code span - Gen<Expr> - [foo barLFbaz] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:5
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Identifier;[baz];

View File

@ -0,0 +1,12 @@
Expression block - Gen<Expr> - 22 - (0:0,0)
Code span - Gen<Expr> - [Foo(Bar(Baz)LFBizLFBoz] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:10
CSharpSymbolType.Identifier;[Foo];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[Bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[Baz];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Identifier;[Biz];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Identifier;[Boz];

View File

@ -0,0 +1,11 @@
Expression block - Gen<Expr> - 19 - (0:0,0)
Code span - Gen<Expr> - [Foo[Bar[Baz]LFBizLF] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:9
CSharpSymbolType.Identifier;[Foo];
CSharpSymbolType.LeftBracket;[[];
CSharpSymbolType.Identifier;[Bar];
CSharpSymbolType.LeftBracket;[[];
CSharpSymbolType.Identifier;[Baz];
CSharpSymbolType.RightBracket;[]];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Identifier;[Biz];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1 @@
(1,1): 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.

View File

@ -0,0 +1,8 @@
Expression block - Gen<Expr> - 10 - (0:0,0)
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.LeftParenthesis;[(];
Code span - Gen<Expr> - [foo barLF] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:4
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1,11 @@
Expression block - Gen<Expr> - 19 - (0:0,0)
Code span - Gen<Expr> - [Foo(Bar(Baz)LFBizLF] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (0:0,0) - Symbols:9
CSharpSymbolType.Identifier;[Foo];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[Bar];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[Baz];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Identifier;[Biz];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1 @@
(1,8): Error RZ1027: An opening "(" is missing the corresponding closing ")".

View File

@ -0,0 +1,8 @@
Statement block - Gen<None> - 17 - (0:0,0)
Code span - Gen<Stmt> - [foreach(foo barLF] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:6
CSharpSymbolType.Keyword;[foreach];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1 @@
(1,3): Error RZ1027: An opening "(" is missing the corresponding closing ")".

View File

@ -0,0 +1,8 @@
Statement block - Gen<None> - 12 - (0:0,0)
Code span - Gen<Stmt> - [if(foo barLF] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:6
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1 @@
(2,13): 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.

View File

@ -0,0 +1,21 @@
Statement block - Gen<None> - 41 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) {LF var p = "foo bar bazLF;LF}] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:19
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[p];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.StringLiteral;["foo bar baz];RZ1000(23:1,12 [1] )
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.NewLine;[LF];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,2 @@
(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.
(1,1): 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.

View File

@ -0,0 +1,16 @@
Statement block - Gen<None> - 45 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) { var foo = "blah blah blah blah blah] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:14
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.StringLiteral;["blah blah blah blah blah];RZ1000(20:0,20 [1] )

View File

@ -0,0 +1 @@
(1,6): Error RZ1027: An opening "(" is missing the corresponding closing ")".

View File

@ -0,0 +1,8 @@
Statement block - Gen<None> - 15 - (0:0,0)
Code span - Gen<Stmt> - [using(foo barLF] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:6
CSharpSymbolType.Keyword;[using];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1,2 @@
(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.
(1,1): 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.

View File

@ -0,0 +1,16 @@
Statement block - Gen<None> - 60 - (0:0,0)
Code span - Gen<Stmt> - [if(foo) { var foo = @"blah LFblah; LF<p>Foo</p>LFblah LFblah] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:14
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[var];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.StringLiteral;[@"blah LFblah; LF<p>Foo</p>LFblah LFblah];RZ1000(20:0,20 [1] )

View File

@ -0,0 +1,14 @@
Statement block - Gen<None> - 22 - (0:0,0)
Code span - Gen<Stmt> - [do { } while(foo barLF] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:12
CSharpSymbolType.Keyword;[do];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[bar];
CSharpSymbolType.NewLine;[LF];

View File

@ -0,0 +1 @@
(1,2): Error RZ1002: The helper directive is not supported.

View File

@ -0,0 +1,5 @@
Expression block - Gen<Expr> - 7 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [helper] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1
CSharpSymbolType.Identifier;[helper];

View File

@ -0,0 +1 @@
(1,8): Error RZ1010: Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code.

View File

@ -0,0 +1,20 @@
Statement block - Gen<None> - 11 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Stmt> - [if { ] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:4
CSharpSymbolType.Keyword;[if];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
Statement block - Gen<None> - 3 - (6:0,6)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (6:0,6) - Symbols:1
CSharpSymbolType.Transition;[@];
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (7:0,7) - Symbols:1
CSharpSymbolType.LeftBrace;[{];
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (8:0,8) - Symbols:1
CSharpSymbolType.Unknown;[];
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (8:0,8) - Symbols:1
CSharpSymbolType.RightBrace;[}];
Code span - Gen<Stmt> - [ }] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:2
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -16,6 +16,7 @@ using System.Threading;
using System.Text;
using Xunit;
using Xunit.Sdk;
using System.Text.RegularExpressions;
namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
@ -112,7 +113,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
File.WriteAllText(baselineFullPath, SyntaxTreeNodeSerializer.Serialize(root));
var baselineDiagnosticsFullPath = Path.Combine(TestProjectRoot, baselineDiagnosticsFileName);
var lines = diagnostics.Select(RazorDiagnosticSerializer.Serialize).ToArray();
var lines = diagnostics.Select(SerializeDiagnostic).ToArray();
if (lines.Any())
{
File.WriteAllLines(baselineDiagnosticsFullPath, lines);
@ -141,10 +142,23 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
baselineDiagnostics = diagnosticsFile.ReadAllText();
}
var actualDiagnostics = string.Concat(diagnostics.Select(d => RazorDiagnosticSerializer.Serialize(d) + "\r\n"));
var actualDiagnostics = string.Concat(diagnostics.Select(d => SerializeDiagnostic(d) + "\r\n"));
Assert.Equal(baselineDiagnostics, actualDiagnostics);
}
private static string SerializeDiagnostic(RazorDiagnostic diagnostic)
{
var content = RazorDiagnosticSerializer.Serialize(diagnostic);
var normalized = NormalizeNewLines(content);
return normalized;
}
private static string NormalizeNewLines(string content)
{
return Regex.Replace(content, "(?<!\r)\n", "\r\n", RegexOptions.None, TimeSpan.FromSeconds(10));
}
internal RazorSyntaxTree ParseBlock(string document, bool designTime)
{
return ParseBlock(RazorLanguageVersion.Latest, document, designTime);