38cab10852
Variable patterns behave so differently inside a patternAssignment that we may want to represent them using different AST nodes inside the analyzer/CFE. This change adds a boolean flag allowing the implementation to know what kind of variable pattern it's looking at when parsing occurs. Bug: https://github.com/dart-lang/sdk/issues/50035 Change-Id: I60adf2865bbe24f85b72a79b1360833bf823bd67 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273829 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
131 lines
7.5 KiB
Plaintext
131 lines
7.5 KiB
Plaintext
parseUnit(f)
|
|
skipErrorTokens(f)
|
|
listener: beginCompilationUnit(f)
|
|
syntheticPreviousToken(f)
|
|
parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
|
|
parseMetadataStar()
|
|
listener: beginMetadataStar(f)
|
|
listener: endMetadataStar(0)
|
|
parseTopLevelMemberImpl()
|
|
listener: beginTopLevelMember(f)
|
|
isReservedKeyword(()
|
|
parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
|
|
listener: beginTopLevelMethod(, null, null)
|
|
listener: handleNoType()
|
|
ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
|
|
listener: handleIdentifier(f, topLevelFunctionDeclaration)
|
|
parseMethodTypeVar(f)
|
|
listener: handleNoTypeVariables(()
|
|
parseGetterOrFormalParameters(f, f, false, MemberKind.TopLevelMethod)
|
|
parseFormalParameters(f, MemberKind.TopLevelMethod)
|
|
parseFormalParametersRest((, MemberKind.TopLevelMethod)
|
|
listener: beginFormalParameters((, MemberKind.TopLevelMethod)
|
|
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
|
|
parseMetadataStar(()
|
|
listener: beginMetadataStar(x)
|
|
listener: endMetadataStar(0)
|
|
listener: beginFormalParameter(x, MemberKind.TopLevelMethod, null, null, null)
|
|
listener: handleNoType(()
|
|
ensureIdentifier((, formalParameterDeclaration)
|
|
listener: handleIdentifier(x, formalParameterDeclaration)
|
|
listener: handleFormalParameterWithoutValue(,)
|
|
listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
|
|
parseFormalParameter(,, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
|
|
parseMetadataStar(,)
|
|
listener: beginMetadataStar(y)
|
|
listener: endMetadataStar(0)
|
|
listener: beginFormalParameter(y, MemberKind.TopLevelMethod, null, null, null)
|
|
listener: handleNoType(,)
|
|
ensureIdentifier(,, formalParameterDeclaration)
|
|
listener: handleIdentifier(y, formalParameterDeclaration)
|
|
listener: handleFormalParameterWithoutValue())
|
|
listener: endFormalParameter(null, null, null, y, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
|
|
listener: endFormalParameters(2, (, ), MemberKind.TopLevelMethod)
|
|
parseAsyncModifierOpt())
|
|
listener: handleAsyncModifier(null, null)
|
|
inPlainSync()
|
|
parseFunctionBody(), false, false)
|
|
parseExpressionFunctionBody(=>, false)
|
|
parseExpression(=>)
|
|
looksLikeOuterPatternEquals(=>)
|
|
skipOuterPattern(=>)
|
|
parsePrecedenceExpression(=>, 1, true)
|
|
parseUnaryExpression(=>, true)
|
|
parsePrimary(=>, expression)
|
|
inPlainSync()
|
|
parseSwitchExpression(=>)
|
|
listener: beginSwitchExpression(switch)
|
|
ensureParenthesizedCondition(switch, allowCase: false)
|
|
parseExpressionInParenthesisRest((, allowCase: false)
|
|
parseExpression(()
|
|
looksLikeOuterPatternEquals(()
|
|
skipOuterPattern(()
|
|
skipObjectPatternRest(x)
|
|
parsePrecedenceExpression((, 1, true)
|
|
parseUnaryExpression((, true)
|
|
parsePrimary((, expression)
|
|
parseSendOrFunctionLiteral((, expression)
|
|
parseSend((, expression)
|
|
isNextIdentifier(()
|
|
ensureIdentifier((, expression)
|
|
listener: handleIdentifier(x, expression)
|
|
listener: handleNoTypeArguments())
|
|
parseArgumentsOpt(x)
|
|
listener: handleNoArguments())
|
|
listener: handleSend(x, ))
|
|
ensureCloseParen(x, ()
|
|
listener: handleParenthesizedCondition((, null, null)
|
|
ensureBlock(), null, switch expression)
|
|
listener: beginSwitchExpressionBlock({)
|
|
listener: beginSwitchExpressionCase()
|
|
parsePattern({, PatternContext.matching, precedence: 1)
|
|
parsePrimaryPattern({, PatternContext.matching)
|
|
parseVariablePattern({, PatternContext.matching, typeInfo: Instance of 'NoType')
|
|
listener: handleNoType({)
|
|
listener: handleVariablePattern(null, _, false)
|
|
parseExpression(when)
|
|
looksLikeOuterPatternEquals(when)
|
|
skipOuterPattern(when)
|
|
skipObjectPatternRest(y)
|
|
parsePrecedenceExpression(when, 1, true)
|
|
parseUnaryExpression(when, true)
|
|
parsePrimary(when, expression)
|
|
parseSendOrFunctionLiteral(when, expression)
|
|
parseSend(when, expression)
|
|
isNextIdentifier(when)
|
|
ensureIdentifier(when, expression)
|
|
listener: handleIdentifier(y, expression)
|
|
listener: handleNoTypeArguments(+)
|
|
parseArgumentsOpt(y)
|
|
listener: handleNoArguments(+)
|
|
listener: handleSend(y, +)
|
|
listener: beginBinaryExpression(+)
|
|
parsePrecedenceExpression(+, 14, true)
|
|
parseUnaryExpression(+, true)
|
|
parsePrimary(+, expression)
|
|
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(+)
|
|
parseParenthesizedExpressionOrRecordLiteral(+, null)
|
|
listener: beginParenthesizedExpressionOrRecordLiteral(()
|
|
ensureCloseParen((, ()
|
|
listener: endRecordLiteral((, 0, null)
|
|
listener: endBinaryExpression(+)
|
|
ensureFunctionArrow())
|
|
parseExpression(=>)
|
|
looksLikeOuterPatternEquals(=>)
|
|
skipOuterPattern(=>)
|
|
parsePrecedenceExpression(=>, 1, true)
|
|
parseUnaryExpression(=>, true)
|
|
parsePrimary(=>, expression)
|
|
parseLiteralInt(=>)
|
|
listener: handleLiteralInt(0)
|
|
listener: endSwitchExpressionCase(when, =>, 0)
|
|
listener: endSwitchExpressionBlock(1, {, })
|
|
listener: endSwitchExpression(switch, })
|
|
ensureSemicolon(})
|
|
listener: handleExpressionFunctionBody(=>, ;)
|
|
inGenerator()
|
|
listener: endTopLevelMethod(f, null, ;)
|
|
listener: endTopLevelDeclaration()
|
|
reportAllErrorTokens(f)
|
|
listener: endCompilationUnit(1, )
|