Files
sdk/pkg/front_end/parser_testcases/patterns/functionExpression_allowed_afterSwitchExpression.dart.expect
T
Paul Berry b0c705e4bd Set mayParseFunctionExpressions properly during switch expression parsing.
We need to prohibit function expressions during guard clauses in
switch expressions, otherwise the `=>` might be misinterpreted.

Fixes #50591.

Bug: https://github.com/dart-lang/sdk/issues/50591, https://github.com/dart-lang/language/issues/2672
Change-Id: Ie5703ac7049557798b19778281429e8a591cf09f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273020
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2022-12-01 18:57:33 +00:00

42 lines
1.6 KiB
Plaintext

beginCompilationUnit(f)
beginMetadataStar(f)
endMetadataStar(0)
beginTopLevelMember(f)
beginTopLevelMethod(, null, null)
handleNoType()
handleIdentifier(f, topLevelFunctionDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.TopLevelMethod)
beginMetadataStar(x)
endMetadataStar(0)
beginFormalParameter(x, MemberKind.TopLevelMethod, null, null, null)
handleNoType(()
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginSwitchExpression(switch)
handleIdentifier(x, expression)
handleNoTypeArguments())
handleNoArguments())
handleSend(x, ))
handleParenthesizedCondition((, null, null)
beginSwitchExpressionBlock({)
endSwitchExpressionBlock(0, {, })
endSwitchExpression(switch, })
beginBinaryExpression(+)
handleNoTypeVariables(()
beginFunctionExpression(()
beginFormalParameters((, MemberKind.Local)
endFormalParameters(0, (, ), MemberKind.Local)
handleAsyncModifier(null, null)
handleLiteralInt(0)
handleExpressionFunctionBody(=>, null)
endFunctionExpression((, ;)
endBinaryExpression(+)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod(f, null, ;)
endTopLevelDeclaration()
endCompilationUnit(1, )