diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs
index 9cc91b0a32..96cbba4c7b 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs
@@ -7,98 +7,45 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
public class CSharpNestedStatementsTest : CsHtmlCodeParserTestBase
{
+ public CSharpNestedStatementsTest()
+ {
+ UseBaselineTests = true;
+ }
+
[Fact]
public void NestedSimpleStatement()
{
- ParseBlockTest("@while(true) { foo(); }",
- new StatementBlock(
- Factory.CodeTransition(),
- Factory.Code("while(true) { foo(); }")
- .AsStatement()
- .Accepts(AcceptedCharactersInternal.None)));
+ ParseBlockTest("@while(true) { foo(); }");
}
[Fact]
public void NestedKeywordStatement()
{
- ParseBlockTest("@while(true) { for(int i = 0; i < 10; i++) { foo(); } }",
- new StatementBlock(
- Factory.CodeTransition(),
- Factory.Code("while(true) { for(int i = 0; i < 10; i++) { foo(); } }")
- .AsStatement()
- .Accepts(AcceptedCharactersInternal.None)));
+ ParseBlockTest("@while(true) { for(int i = 0; i < 10; i++) { foo(); } }");
}
[Fact]
public void NestedCodeBlock()
{
- ParseBlockTest("@while(true) { { { { foo(); } } } }",
- new StatementBlock(
- Factory.CodeTransition(),
- Factory.Code("while(true) { { { { foo(); } } } }")
- .AsStatement()
- .Accepts(AcceptedCharactersInternal.None)));
+ ParseBlockTest("@while(true) { { { { foo(); } } } }");
}
[Fact]
public void NestedImplicitExpression()
{
- ParseBlockTest("@while(true) { @foo }",
- new StatementBlock(
- Factory.CodeTransition(),
- Factory.Code("while(true) { ")
- .AsStatement(),
- new ExpressionBlock(
- Factory.CodeTransition(),
- Factory.Code("foo")
- .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
- .Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
- Factory.Code(" }")
- .AsStatement()
- .Accepts(AcceptedCharactersInternal.None)));
+ ParseBlockTest("@while(true) { @foo }");
}
[Fact]
public void NestedExplicitExpression()
{
- ParseBlockTest("@while(true) { @(foo) }",
- new StatementBlock(
- Factory.CodeTransition(),
- Factory.Code("while(true) { ")
- .AsStatement(),
- new ExpressionBlock(
- Factory.CodeTransition(),
- Factory.MetaCode("(")
- .Accepts(AcceptedCharactersInternal.None),
- Factory.Code("foo")
- .AsExpression(),
- Factory.MetaCode(")")
- .Accepts(AcceptedCharactersInternal.None)),
- Factory.Code(" }")
- .AsStatement()
- .Accepts(AcceptedCharactersInternal.None)));
+ ParseBlockTest("@while(true) { @(foo) }");
}
[Fact]
public void NestedMarkupBlock()
{
- ParseBlockTest("@while(true) {
Hello
}",
- new StatementBlock(
- Factory.CodeTransition(),
- Factory.Code("while(true) {")
- .AsStatement(),
- new MarkupBlock(
- Factory.Markup(" "),
- new MarkupTagBlock(
- Factory.Markup("").Accepts(AcceptedCharactersInternal.None)),
- Factory.Markup("Hello"),
- new MarkupTagBlock(
- Factory.Markup("
").Accepts(AcceptedCharactersInternal.None)),
- Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)
- ),
- Factory.Code("}")
- .AsStatement()
- .Accepts(AcceptedCharactersInternal.None)));
+ ParseBlockTest("@while(true) { Hello
}");
}
}
}
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedCodeBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedCodeBlock.syntaxtree.txt
new file mode 100644
index 0000000000..550209a3d4
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedCodeBlock.syntaxtree.txt
@@ -0,0 +1,29 @@
+Statement block - Gen - 35 - (0:0,0)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ Code span - Gen - [while(true) { { { { foo(); } } } }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:25
+ CSharpSymbolType.Keyword;[while];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.Keyword;[true];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Identifier;[foo];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.Semicolon;[;];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedExplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedExplicitExpression.syntaxtree.txt
new file mode 100644
index 0000000000..969e6055f8
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedExplicitExpression.syntaxtree.txt
@@ -0,0 +1,23 @@
+Statement block - Gen - 23 - (0:0,0)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ Code span - Gen - [while(true) { ] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:7
+ CSharpSymbolType.Keyword;[while];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.Keyword;[true];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ Expression block - Gen - 6 - (15:0,15)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ MetaCode span - Gen - [(] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
+ CSharpSymbolType.LeftParenthesis;[(];
+ Code span - Gen - [foo] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
+ CSharpSymbolType.Identifier;[foo];
+ MetaCode span - Gen - [)] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:1
+ CSharpSymbolType.RightParenthesis;[)];
+ Code span - Gen - [ }] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:2
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedImplicitExpression.syntaxtree.txt
new file mode 100644
index 0000000000..0cf648e8cb
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedImplicitExpression.syntaxtree.txt
@@ -0,0 +1,19 @@
+Statement block - Gen - 21 - (0:0,0)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ Code span - Gen - [while(true) { ] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:7
+ CSharpSymbolType.Keyword;[while];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.Keyword;[true];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ Expression block - Gen - 4 - (15:0,15)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (16:0,16) - Symbols:1
+ CSharpSymbolType.Identifier;[foo];
+ Code span - Gen - [ }] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:2
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedKeywordStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedKeywordStatement.syntaxtree.txt
new file mode 100644
index 0000000000..506479fe91
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedKeywordStatement.syntaxtree.txt
@@ -0,0 +1,43 @@
+Statement block - Gen - 55 - (0:0,0)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ Code span - Gen - [while(true) { for(int i = 0; i < 10; i++) { foo(); } }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:39
+ CSharpSymbolType.Keyword;[while];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.Keyword;[true];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Keyword;[for];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.Keyword;[int];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Identifier;[i];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Assign;[=];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.IntegerLiteral;[0];
+ CSharpSymbolType.Semicolon;[;];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Identifier;[i];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LessThan;[<];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.IntegerLiteral;[10];
+ CSharpSymbolType.Semicolon;[;];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Identifier;[i];
+ CSharpSymbolType.Increment;[++];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Identifier;[foo];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.Semicolon;[;];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedMarkupBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedMarkupBlock.syntaxtree.txt
new file mode 100644
index 0000000000..b37c94671c
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedMarkupBlock.syntaxtree.txt
@@ -0,0 +1,30 @@
+Statement block - Gen - 29 - (0:0,0)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ Code span - Gen - [while(true) {] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:6
+ CSharpSymbolType.Keyword;[while];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.Keyword;[true];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ Markup block - Gen - 14 - (14:0,14)
+ Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
+ HtmlSymbolType.WhiteSpace;[ ];
+ Tag block - Gen - 3 - (15:0,15)
+ Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3
+ HtmlSymbolType.OpenAngle;[<];
+ HtmlSymbolType.Text;[p];
+ HtmlSymbolType.CloseAngle;[>];
+ Markup span - Gen - [Hello] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:1
+ HtmlSymbolType.Text;[Hello];
+ Tag block - Gen - 4 - (23:0,23)
+ Markup span - Gen - [
] - SpanEditHandler;Accepts:None - (23:0,23) - Symbols:4
+ HtmlSymbolType.OpenAngle;[<];
+ HtmlSymbolType.ForwardSlash;[/];
+ HtmlSymbolType.Text;[p];
+ HtmlSymbolType.CloseAngle;[>];
+ Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:1
+ HtmlSymbolType.WhiteSpace;[ ];
+ Code span - Gen - [}] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:1
+ CSharpSymbolType.RightBrace;[}];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedSimpleStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedSimpleStatement.syntaxtree.txt
new file mode 100644
index 0000000000..a7645b93aa
--- /dev/null
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedSimpleStatement.syntaxtree.txt
@@ -0,0 +1,17 @@
+Statement block - Gen - 23 - (0:0,0)
+ Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
+ CSharpSymbolType.Transition;[@];
+ Code span - Gen - [while(true) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:13
+ CSharpSymbolType.Keyword;[while];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.Keyword;[true];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.LeftBrace;[{];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.Identifier;[foo];
+ CSharpSymbolType.LeftParenthesis;[(];
+ CSharpSymbolType.RightParenthesis;[)];
+ CSharpSymbolType.Semicolon;[;];
+ CSharpSymbolType.WhiteSpace;[ ];
+ CSharpSymbolType.RightBrace;[}];