From 69cfb95b9046d842edb2c7b2d58a36ae108ab238 Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Wed, 27 Jun 2018 12:09:59 -0700 Subject: [PATCH] Convert CSharpStatementTest to use baselines. #2263 --- .../Legacy/CSharpStatementTest.cs | 422 +++++------------- .../CatchClause.syntaxtree.txt | 46 ++ .../DoStatement.syntaxtree.txt | 20 + .../ElseClause.syntaxtree.txt | 28 ++ .../ElseIfClause.syntaxtree.txt | 50 +++ ...ryCatchWhen_InCompleteBody.diagnostics.txt | 1 + ...TryCatchWhen_InCompleteBody.syntaxtree.txt | 27 ++ ...chWhen_InCompleteCondition.diagnostics.txt | 1 + ...tchWhen_InCompleteCondition.syntaxtree.txt | 23 + ...ncompleteTryCatchNoBodyWhen.syntaxtree.txt | 30 ++ ...lter_IncompleteTryCatchWhen.syntaxtree.txt | 21 + ...ompleteTryCatchWhenNoBodies.syntaxtree.txt | 25 ++ ...ionFilter_IncompleteTryWhen.syntaxtree.txt | 14 + .../ExceptionFilter_MultiLine.syntaxtree.txt | 54 +++ ...onFilter_NestedTryCatchWhen.syntaxtree.txt | 38 ++ ...atchWhenComplete_SingleLine.syntaxtree.txt | 54 +++ ...atchWhenComplete_SingleLine.syntaxtree.txt | 34 ++ ...nFinallyComplete_SingleLine.syntaxtree.txt | 45 ++ .../FinallyClause.syntaxtree.txt | 25 ++ .../ForEachStatement.syntaxtree.txt | 23 + .../ForStatement.syntaxtree.txt | 34 ++ .../IfStatement.syntaxtree.txt | 17 + .../LockStatement.syntaxtree.txt | 17 + ...TreatedAsImplicitExpression.syntaxtree.txt | 5 + ...StaticUsing_Complete_Spaced.syntaxtree.txt | 13 + .../StaticUsing_GlobalPrefix.syntaxtree.txt | 13 + ...icUsing_MultipleIdentifiers.syntaxtree.txt | 11 + .../StaticUsing_NoUsing.syntaxtree.txt | 7 + ...taticUsing_SingleIdentifier.syntaxtree.txt | 9 + .../SwitchStatement.syntaxtree.txt | 17 + .../TryStatement.syntaxtree.txt | 14 + .../UsingNamespaceImport.syntaxtree.txt | 13 + .../UsingStatement.syntaxtree.txt | 29 ++ .../UsingTypeAlias.syntaxtree.txt | 23 + .../WhileStatement.syntaxtree.txt | 17 + 35 files changed, 907 insertions(+), 313 deletions(-) create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.syntaxtree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs index 0d3a485441..174ce6dc1a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs @@ -1,7 +1,6 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System; using Xunit; namespace Microsoft.AspNetCore.Razor.Language.Legacy @@ -17,416 +16,213 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public class CSharpStatementTest : CsHtmlCodeParserTestBase { + public CSharpStatementTest() + { + UseBaselineTests = true; + } + [Fact] public void ForStatement() { - ParseBlockTest("@for(int i = 0; i++; i < length) { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("for(int i = 0; i++; i < length) { foo(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@for(int i = 0; i++; i < length) { foo(); }"); } [Fact] public void ForEachStatement() { - ParseBlockTest("@foreach(var foo in bar) { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("foreach(var foo in bar) { foo(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@foreach(var foo in bar) { foo(); }"); } [Fact] public void WhileStatement() { - ParseBlockTest("@while(true) { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("while(true) { foo(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@while(true) { foo(); }"); } [Fact] public void SwitchStatement() { - ParseBlockTest("@switch(foo) { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("switch(foo) { foo(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@switch(foo) { foo(); }"); } [Fact] public void LockStatement() { - ParseBlockTest("@lock(baz) { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("lock(baz) { foo(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@lock(baz) { foo(); }"); } [Fact] public void IfStatement() { - ParseBlockTest("@if(true) { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("if(true) { foo(); }") - .AsStatement() - )); + ParseBlockTest("@if(true) { foo(); }"); } [Fact] public void ElseIfClause() { - ParseBlockTest("@if(true) { foo(); } else if(false) { foo(); } else if(!false) { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("if(true) { foo(); } else if(false) { foo(); } else if(!false) { foo(); }") - .AsStatement() - )); + ParseBlockTest("@if(true) { foo(); } else if(false) { foo(); } else if(!false) { foo(); }"); } [Fact] public void ElseClause() { - ParseBlockTest("@if(true) { foo(); } else { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("if(true) { foo(); } else { foo(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@if(true) { foo(); } else { foo(); }"); } [Fact] public void TryStatement() { - ParseBlockTest("@try { foo(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("try { foo(); }") - .AsStatement() - )); + ParseBlockTest("@try { foo(); }"); } [Fact] public void CatchClause() { - ParseBlockTest("@try { foo(); } catch(IOException ioex) { handleIO(); } catch(Exception ex) { handleOther(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("try { foo(); } catch(IOException ioex) { handleIO(); } catch(Exception ex) { handleOther(); }") - .AsStatement() - )); + ParseBlockTest("@try { foo(); } catch(IOException ioex) { handleIO(); } catch(Exception ex) { handleOther(); }"); } - public static TheoryData ExceptionFilterData + [Fact] + public void ExceptionFilter_TryCatchWhenComplete_SingleLine() { - get - { - var factory = new SpanFactory(); - - // document, expectedStatement - return new TheoryData - { - { - "@try { someMethod(); } catch(Exception) when (true) { handleIO(); }", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); } catch(Exception) when (true) { handleIO(); }") - .AsStatement()) - }, - { - "@try { A(); } catch(Exception) when (true) { B(); } finally { C(); }", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { A(); } catch(Exception) when (true) { B(); } finally { C(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None)) - }, - { - "@try { A(); } catch(Exception) when (true) { B(); } catch(IOException) when (false) { C(); }", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { A(); } catch(Exception) when (true) { B(); } catch(IOException) " + - "when (false) { C(); }") - .AsStatement()) - }, - { - string.Format("@try{0}{{{0} A();{0}}}{0}catch(Exception) when (true)", Environment.NewLine) + - string.Format("{0}{{{0} B();{0}}}{0}catch(IOException) when (false)", Environment.NewLine) + - string.Format("{0}{{{0} C();{0}}}", Environment.NewLine), - new StatementBlock( - factory.CodeTransition(), - factory - .Code( - string.Format("try{0}{{{0} A();{0}}}{0}catch(Exception) ", Environment.NewLine) + - string.Format("when (true){0}{{{0} B();{0}}}{0}", Environment.NewLine) + - string.Format("catch(IOException) when (false){0}{{{0} ", Environment.NewLine) + - string.Format("C();{0}}}", Environment.NewLine)) - .AsStatement()) - }, - - // Wrapped in @{ block. - { - "@{try { someMethod(); } catch(Exception) when (true) { handleIO(); }}", - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - factory - .Code("try { someMethod(); } catch(Exception) when (true) { handleIO(); }") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)) - }, - - // Partial exception filter data - { - "@try { someMethod(); } catch(Exception) when", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); } catch(Exception) when") - .AsStatement()) - }, - { - "@try { someMethod(); } when", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); }") - .AsStatement()) - }, - { - "@try { someMethod(); } catch(Exception) when { anotherMethod(); }", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); } catch(Exception) when { anotherMethod(); }") - .AsStatement()) - }, - { - "@try { someMethod(); } catch(Exception) when (true)", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); } catch(Exception) when (true)") - .AsStatement()) - }, - }; - } + ParseBlockTest("@try { someMethod(); } catch(Exception) when (true) { handleIO(); }"); } - [Theory] - [MemberData(nameof(ExceptionFilterData))] - public void ExceptionFilters(string document, object expectedStatement) + [Fact] + public void ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine() { - FixupSpans = true; - - // Act & Assert - ParseBlockTest(document, (StatementBlock)expectedStatement); + ParseBlockTest("@try { A(); } catch(Exception) when (true) { B(); } finally { C(); }"); } - public static TheoryData ExceptionFilterErrorData + [Fact] + public void ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine() { - get - { - var factory = new SpanFactory(); - - // document, expectedStatement, expectedErrors - return new TheoryData - { - { - "@try { someMethod(); } catch(Exception) when (", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); } catch(Exception) when (") - .AsStatement()), - new[] - { - RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF( - new SourceSpan(new SourceLocation(45, 0, 45), contentLength: 1), "(", ")"), - } - }, - { - "@try { someMethod(); } catch(Exception) when (someMethod(", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); } catch(Exception) when (someMethod(") - .AsStatement()), - new[] - { - RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF( - new SourceSpan(new SourceLocation(45, 0, 45), contentLength: 1), "(", ")"), - } - }, - { - "@try { someMethod(); } catch(Exception) when (true) {", - new StatementBlock( - factory.CodeTransition(), - factory - .Code("try { someMethod(); } catch(Exception) when (true) {") - .AsStatement()), - new[] - { - RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( - new SourceSpan(new SourceLocation(23, 0, 23), contentLength: 1), "catch", "}", "{"), - } - }, - }; - } + ParseBlockTest("@try { A(); } catch(Exception) when (true) { B(); } catch(IOException) when (false) { C(); }"); } - [Theory] - [MemberData(nameof(ExceptionFilterErrorData))] - public void ExceptionFilterErrors( - string document, - object expectedStatement, - object expectedErrors) + [Fact] + public void ExceptionFilter_MultiLine() { - FixupSpans = true; + ParseBlockTest( +@"@try +{ +A(); +} +catch(Exception) when (true) +{ +B(); +} +catch(IOException) when (false) +{ +C(); +}"); + } - // Act & Assert - ParseBlockTest(document, (StatementBlock)expectedStatement, (RazorDiagnostic[])expectedErrors); + [Fact] + public void ExceptionFilter_NestedTryCatchWhen() + { + ParseBlockTest("@{try { someMethod(); } catch(Exception) when (true) { handleIO(); }}"); + } + + [Fact] + public void ExceptionFilter_IncompleteTryCatchWhen() + { + ParseBlockTest("@try { someMethod(); } catch(Exception) when"); + } + + [Fact] + public void ExceptionFilter_IncompleteTryWhen() + { + ParseBlockTest("@try { someMethod(); } when"); + } + + [Fact] + public void ExceptionFilter_IncompleteTryCatchNoBodyWhen() + { + ParseBlockTest("@try { someMethod(); } catch(Exception) when { anotherMethod(); }"); + } + + [Fact] + public void ExceptionFilter_IncompleteTryCatchWhenNoBodies() + { + ParseBlockTest("@try { someMethod(); } catch(Exception) when (true)"); + } + + [Fact] + public void ExceptionFilterError_TryCatchWhen_InCompleteCondition() + { + ParseBlockTest("@try { someMethod(); } catch(Exception) when ("); + } + + [Fact] + public void ExceptionFilterError_TryCatchWhen_InCompleteBody() + { + ParseBlockTest("@try { someMethod(); } catch(Exception) when (true) {"); } [Fact] public void FinallyClause() { - ParseBlockTest("@try { foo(); } finally { Dispose(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("try { foo(); } finally { Dispose(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@try { foo(); } finally { Dispose(); }"); } - public static TheoryData StaticUsingData + [Fact] + public void StaticUsing_NoUsing() { - get - { - var factory = new SpanFactory(); - Func createUsing = (code, import) => - new DirectiveBlock( - factory.CodeTransition(), - factory.Code(code) - .AsNamespaceImport(import) - .Accepts(AcceptedCharactersInternal.AnyExceptNewline)); - - // document, expectedResult - return new TheoryData - { - { "@using static", createUsing("using static", " static") }, - { "@using static ", createUsing("using static ", " static ") }, - { "@using static ", createUsing("using static ", " static ") }, - { "@using static System", createUsing("using static System", " static System") }, - { - "@using static System", - createUsing("using static System", " static System") - }, - { - "@using static System.Console", - createUsing("using static System.Console", " static System.Console") - }, - { - "@using static global::System.Console", - createUsing("using static global::System.Console", " static global::System.Console") - }, - { - "@using static global::System.Console ", - createUsing("using static global::System.Console", " static global::System.Console") - }, - }; - } + ParseBlockTest("@using static"); } - [Theory] - [MemberData(nameof(StaticUsingData))] - public void StaticUsingImport(string document, object expectedResult) + [Fact] + public void StaticUsing_SingleIdentifier() { - FixupSpans = true; + ParseBlockTest("@using static System"); + } - // Act & Assert - ParseBlockTest(document, (DirectiveBlock)expectedResult); + [Fact] + public void StaticUsing_MultipleIdentifiers() + { + ParseBlockTest("@using static System.Console"); + } + + [Fact] + public void StaticUsing_GlobalPrefix() + { + ParseBlockTest("@using static global::System.Console"); + } + + [Fact] + public void StaticUsing_Complete_Spaced() + { + ParseBlockTest("@using static global::System.Console "); } [Fact] public void UsingStatement() { - ParseBlockTest("@using(var foo = new Foo()) { foo.Bar(); }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("using(var foo = new Foo()) { foo.Bar(); }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@using(var foo = new Foo()) { foo.Bar(); }"); } [Fact] public void UsingTypeAlias() { - ParseBlockTest("@using StringDictionary = System.Collections.Generic.Dictionary", - new DirectiveBlock( - Factory.CodeTransition(), - Factory.Code("using StringDictionary = System.Collections.Generic.Dictionary") - .AsNamespaceImport(" StringDictionary = System.Collections.Generic.Dictionary") - .Accepts(AcceptedCharactersInternal.AnyExceptNewline) - )); + ParseBlockTest("@using StringDictionary = System.Collections.Generic.Dictionary"); } [Fact] public void UsingNamespaceImport() { - ParseBlockTest("@using System.Text.Encoding.ASCIIEncoding", - new DirectiveBlock( - Factory.CodeTransition(), - Factory.Code("using System.Text.Encoding.ASCIIEncoding") - .AsNamespaceImport(" System.Text.Encoding.ASCIIEncoding") - .Accepts(AcceptedCharactersInternal.AnyExceptNewline) - )); + ParseBlockTest("@using System.Text.Encoding.ASCIIEncoding"); } [Fact] public void DoStatement() { - ParseBlockTest("@do { foo(); } while(true);", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("do { foo(); } while(true);") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("@do { foo(); } while(true);"); } [Fact] public void NonBlockKeywordTreatedAsImplicitExpression() { - ParseBlockTest("@is foo", - new ExpressionBlock(new ExpressionChunkGenerator(), - Factory.CodeTransition(), - Factory.Code("is") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace) - )); + ParseBlockTest("@is foo"); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.syntaxtree.txt new file mode 100644 index 0000000000..4bec7050a8 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/CatchClause.syntaxtree.txt @@ -0,0 +1,46 @@ +Statement block - Gen - 94 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { foo(); } catch(IOException ioex) { handleIO(); } catch(Exception ex) { handleOther(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:42 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[IOException]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[ioex]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[handleIO]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[ex]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[handleOther]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.syntaxtree.txt new file mode 100644 index 0000000000..e0800abb71 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/DoStatement.syntaxtree.txt @@ -0,0 +1,20 @@ +Statement block - Gen - 27 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [do { foo(); } while(true);] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:16 + CSharpSymbolType.Keyword;[do]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[while]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.syntaxtree.txt new file mode 100644 index 0000000000..97f305d064 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseClause.syntaxtree.txt @@ -0,0 +1,28 @@ +Statement block - Gen - 36 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [if(true) { foo(); } else { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:24 + CSharpSymbolType.Keyword;[if]; + 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;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[else]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.syntaxtree.txt new file mode 100644 index 0000000000..50c56b7176 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ElseIfClause.syntaxtree.txt @@ -0,0 +1,50 @@ +Statement block - Gen - 73 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [if(true) { foo(); } else if(false) { foo(); } else if(!false) { foo(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:46 + CSharpSymbolType.Keyword;[if]; + 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;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[else]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[if]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[false]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[else]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[if]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Not;[!]; + CSharpSymbolType.Keyword;[false]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.diagnostics.txt new file mode 100644 index 0000000000..821f352b2c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.diagnostics.txt @@ -0,0 +1 @@ +(1,24): 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. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.syntaxtree.txt new file mode 100644 index 0000000000..463f6193d0 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteBody.syntaxtree.txt @@ -0,0 +1,27 @@ +Statement block - Gen - 53 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { someMethod(); } catch(Exception) when (true) {] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:23 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.diagnostics.txt new file mode 100644 index 0000000000..33043e2030 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.diagnostics.txt @@ -0,0 +1 @@ +(1,46): Error RZ1027: An opening "(" is missing the corresponding closing ")". diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.syntaxtree.txt new file mode 100644 index 0000000000..0688194a9d --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilterError_TryCatchWhen_InCompleteCondition.syntaxtree.txt @@ -0,0 +1,23 @@ +Statement block - Gen - 46 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { someMethod(); } catch(Exception) when (] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:19 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.syntaxtree.txt new file mode 100644 index 0000000000..5f5054f9a6 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchNoBodyWhen.syntaxtree.txt @@ -0,0 +1,30 @@ +Statement block - Gen - 65 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { someMethod(); } catch(Exception) when { anotherMethod(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:26 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[anotherMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.syntaxtree.txt new file mode 100644 index 0000000000..3bee1d3226 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhen.syntaxtree.txt @@ -0,0 +1,21 @@ +Statement block - Gen - 44 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { someMethod(); } catch(Exception) when] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:17 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.syntaxtree.txt new file mode 100644 index 0000000000..b1d5ee704e --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryCatchWhenNoBodies.syntaxtree.txt @@ -0,0 +1,25 @@ +Statement block - Gen - 51 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { someMethod(); } catch(Exception) when (true)] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:21 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.syntaxtree.txt new file mode 100644 index 0000000000..3b40fcd2b1 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_IncompleteTryWhen.syntaxtree.txt @@ -0,0 +1,14 @@ +Statement block - Gen - 22 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { someMethod(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:10 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.syntaxtree.txt new file mode 100644 index 0000000000..c41473d0fe --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_MultiLine.syntaxtree.txt @@ -0,0 +1,54 @@ +Statement block - Gen - 103 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [tryLF{LFA();LF}LFcatch(Exception) when (true)LF{LFB();LF}LFcatch(IOException) when (false)LF{LFC();LF}] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:50 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.Identifier;[A]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.Identifier;[B]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[IOException]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[false]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.Identifier;[C]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.NewLine;[LF]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.syntaxtree.txt new file mode 100644 index 0000000000..a82c424f29 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_NestedTryCatchWhen.syntaxtree.txt @@ -0,0 +1,38 @@ +Statement block - Gen - 69 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1 + CSharpSymbolType.LeftBrace;[{]; + Code span - Gen - [try { someMethod(); } catch(Exception) when (true) { handleIO(); }] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Symbols:30 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[handleIO]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (68:0,68) - Symbols:1 + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.syntaxtree.txt new file mode 100644 index 0000000000..72415aa411 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenCatchWhenComplete_SingleLine.syntaxtree.txt @@ -0,0 +1,54 @@ +Statement block - Gen - 92 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { A(); } catch(Exception) when (true) { B(); } catch(IOException) when (false) { C(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:50 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[A]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[B]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[IOException]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[false]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[C]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.syntaxtree.txt new file mode 100644 index 0000000000..135138e456 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenComplete_SingleLine.syntaxtree.txt @@ -0,0 +1,34 @@ +Statement block - Gen - 67 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { someMethod(); } catch(Exception) when (true) { handleIO(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:30 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[someMethod]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[handleIO]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.syntaxtree.txt new file mode 100644 index 0000000000..5f91bb21ef --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ExceptionFilter_TryCatchWhenFinallyComplete_SingleLine.syntaxtree.txt @@ -0,0 +1,45 @@ +Statement block - Gen - 68 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { A(); } catch(Exception) when (true) { B(); } finally { C(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:41 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[A]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[catch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[Exception]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[when]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[B]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[finally]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[C]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.syntaxtree.txt new file mode 100644 index 0000000000..4a1de98901 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/FinallyClause.syntaxtree.txt @@ -0,0 +1,25 @@ +Statement block - Gen - 38 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { foo(); } finally { Dispose(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:21 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[finally]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[Dispose]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.syntaxtree.txt new file mode 100644 index 0000000000..a4eccdd716 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForEachStatement.syntaxtree.txt @@ -0,0 +1,23 @@ +Statement block - Gen - 35 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foreach(var foo in bar) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:19 + CSharpSymbolType.Keyword;[foreach]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[var]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[in]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.syntaxtree.txt new file mode 100644 index 0000000000..3e914af96f --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/ForStatement.syntaxtree.txt @@ -0,0 +1,34 @@ +Statement block - Gen - 43 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [for(int i = 0; i++; i < length) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:30 + 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.Increment;[++]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[i]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LessThan;[<]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[length]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.syntaxtree.txt new file mode 100644 index 0000000000..5edc09a8a5 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/IfStatement.syntaxtree.txt @@ -0,0 +1,17 @@ +Statement block - Gen - 20 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [if(true) { foo(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:13 + CSharpSymbolType.Keyword;[if]; + 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;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.syntaxtree.txt new file mode 100644 index 0000000000..4ca2cf8004 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/LockStatement.syntaxtree.txt @@ -0,0 +1,17 @@ +Statement block - Gen - 21 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [lock(baz) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:13 + CSharpSymbolType.Keyword;[lock]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[baz]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..14b766e62b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/NonBlockKeywordTreatedAsImplicitExpression.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 3 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [is] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Keyword;[is]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.syntaxtree.txt new file mode 100644 index 0000000000..57e55d23b0 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_Complete_Spaced.syntaxtree.txt @@ -0,0 +1,13 @@ +Directive block - Gen - 40 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [using static global::System.Console] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Symbols:9 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[static]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[global]; + CSharpSymbolType.DoubleColon;[::]; + CSharpSymbolType.Identifier;[System]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Console]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.syntaxtree.txt new file mode 100644 index 0000000000..2107f8c0a0 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_GlobalPrefix.syntaxtree.txt @@ -0,0 +1,13 @@ +Directive block - Gen - 36 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [using static global::System.Console] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Symbols:9 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[static]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[global]; + CSharpSymbolType.DoubleColon;[::]; + CSharpSymbolType.Identifier;[System]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Console]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.syntaxtree.txt new file mode 100644 index 0000000000..ad4edfc1c9 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_MultipleIdentifiers.syntaxtree.txt @@ -0,0 +1,11 @@ +Directive block - Gen - 28 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [using static System.Console] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Symbols:7 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[static]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[System]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Console]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.syntaxtree.txt new file mode 100644 index 0000000000..ad822bd97e --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_NoUsing.syntaxtree.txt @@ -0,0 +1,7 @@ +Directive block - Gen - 13 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [using static] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Symbols:3 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[static]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.syntaxtree.txt new file mode 100644 index 0000000000..ec4cf9f779 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/StaticUsing_SingleIdentifier.syntaxtree.txt @@ -0,0 +1,9 @@ +Directive block - Gen - 20 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [using static System] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Symbols:5 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[static]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[System]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.syntaxtree.txt new file mode 100644 index 0000000000..9ea0dc1d0b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/SwitchStatement.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 - [switch(foo) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:13 + CSharpSymbolType.Keyword;[switch]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.syntaxtree.txt new file mode 100644 index 0000000000..8005f42530 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/TryStatement.syntaxtree.txt @@ -0,0 +1,14 @@ +Statement block - Gen - 15 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [try { foo(); }] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:10 + CSharpSymbolType.Keyword;[try]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.syntaxtree.txt new file mode 100644 index 0000000000..7c3c54e3f6 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingNamespaceImport.syntaxtree.txt @@ -0,0 +1,13 @@ +Directive block - Gen - 41 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [using System.Text.Encoding.ASCIIEncoding] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Symbols:9 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[System]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Text]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Encoding]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[ASCIIEncoding]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.syntaxtree.txt new file mode 100644 index 0000000000..18c227782b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingStatement.syntaxtree.txt @@ -0,0 +1,29 @@ +Statement block - Gen - 42 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [using(var foo = new Foo()) { foo.Bar(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:25 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[var]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Assign;[=]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[new]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[Foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Bar]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.syntaxtree.txt new file mode 100644 index 0000000000..b82af607ca --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/UsingTypeAlias.syntaxtree.txt @@ -0,0 +1,23 @@ +Directive block - Gen - 79 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen;> - [using StringDictionary = System.Collections.Generic.Dictionary] - SpanEditHandler;Accepts:AnyExceptNewline - (1:0,1) - Symbols:19 + CSharpSymbolType.Keyword;[using]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[StringDictionary]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Assign;[=]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[System]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Collections]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Generic]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Dictionary]; + CSharpSymbolType.LessThan;[<]; + CSharpSymbolType.Keyword;[string]; + CSharpSymbolType.Comma;[,]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[string]; + CSharpSymbolType.GreaterThan;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.syntaxtree.txt new file mode 100644 index 0000000000..a7645b93aa --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpStatementTest/WhileStatement.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;[}];