From df22392996c0ac1e446e827257e789a37f215873 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 27 Jun 2018 12:14:24 -0700 Subject: [PATCH] Convert CSharpImplicitExpressionTest --- .../Legacy/CSharpBlockTest.cs | 3 +- .../Legacy/CSharpImplicitExpressionTest.cs | 358 +++++++++++------- .../Legacy/CodeParserTestBase.cs | 9 +- .../NestedImplicitExpression.syntaxtree.txt | 18 + ...tersThatAreValidIdentifiers.syntaxtree.txt | 5 + ...ssionTerminatedByWhitespace.syntaxtree.txt | 5 + ...otAtEOFInImplicitExpression.syntaxtree.txt | 7 + ...racterInImplicitExpression1.syntaxtree.txt | 7 + ...racterInImplicitExpression2.syntaxtree.txt | 7 + ...NotIncludeSemicolonAfterDot.syntaxtree.txt | 7 + ...lonAtEndOfDottedIdentifiers.syntaxtree.txt | 9 + ...dOfSimpleImplicitExpression.syntaxtree.txt | 5 + ...tifiersAsImplicitExpression.syntaxtree.txt | 9 + ...ImplicitExpression_Bracket1.syntaxtree.txt | 5 + ...mplicitExpression_Bracket10.syntaxtree.txt | 10 + ...plicitExpression_Bracket11.diagnostics.txt | 1 + ...mplicitExpression_Bracket11.syntaxtree.txt | 12 + ...mplicitExpression_Bracket12.syntaxtree.txt | 13 + ...mplicitExpression_Bracket13.syntaxtree.txt | 16 + ...mplicitExpression_Bracket14.syntaxtree.txt | 15 + ...mplicitExpression_Bracket15.syntaxtree.txt | 13 + ...mplicitExpression_Bracket16.syntaxtree.txt | 17 + ...ImplicitExpression_Bracket2.syntaxtree.txt | 5 + ...mplicitExpression_Bracket3.diagnostics.txt | 1 + ...ImplicitExpression_Bracket3.syntaxtree.txt | 7 + ...ImplicitExpression_Bracket4.syntaxtree.txt | 5 + ...mplicitExpression_Bracket5.diagnostics.txt | 1 + ...ImplicitExpression_Bracket5.syntaxtree.txt | 8 + ...ImplicitExpression_Bracket6.syntaxtree.txt | 9 + ...mplicitExpression_Bracket7.diagnostics.txt | 1 + ...ImplicitExpression_Bracket7.syntaxtree.txt | 7 + ...mplicitExpression_Bracket8.diagnostics.txt | 1 + ...ImplicitExpression_Bracket8.syntaxtree.txt | 9 + ...ImplicitExpression_Bracket9.syntaxtree.txt | 5 + ...atorImplicitExpression_Dot1.syntaxtree.txt | 5 + ...torImplicitExpression_Dot10.syntaxtree.txt | 8 + ...torImplicitExpression_Dot11.syntaxtree.txt | 5 + ...torImplicitExpression_Dot12.syntaxtree.txt | 13 + ...torImplicitExpression_Dot13.syntaxtree.txt | 14 + ...torImplicitExpression_Dot14.syntaxtree.txt | 18 + ...atorImplicitExpression_Dot2.syntaxtree.txt | 5 + ...atorImplicitExpression_Dot3.syntaxtree.txt | 5 + ...atorImplicitExpression_Dot4.syntaxtree.txt | 5 + ...atorImplicitExpression_Dot5.syntaxtree.txt | 7 + ...atorImplicitExpression_Dot6.syntaxtree.txt | 5 + ...atorImplicitExpression_Dot7.syntaxtree.txt | 7 + ...atorImplicitExpression_Dot8.syntaxtree.txt | 7 + ...atorImplicitExpression_Dot9.syntaxtree.txt | 8 + ...ntifierAsImplicitExpression.syntaxtree.txt | 5 + ...OrParenInImplicitExpression.syntaxtree.txt | 7 + ...duleTokenNotFollowedByBrace.syntaxtree.txt | 9 + ...IfEOFOccursAfterTransition.diagnostics.txt | 1 + ...nIfEOFOccursAfterTransition.syntaxtree.txt | 5 + ...CharacterFollowsTransition.diagnostics.txt | 1 + ...dCharacterFollowsTransition.syntaxtree.txt | 5 + ...cesThemInImplicitExpression.syntaxtree.txt | 25 ++ ...cesThemInImplicitExpression.syntaxtree.txt | 63 +++ ...sBalancingParenthesesAtEOF.diagnostics.txt | 1 + ...psBalancingParenthesesAtEOF.syntaxtree.txt | 8 + ...nComplexImplicitExpressions.syntaxtree.txt | 39 ++ ...licitExpressionAtHtmlEndTag.syntaxtree.txt | 11 + ...citExpressionAtHtmlStartTag.syntaxtree.txt | 11 + ...ntIfDotFollowedByWhitespace.syntaxtree.txt | 5 + ...dByIdentifierStartCharacter.syntaxtree.txt | 11 + ...arenFollowedByAnyWhiteSpace.syntaxtree.txt | 9 + ...fierFollowedByAnyWhiteSpace.syntaxtree.txt | 5 + 66 files changed, 803 insertions(+), 140 deletions(-) create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/NestedImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockAcceptsNonEnglishCharactersThatAreValidIdentifiers.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotAcceptSemicolonIfExpressionTerminatedByWhitespace.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotAtEOFInImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression1.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression2.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeSemicolonAfterDot.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfDottedIdentifiers.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfSimpleImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesDottedIdentifiersAsImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket1.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket10.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket12.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket13.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket14.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket15.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket16.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket2.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket4.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket6.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket9.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot1.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot10.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot11.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot12.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot13.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot14.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot2.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot3.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot4.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot5.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot6.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot7.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot8.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot9.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesSingleIdentifierAsImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodTerminatesAfterIdentifierUnlessFollowedByDotOrParenInImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputExpressionIfModuleTokenNotFollowedByBrace.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesBracketsAndBalancesThemInImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesParenthesesAndBalancesThemInImplicitExpression.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockSupportsSlashesWithinComplexImplicitExpressions.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlEndTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlStartTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtLastValidPointIfDotFollowedByWhitespace.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionBeforeDotIfDotNotFollowedByIdentifierStartCharacter.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfCloseParenFollowedByAnyWhiteSpace.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfIdentifierFollowedByAnyWhiteSpace.syntaxtree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs index 32755fcbfd..04d75c98c5 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpBlockTest.cs @@ -101,8 +101,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseBlockTerminatesParenBalancingAtEOF() { - ImplicitExpressionTest( - "Html.En(code()", "Html.En(code()"); + ImplicitExpressionTest("Html.En(code()"); } [Fact] diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpImplicitExpressionTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpImplicitExpressionTest.cs index 3a013a6ec8..7c00bbeaa1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpImplicitExpressionTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpImplicitExpressionTest.cs @@ -1,146 +1,249 @@ // 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 { public class CSharpImplicitExpressionTest : CsHtmlCodeParserTestBase { - private const string TestExtraKeyword = "model"; - - public static TheoryData NullConditionalOperatorData_Bracket + public CSharpImplicitExpressionTest() { - get - { - var noErrors = new RazorDiagnostic[0]; - Func missingEndBracketError = (index) => - new RazorDiagnostic[1] - { - RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF( - new SourceSpan(new SourceLocation(index, 0, index), contentLength: 1), "[", "]"), - }; - - // implicitExpression, expectedImplicitExpression, acceptedCharacters, expectedErrors - return new TheoryData - { - { "val??[", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val??[0", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[", "val?[", AcceptedCharactersInternal.Any, missingEndBracketError(5) }, - { "val?(", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[more", "val?[more", AcceptedCharactersInternal.Any, missingEndBracketError(5) }, - { "val?[0]", "val?[0]", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[

", "val?[", AcceptedCharactersInternal.Any, missingEndBracketError(5) }, - { "val?[more.

", "val?[more.", AcceptedCharactersInternal.Any, missingEndBracketError(5) }, - { "val??[more

", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[-1]?", "val?[-1]", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[abc]?[def", "val?[abc]?[def", AcceptedCharactersInternal.Any, missingEndBracketError(11) }, - { "val?[abc]?[2]", "val?[abc]?[2]", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[abc]?.more?[def]", "val?[abc]?.more?[def]", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[abc]?.more?.abc", "val?[abc]?.more?.abc", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[null ?? true]", "val?[null ?? true]", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - { "val?[abc?.gef?[-1]]", "val?[abc?.gef?[-1]]", AcceptedCharactersInternal.NonWhiteSpace, noErrors }, - }; - } + UseBaselineTests = true; } - [Theory] - [MemberData(nameof(NullConditionalOperatorData_Bracket))] - public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket( - string implicitExpresison, - string expectedImplicitExpression, - object acceptedCharacters, - object expectedErrors) + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket1() { // Act & Assert - ImplicitExpressionTest( - implicitExpresison, - expectedImplicitExpression, - (AcceptedCharactersInternal)acceptedCharacters, - (RazorDiagnostic[])expectedErrors); + ImplicitExpressionTest("val??["); } - public static TheoryData NullConditionalOperatorData_Dot - { - get - { - // implicitExpression, expectedImplicitExpression - return new TheoryData - { - { "val?", "val" }, - { "val??", "val" }, - { "val??more", "val" }, - { "val?!", "val" }, - { "val?.", "val?." }, - { "val??.", "val" }, - { "val?.(abc)", "val?." }, - { "val?.

", "val?." }, - { "val?.more", "val?.more" }, - { "val?.more

", "val?.more" }, - { "val??.more

", "val" }, - { "val?.more(false)?.

", "val?.more(false)?." }, - { "val?.more(false)?.abc", "val?.more(false)?.abc" }, - { "val?.more(null ?? true)?.abc", "val?.more(null ?? true)?.abc" }, - }; - } - } - - [Theory] - [MemberData(nameof(NullConditionalOperatorData_Dot))] - public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot( - string implicitExpresison, - string expectedImplicitExpression) + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket2() { // Act & Assert - ImplicitExpressionTest(implicitExpresison, expectedImplicitExpression); + ImplicitExpressionTest("val??[0"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3() + { + // Act & Assert + ImplicitExpressionTest("val?["); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket4() + { + // Act & Assert + ImplicitExpressionTest("val?("); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5() + { + // Act & Assert + ImplicitExpressionTest("val?[more"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket6() + { + // Act & Assert + ImplicitExpressionTest("val?[0]"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7() + { + // Act & Assert + ImplicitExpressionTest("val?[

"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8() + { + // Act & Assert + ImplicitExpressionTest("val?[more.

"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket9() + { + // Act & Assert + ImplicitExpressionTest("val??[more

"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket10() + { + // Act & Assert + ImplicitExpressionTest("val?[-1]?"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11() + { + // Act & Assert + ImplicitExpressionTest("val?[abc]?[def"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket12() + { + // Act & Assert + ImplicitExpressionTest("val?[abc]?[2]"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket13() + { + // Act & Assert + ImplicitExpressionTest("val?[abc]?.more?[def]"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket14() + { + // Act & Assert + ImplicitExpressionTest("val?[abc]?.more?.abc"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket15() + { + // Act & Assert + ImplicitExpressionTest("val?[null ?? true]"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket16() + { + // Act & Assert + ImplicitExpressionTest("val?[abc?.gef?[-1]]"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot1() + { + // Act & Assert + ImplicitExpressionTest("val?"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot2() + { + // Act & Assert + ImplicitExpressionTest("val??"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot3() + { + // Act & Assert + ImplicitExpressionTest("val??more"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot4() + { + // Act & Assert + ImplicitExpressionTest("val?!"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot5() + { + // Act & Assert + ImplicitExpressionTest("val?."); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot6() + { + // Act & Assert + ImplicitExpressionTest("val??."); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot7() + { + // Act & Assert + ImplicitExpressionTest("val?.(abc)"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot8() + { + // Act & Assert + ImplicitExpressionTest("val?.

"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot9() + { + // Act & Assert + ImplicitExpressionTest("val?.more"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot10() + { + // Act & Assert + ImplicitExpressionTest("val?.more

"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot11() + { + // Act & Assert + ImplicitExpressionTest("val??.more

"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot12() + { + // Act & Assert + ImplicitExpressionTest("val?.more(false)?.

"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot13() + { + // Act & Assert + ImplicitExpressionTest("val?.more(false)?.abc"); + } + + [Fact] + public void ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot14() + { + // Act & Assert + ImplicitExpressionTest("val?.more(null ?? true)?.abc"); } [Fact] public void NestedImplicitExpression() { - ParseBlockTest("if (true) { @foo }", - new StatementBlock( - Factory.Code("if (true) { ").AsStatement(), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), - Factory.Code(" }").AsStatement())); + ParseBlockTest("if (true) { @foo }"); } [Fact] public void ParseBlockAcceptsNonEnglishCharactersThatAreValidIdentifiers() { - ImplicitExpressionTest("हळूँजद॔.", "हळूँजद॔"); + ImplicitExpressionTest("हळूँजद॔."); } [Fact] public void ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition() { - 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 ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition() { - ParseBlockTest("@", - new ExpressionBlock( - Factory.CodeTransition(), - Factory.EmptyCSharp() - .AsImplicitExpression(KeywordSet) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), - RazorDiagnosticFactory.CreateParsing_UnexpectedEndOfFileAtStartOfCodeBlock( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1))); + ParseBlockTest("@"); } [Fact] @@ -158,7 +261,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseBlockMethodDoesNotAcceptSemicolonIfExpressionTerminatedByWhitespace() { - ImplicitExpressionTest("foo ;", "foo"); + ImplicitExpressionTest("foo ;"); } [Fact] @@ -182,26 +285,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseBlockMethodDoesNotIncludeDotAtEOFInImplicitExpression() { - ImplicitExpressionTest("foo.bar.", "foo.bar"); + ImplicitExpressionTest("foo.bar."); } [Fact] - public void ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression() + public void ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression1() { - ImplicitExpressionTest("foo.bar.0", "foo.bar"); - ImplicitExpressionTest("foo.bar.

", "foo.bar"); + ImplicitExpressionTest("foo.bar.0"); + } + + [Fact] + public void ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression2() + { + ImplicitExpressionTest("foo.bar.

"); } [Fact] public void ParseBlockMethodDoesNotIncludeSemicolonAfterDot() { - ImplicitExpressionTest("foo.bar.;", "foo.bar"); + ImplicitExpressionTest("foo.bar.;"); } [Fact] public void ParseBlockMethodTerminatesAfterIdentifierUnlessFollowedByDotOrParenInImplicitExpression() { - ImplicitExpressionTest("foo.bar

", "foo.bar"); + ImplicitExpressionTest("foo.bar

"); } [Fact] @@ -219,47 +327,43 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseBlockTerminatesImplicitExpressionAtHtmlEndTag() { - ImplicitExpressionTest("foo().bar.baz

zoop", "foo().bar.baz"); + ImplicitExpressionTest("foo().bar.baz

zoop"); } [Fact] public void ParseBlockTerminatesImplicitExpressionAtHtmlStartTag() { - ImplicitExpressionTest("foo().bar.baz

zoop", "foo().bar.baz"); + ImplicitExpressionTest("foo().bar.baz

zoop"); } [Fact] public void ParseBlockTerminatesImplicitExpressionBeforeDotIfDotNotFollowedByIdentifierStartCharacter() { - ImplicitExpressionTest("foo().bar.baz.42", "foo().bar.baz"); + ImplicitExpressionTest("foo().bar.baz.42"); } [Fact] public void ParseBlockStopsBalancingParenthesesAtEOF() { - ImplicitExpressionTest( - "foo(()", "foo(()", - acceptedCharacters: AcceptedCharactersInternal.Any, - errors: RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF( - new SourceSpan(new SourceLocation(4, 0, 4), contentLength: 1), "(", ")")); + ImplicitExpressionTest("foo(()"); } [Fact] public void ParseBlockTerminatesImplicitExpressionIfCloseParenFollowedByAnyWhiteSpace() { - ImplicitExpressionTest("foo.bar() (baz)", "foo.bar()"); + ImplicitExpressionTest("foo.bar() (baz)"); } [Fact] public void ParseBlockTerminatesImplicitExpressionIfIdentifierFollowedByAnyWhiteSpace() { - ImplicitExpressionTest("foo .bar() (baz)", "foo"); + ImplicitExpressionTest("foo .bar() (baz)"); } [Fact] public void ParseBlockTerminatesImplicitExpressionAtLastValidPointIfDotFollowedByWhitespace() { - ImplicitExpressionTest("foo. bar() (baz)", "foo"); + ImplicitExpressionTest("foo. bar() (baz)"); } [Fact] @@ -270,13 +374,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void RunTrailingSemicolonTest(string expr) { - ParseBlockTest(SyntaxConstants.TransitionString + expr + ";", - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code(expr) - .AsImplicitExpression(KeywordSet) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace) - )); + ParseBlockTest(SyntaxConstants.TransitionString + expr + ";"); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs index 923a25a441..6437faa292 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs @@ -66,14 +66,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy internal void ImplicitExpressionTest(string input, string expected, AcceptedCharactersInternal acceptedCharacters, params RazorDiagnostic[] errors) { - var factory = CreateSpanFactory(); - ParseBlockTest(SyntaxConstants.TransitionString + input, - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expected) - .AsImplicitExpression(KeywordSet) - .Accepts(acceptedCharacters)), - errors); + ParseBlockTest(SyntaxConstants.TransitionString + input); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/NestedImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/NestedImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..8f3b31118a --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/NestedImplicitExpression.syntaxtree.txt @@ -0,0 +1,18 @@ +Statement block - Gen - 18 - (0:0,0) + Code span - Gen - [if (true) { ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:8 + CSharpSymbolType.Keyword;[if]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + Expression block - Gen - 4 - (12:0,12) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (13:0,13) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Code span - Gen - [ }] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:2 + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockAcceptsNonEnglishCharactersThatAreValidIdentifiers.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockAcceptsNonEnglishCharactersThatAreValidIdentifiers.syntaxtree.txt new file mode 100644 index 0000000000..b5629747fd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockAcceptsNonEnglishCharactersThatAreValidIdentifiers.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 8 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [हळूँजद॔] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[हळूँजद॔]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotAcceptSemicolonIfExpressionTerminatedByWhitespace.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotAcceptSemicolonIfExpressionTerminatedByWhitespace.syntaxtree.txt new file mode 100644 index 0000000000..368cbec988 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotAcceptSemicolonIfExpressionTerminatedByWhitespace.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotAtEOFInImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotAtEOFInImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..1a5b3d317b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotAtEOFInImplicitExpression.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 8 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression1.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression1.syntaxtree.txt new file mode 100644 index 0000000000..1a5b3d317b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression1.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 8 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression2.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression2.syntaxtree.txt new file mode 100644 index 0000000000..1a5b3d317b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeDotFollowedByInvalidIdentifierCharacterInImplicitExpression2.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 8 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeSemicolonAfterDot.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeSemicolonAfterDot.syntaxtree.txt new file mode 100644 index 0000000000..1a5b3d317b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodDoesNotIncludeSemicolonAfterDot.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 8 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfDottedIdentifiers.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfDottedIdentifiers.syntaxtree.txt new file mode 100644 index 0000000000..d523e84810 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfDottedIdentifiers.syntaxtree.txt @@ -0,0 +1,9 @@ +Expression block - Gen - 12 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar.baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:5 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfSimpleImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfSimpleImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..368cbec988 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodIgnoresSemicolonAtEndOfSimpleImplicitExpression.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesDottedIdentifiersAsImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesDottedIdentifiersAsImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..d523e84810 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesDottedIdentifiersAsImplicitExpression.syntaxtree.txt @@ -0,0 +1,9 @@ +Expression block - Gen - 12 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar.baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:5 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket1.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket1.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket1.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket10.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket10.syntaxtree.txt new file mode 100644 index 0000000000..57d0b46d99 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket10.syntaxtree.txt @@ -0,0 +1,10 @@ +Expression block - Gen - 9 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[-1]] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:6 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Minus;[-]; + CSharpSymbolType.IntegerLiteral;[1]; + CSharpSymbolType.RightBracket;[]]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.diagnostics.txt new file mode 100644 index 0000000000..a6129d65d7 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.diagnostics.txt @@ -0,0 +1 @@ +(1,12): Error RZ1027: An opening "[" is missing the corresponding closing "]". diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.syntaxtree.txt new file mode 100644 index 0000000000..a24dd4c31d --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket11.syntaxtree.txt @@ -0,0 +1,12 @@ +Expression block - Gen - 15 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[abc]?[def] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:8 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[abc]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[def]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket12.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket12.syntaxtree.txt new file mode 100644 index 0000000000..e66d54706b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket12.syntaxtree.txt @@ -0,0 +1,13 @@ +Expression block - Gen - 14 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[abc]?[2]] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:9 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[abc]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.IntegerLiteral;[2]; + CSharpSymbolType.RightBracket;[]]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket13.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket13.syntaxtree.txt new file mode 100644 index 0000000000..967b311fc0 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket13.syntaxtree.txt @@ -0,0 +1,16 @@ +Expression block - Gen - 22 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[abc]?.more?[def]] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:12 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[abc]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[more]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[def]; + CSharpSymbolType.RightBracket;[]]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket14.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket14.syntaxtree.txt new file mode 100644 index 0000000000..2e273fbbca --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket14.syntaxtree.txt @@ -0,0 +1,15 @@ +Expression block - Gen - 21 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[abc]?.more?.abc] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:11 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[abc]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[more]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[abc]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket15.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket15.syntaxtree.txt new file mode 100644 index 0000000000..a6398e5589 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket15.syntaxtree.txt @@ -0,0 +1,13 @@ +Expression block - Gen - 19 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[null ?? true]] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:9 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Keyword;[null]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.NullCoalesce;[??]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightBracket;[]]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket16.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket16.syntaxtree.txt new file mode 100644 index 0000000000..d009d78db8 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket16.syntaxtree.txt @@ -0,0 +1,17 @@ +Expression block - Gen - 20 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[abc?.gef?[-1]]] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:13 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[abc]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[gef]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Minus;[-]; + CSharpSymbolType.IntegerLiteral;[1]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.RightBracket;[]]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket2.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket2.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket2.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.diagnostics.txt new file mode 100644 index 0000000000..34f020b41b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.diagnostics.txt @@ -0,0 +1 @@ +(1,6): Error RZ1027: An opening "[" is missing the corresponding closing "]". diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.syntaxtree.txt new file mode 100644 index 0000000000..b96658c322 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket3.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 6 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket4.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket4.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket4.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.diagnostics.txt new file mode 100644 index 0000000000..34f020b41b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.diagnostics.txt @@ -0,0 +1 @@ +(1,6): Error RZ1027: An opening "[" is missing the corresponding closing "]". diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.syntaxtree.txt new file mode 100644 index 0000000000..2e6a035938 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket5.syntaxtree.txt @@ -0,0 +1,8 @@ +Expression block - Gen - 10 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[more] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:4 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[more]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket6.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket6.syntaxtree.txt new file mode 100644 index 0000000000..58bc580be4 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket6.syntaxtree.txt @@ -0,0 +1,9 @@ +Expression block - Gen - 8 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[0]] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:5 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.IntegerLiteral;[0]; + CSharpSymbolType.RightBracket;[]]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.diagnostics.txt new file mode 100644 index 0000000000..34f020b41b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.diagnostics.txt @@ -0,0 +1 @@ +(1,6): Error RZ1027: An opening "[" is missing the corresponding closing "]". diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.syntaxtree.txt new file mode 100644 index 0000000000..b96658c322 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket7.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 6 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.diagnostics.txt new file mode 100644 index 0000000000..34f020b41b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.diagnostics.txt @@ -0,0 +1 @@ +(1,6): Error RZ1027: An opening "[" is missing the corresponding closing "]". diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.syntaxtree.txt new file mode 100644 index 0000000000..0dfa555f8a --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket8.syntaxtree.txt @@ -0,0 +1,9 @@ +Expression block - Gen - 11 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?[more.] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:5 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.Identifier;[more]; + CSharpSymbolType.Dot;[.]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket9.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket9.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Bracket9.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot1.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot1.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot1.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot10.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot10.syntaxtree.txt new file mode 100644 index 0000000000..0eaead0945 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot10.syntaxtree.txt @@ -0,0 +1,8 @@ +Expression block - Gen - 10 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.more] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:4 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[more]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot11.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot11.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot11.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot12.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot12.syntaxtree.txt new file mode 100644 index 0000000000..89110e1265 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot12.syntaxtree.txt @@ -0,0 +1,13 @@ +Expression block - Gen - 19 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.more(false)?.] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:9 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[more]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[false]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot13.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot13.syntaxtree.txt new file mode 100644 index 0000000000..0dedbf3852 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot13.syntaxtree.txt @@ -0,0 +1,14 @@ +Expression block - Gen - 22 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.more(false)?.abc] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:10 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[more]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[false]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[abc]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot14.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot14.syntaxtree.txt new file mode 100644 index 0000000000..5f69aab1bf --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot14.syntaxtree.txt @@ -0,0 +1,18 @@ +Expression block - Gen - 29 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.more(null ?? true)?.abc] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:14 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[more]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[null]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.NullCoalesce;[??]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[abc]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot2.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot2.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot2.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot3.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot3.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot3.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot4.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot4.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot4.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot5.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot5.syntaxtree.txt new file mode 100644 index 0000000000..141b205dac --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot5.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 6 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot6.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot6.syntaxtree.txt new file mode 100644 index 0000000000..d123ee18bd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot6.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[val]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot7.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot7.syntaxtree.txt new file mode 100644 index 0000000000..141b205dac --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot7.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 6 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot8.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot8.syntaxtree.txt new file mode 100644 index 0000000000..141b205dac --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot8.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 6 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot9.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot9.syntaxtree.txt new file mode 100644 index 0000000000..0eaead0945 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesNullConditionalOperatorImplicitExpression_Dot9.syntaxtree.txt @@ -0,0 +1,8 @@ +Expression block - Gen - 10 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [val?.more] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:4 + CSharpSymbolType.Identifier;[val]; + CSharpSymbolType.QuestionMark;[?]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[more]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesSingleIdentifierAsImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesSingleIdentifierAsImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..368cbec988 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodParsesSingleIdentifierAsImplicitExpression.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodTerminatesAfterIdentifierUnlessFollowedByDotOrParenInImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodTerminatesAfterIdentifierUnlessFollowedByDotOrParenInImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..1a5b3d317b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockMethodTerminatesAfterIdentifierUnlessFollowedByDotOrParenInImplicitExpression.syntaxtree.txt @@ -0,0 +1,7 @@ +Expression block - Gen - 8 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:3 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputExpressionIfModuleTokenNotFollowedByBrace.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputExpressionIfModuleTokenNotFollowedByBrace.syntaxtree.txt new file mode 100644 index 0000000000..15553d9fec --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputExpressionIfModuleTokenNotFollowedByBrace.syntaxtree.txt @@ -0,0 +1,9 @@ +Expression block - Gen - 13 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [module.foo()] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:5 + CSharpSymbolType.Identifier;[module]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.diagnostics.txt new file mode 100644 index 0000000000..c6d6925451 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.diagnostics.txt @@ -0,0 +1 @@ +(1,2): 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: "@@" diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.syntaxtree.txt new file mode 100644 index 0000000000..2ce6cbbd8a --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfEOFOccursAfterTransition.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 1 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Unknown;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.diagnostics.txt new file mode 100644 index 0000000000..6d8d0cd1bb --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.diagnostics.txt @@ -0,0 +1 @@ +(1,2): Error RZ1005: "/" is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.syntaxtree.txt new file mode 100644 index 0000000000..2ce6cbbd8a --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockOutputsZeroLengthCodeSpanIfInvalidCharacterFollowsTransition.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 1 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Unknown;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesBracketsAndBalancesThemInImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesBracketsAndBalancesThemInImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..e128b8b59d --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesBracketsAndBalancesThemInImplicitExpression.syntaxtree.txt @@ -0,0 +1,25 @@ +Expression block - Gen - 34 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar[4 * (8 + 7)]["fo\"o"].baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:21 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.IntegerLiteral;[4]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Star;[*]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.IntegerLiteral;[8]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Plus;[+]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.IntegerLiteral;[7]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.StringLiteral;["fo\"o"]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesParenthesesAndBalancesThemInImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesParenthesesAndBalancesThemInImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..5367db8cc1 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockProperlyParsesParenthesesAndBalancesThemInImplicitExpression.syntaxtree.txt @@ -0,0 +1,63 @@ +Expression block - Gen - 115 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo().bar("bi\"z", 4)("chained method; call").baz(@"bo""z", '\'', () => { return 4; }, (4+5+new { foo = bar[4] }))] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:59 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.StringLiteral;["bi\"z"]; + CSharpSymbolType.Comma;[,]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.IntegerLiteral;[4]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.StringLiteral;["chained method; call"]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[baz]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.StringLiteral;[@"bo""z"]; + CSharpSymbolType.Comma;[,]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.CharacterLiteral;['\'']; + CSharpSymbolType.Comma;[,]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.GreaterThanEqual;[=>]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Keyword;[return]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.IntegerLiteral;[4]; + CSharpSymbolType.Semicolon;[;]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.Comma;[,]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.IntegerLiteral;[4]; + CSharpSymbolType.Plus;[+]; + CSharpSymbolType.IntegerLiteral;[5]; + CSharpSymbolType.Plus;[+]; + CSharpSymbolType.Keyword;[new]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Assign;[=]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.LeftBracket;[[]; + CSharpSymbolType.IntegerLiteral;[4]; + CSharpSymbolType.RightBracket;[]]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.diagnostics.txt new file mode 100644 index 0000000000..ade6c85b25 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.diagnostics.txt @@ -0,0 +1 @@ +(1,5): Error RZ1027: An opening "(" is missing the corresponding closing ")". diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.syntaxtree.txt new file mode 100644 index 0000000000..0c5b1d37b3 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockStopsBalancingParenthesesAtEOF.syntaxtree.txt @@ -0,0 +1,8 @@ +Expression block - Gen - 7 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo(()] - ImplicitExpressionEditHandler;Accepts:Any;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:4 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockSupportsSlashesWithinComplexImplicitExpressions.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockSupportsSlashesWithinComplexImplicitExpressions.syntaxtree.txt new file mode 100644 index 0000000000..6e2ba2e015 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockSupportsSlashesWithinComplexImplicitExpressions.syntaxtree.txt @@ -0,0 +1,39 @@ +Expression block - Gen - 103 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [DataGridColumn.Template("Years of Service", e => (int)Math.Round((DateTime.Now - dt).TotalDays / 365))] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:35 + CSharpSymbolType.Identifier;[DataGridColumn]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Template]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.StringLiteral;["Years of Service"]; + CSharpSymbolType.Comma;[,]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[e]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.GreaterThanEqual;[=>]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[int]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Identifier;[Math]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Round]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Identifier;[DateTime]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[Now]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Minus;[-]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Identifier;[dt]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[TotalDays]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.Slash;[/]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.IntegerLiteral;[365]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlEndTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlEndTag.syntaxtree.txt new file mode 100644 index 0000000000..1a9757cdf3 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlEndTag.syntaxtree.txt @@ -0,0 +1,11 @@ +Expression block - Gen - 14 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo().bar.baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:7 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlStartTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlStartTag.syntaxtree.txt new file mode 100644 index 0000000000..1a9757cdf3 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtHtmlStartTag.syntaxtree.txt @@ -0,0 +1,11 @@ +Expression block - Gen - 14 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo().bar.baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:7 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtLastValidPointIfDotFollowedByWhitespace.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtLastValidPointIfDotFollowedByWhitespace.syntaxtree.txt new file mode 100644 index 0000000000..368cbec988 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionAtLastValidPointIfDotFollowedByWhitespace.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionBeforeDotIfDotNotFollowedByIdentifierStartCharacter.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionBeforeDotIfDotNotFollowedByIdentifierStartCharacter.syntaxtree.txt new file mode 100644 index 0000000000..1a9757cdf3 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionBeforeDotIfDotNotFollowedByIdentifierStartCharacter.syntaxtree.txt @@ -0,0 +1,11 @@ +Expression block - Gen - 14 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo().bar.baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:7 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[baz]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfCloseParenFollowedByAnyWhiteSpace.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfCloseParenFollowedByAnyWhiteSpace.syntaxtree.txt new file mode 100644 index 0000000000..9e5423ea30 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfCloseParenFollowedByAnyWhiteSpace.syntaxtree.txt @@ -0,0 +1,9 @@ +Expression block - Gen - 10 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo.bar()] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:5 + CSharpSymbolType.Identifier;[foo]; + CSharpSymbolType.Dot;[.]; + CSharpSymbolType.Identifier;[bar]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.RightParenthesis;[)]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfIdentifierFollowedByAnyWhiteSpace.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfIdentifierFollowedByAnyWhiteSpace.syntaxtree.txt new file mode 100644 index 0000000000..368cbec988 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpImplicitExpressionTest/ParseBlockTerminatesImplicitExpressionIfIdentifierFollowedByAnyWhiteSpace.syntaxtree.txt @@ -0,0 +1,5 @@ +Expression block - Gen - 4 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (1:0,1) - Symbols:1 + CSharpSymbolType.Identifier;[foo];