parseUnit(main) | |
skipErrorTokens(main) | |
listener: beginCompilationUnit(main) | |
syntheticPreviousToken(main) | |
parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext') | |
parseMetadataStar() | |
listener: beginMetadataStar(main) | |
listener: endMetadataStar(0) | |
parseTopLevelMemberImpl() | |
listener: beginTopLevelMember(main) | |
isReservedKeyword(() | |
parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false) | |
listener: beginTopLevelMethod(, null, null) | |
listener: handleNoType() | |
ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false) | |
listener: handleIdentifier(main, topLevelFunctionDeclaration) | |
parseMethodTypeVar(main) | |
listener: handleNoTypeVariables(() | |
parseGetterOrFormalParameters(main, main, false, MemberKind.TopLevelMethod) | |
parseFormalParameters(main, MemberKind.TopLevelMethod) | |
parseFormalParametersRest((, MemberKind.TopLevelMethod) | |
listener: beginFormalParameters((, MemberKind.TopLevelMethod) | |
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) | |
parseMetadataStar(() | |
listener: beginMetadataStar(List) | |
listener: endMetadataStar(0) | |
listener: beginFormalParameter(List, MemberKind.TopLevelMethod, null, null, null) | |
listener: handleIdentifier(List, typeReference) | |
listener: beginTypeArguments(<) | |
listener: handleIdentifier(int, typeReference) | |
listener: handleNoTypeArguments(>) | |
listener: handleType(int, null) | |
listener: endTypeArguments(1, <, >) | |
listener: handleType(List, ?) | |
ensureIdentifier(?, formalParameterDeclaration) | |
listener: handleIdentifier(a, formalParameterDeclaration) | |
listener: handleFormalParameterWithoutValue(,) | |
listener: endFormalParameter(null, null, null, a, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) | |
parseFormalParameter(,, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) | |
parseMetadataStar(,) | |
listener: beginMetadataStar(bool) | |
listener: endMetadataStar(0) | |
listener: beginFormalParameter(bool, MemberKind.TopLevelMethod, null, null, null) | |
listener: handleIdentifier(bool, typeReference) | |
listener: handleNoTypeArguments(?) | |
listener: handleType(bool, ?) | |
ensureIdentifier(?, formalParameterDeclaration) | |
listener: handleIdentifier(b, formalParameterDeclaration) | |
listener: handleFormalParameterWithoutValue()) | |
listener: endFormalParameter(null, null, null, b, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) | |
listener: endFormalParameters(2, (, ), MemberKind.TopLevelMethod) | |
parseAsyncModifierOpt()) | |
listener: handleAsyncModifier(null, null) | |
inPlainSync() | |
parseFunctionBody(), false, false) | |
listener: beginBlockFunctionBody({) | |
notEofOrValue(}, a) | |
parseStatement({) | |
parseStatementX({) | |
parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, null) | |
looksLikeLocalFunction(a) | |
parseExpressionStatement({) | |
parseExpression({) | |
parsePrecedenceExpression({, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression({, true, ConstantPatternContext.none) | |
parsePrimary({, expression, ConstantPatternContext.none) | |
parseSendOrFunctionLiteral({, expression) | |
parseSend({, expression) | |
isNextIdentifier({) | |
ensureIdentifier({, expression) | |
listener: handleIdentifier(a, expression) | |
listener: handleNoTypeArguments(!) | |
parseArgumentsOpt(a) | |
listener: handleNoArguments(!) | |
listener: handleSend(a, !) | |
listener: handleNonNullAssertExpression(!) | |
parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
listener: handleLiteralInt(0) | |
listener: handleIndexedExpression(null, [, ]) | |
ensureSemicolon(]) | |
listener: handleExpressionStatement(;) | |
notEofOrValue(}, a) | |
parseStatement(;) | |
parseStatementX(;) | |
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, null) | |
looksLikeLocalFunction(a) | |
parseExpressionStatement(;) | |
parseExpression(;) | |
parsePrecedenceExpression(;, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression(;, true, ConstantPatternContext.none) | |
parsePrimary(;, expression, ConstantPatternContext.none) | |
parseSendOrFunctionLiteral(;, expression) | |
parseSend(;, expression) | |
isNextIdentifier(;) | |
ensureIdentifier(;, expression) | |
listener: handleIdentifier(a, expression) | |
listener: handleNoTypeArguments(?) | |
parseArgumentsOpt(a) | |
listener: handleNoArguments(?) | |
listener: handleSend(a, ?) | |
canParseAsConditional(?) | |
parseExpressionWithoutCascade(?) | |
parsePrecedenceExpression(?, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(?, false, ConstantPatternContext.none) | |
parsePrimary(?, expression, ConstantPatternContext.none) | |
parseLiteralListSuffix(?, null) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
parseArgumentOrIndexStar(a, Instance of 'NoTypeParamOrArg', true) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
listener: handleLiteralInt(0) | |
listener: handleIndexedExpression(?, [, ]) | |
ensureSemicolon(]) | |
listener: handleExpressionStatement(;) | |
notEofOrValue(}, a) | |
parseStatement(;) | |
parseStatementX(;) | |
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, null) | |
looksLikeLocalFunction(a) | |
parseExpressionStatement(;) | |
parseExpression(;) | |
parsePrecedenceExpression(;, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression(;, true, ConstantPatternContext.none) | |
parsePrimary(;, expression, ConstantPatternContext.none) | |
parseSendOrFunctionLiteral(;, expression) | |
parseSend(;, expression) | |
isNextIdentifier(;) | |
ensureIdentifier(;, expression) | |
listener: handleIdentifier(a, expression) | |
listener: handleNoTypeArguments(!) | |
parseArgumentsOpt(a) | |
listener: handleNoArguments(!) | |
listener: handleSend(a, !) | |
listener: handleNonNullAssertExpression(!) | |
canParseAsConditional(?) | |
parseExpressionWithoutCascade(?) | |
parsePrecedenceExpression(?, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(?, false, ConstantPatternContext.none) | |
parsePrimary(?, expression, ConstantPatternContext.none) | |
parseLiteralListSuffix(?, null) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', true) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
listener: handleLiteralInt(0) | |
listener: handleIndexedExpression(?, [, ]) | |
ensureSemicolon(]) | |
listener: handleExpressionStatement(;) | |
notEofOrValue(}, () | |
parseStatement(;) | |
parseStatementX(;) | |
parseExpressionStatementOrDeclaration(;, null) | |
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, null) | |
looksLikeLocalFunction(() | |
parseExpressionStatement(;) | |
parseExpression(;) | |
parsePrecedenceExpression(;, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression(;, true, ConstantPatternContext.none) | |
parsePrimary(;, expression, ConstantPatternContext.none) | |
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(;, ConstantPatternContext.none) | |
parseParenthesizedExpressionOrRecordLiteral(;, null, ConstantPatternContext.none) | |
listener: beginParenthesizedExpressionOrRecordLiteral(() | |
parseExpression(() | |
parsePrecedenceExpression((, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression((, true, ConstantPatternContext.none) | |
parsePrimary((, expression, ConstantPatternContext.none) | |
parseSendOrFunctionLiteral((, expression) | |
parseSend((, expression) | |
isNextIdentifier(() | |
ensureIdentifier((, expression) | |
listener: handleIdentifier(a, expression) | |
listener: handleNoTypeArguments(!) | |
parseArgumentsOpt(a) | |
listener: handleNoArguments(!) | |
listener: handleSend(a, !) | |
listener: handleNonNullAssertExpression(!) | |
ensureCloseParen(!, () | |
listener: endParenthesizedExpression(() | |
canParseAsConditional(?) | |
parseExpressionWithoutCascade(?) | |
parsePrecedenceExpression(?, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(?, false, ConstantPatternContext.none) | |
parsePrimary(?, expression, ConstantPatternContext.none) | |
parseLiteralListSuffix(?, null) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
parseArgumentOrIndexStar(), Instance of 'NoTypeParamOrArg', true) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
listener: handleLiteralInt(0) | |
listener: handleIndexedExpression(?, [, ]) | |
ensureSemicolon(]) | |
listener: handleExpressionStatement(;) | |
notEofOrValue(}, b) | |
parseStatement(;) | |
parseStatementX(;) | |
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, null) | |
looksLikeLocalFunction(b) | |
parseExpressionStatement(;) | |
parseExpression(;) | |
parsePrecedenceExpression(;, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression(;, true, ConstantPatternContext.none) | |
parsePrimary(;, expression, ConstantPatternContext.none) | |
parseSendOrFunctionLiteral(;, expression) | |
parseSend(;, expression) | |
isNextIdentifier(;) | |
ensureIdentifier(;, expression) | |
listener: handleIdentifier(b, expression) | |
listener: handleNoTypeArguments(!) | |
parseArgumentsOpt(b) | |
listener: handleNoArguments(!) | |
listener: handleSend(b, !) | |
listener: handleNonNullAssertExpression(!) | |
canParseAsConditional(?) | |
parseExpressionWithoutCascade(?) | |
parsePrecedenceExpression(?, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(?, false, ConstantPatternContext.none) | |
parsePrimary(?, expression, ConstantPatternContext.none) | |
parseLiteralListSuffix(?, null) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
parseExpressionWithoutCascade(:) | |
parsePrecedenceExpression(:, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(:, false, ConstantPatternContext.none) | |
parsePrimary(:, expression, ConstantPatternContext.none) | |
parseLiteralInt(:) | |
parseConditionalExpressionRest(!) | |
listener: beginConditionalExpression(?) | |
parseExpressionWithoutCascade(?) | |
parsePrecedenceExpression(?, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(?, false, ConstantPatternContext.none) | |
parsePrimary(?, expression, ConstantPatternContext.none) | |
listener: handleNoTypeArguments([) | |
parseLiteralListSuffix(?, null) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
listener: handleLiteralInt(0) | |
listener: handleLiteralList(1, [, null, ]) | |
ensureColon(]) | |
listener: handleConditionalExpressionColon() | |
parseExpressionWithoutCascade(:) | |
parsePrecedenceExpression(:, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(:, false, ConstantPatternContext.none) | |
parsePrimary(:, expression, ConstantPatternContext.none) | |
parseLiteralInt(:) | |
listener: handleLiteralInt(0) | |
listener: endConditionalExpression(?, :) | |
ensureSemicolon(0) | |
listener: handleExpressionStatement(;) | |
notEofOrValue(}, () | |
parseStatement(;) | |
parseStatementX(;) | |
parseExpressionStatementOrDeclaration(;, null) | |
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, null) | |
looksLikeLocalFunction(() | |
parseExpressionStatement(;) | |
parseExpression(;) | |
parsePrecedenceExpression(;, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression(;, true, ConstantPatternContext.none) | |
parsePrimary(;, expression, ConstantPatternContext.none) | |
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(;, ConstantPatternContext.none) | |
parseParenthesizedExpressionOrRecordLiteral(;, null, ConstantPatternContext.none) | |
listener: beginParenthesizedExpressionOrRecordLiteral(() | |
parseExpression(() | |
parsePrecedenceExpression((, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression((, true, ConstantPatternContext.none) | |
parsePrimary((, expression, ConstantPatternContext.none) | |
parseSendOrFunctionLiteral((, expression) | |
parseSend((, expression) | |
isNextIdentifier(() | |
ensureIdentifier((, expression) | |
listener: handleIdentifier(b, expression) | |
listener: handleNoTypeArguments(!) | |
parseArgumentsOpt(b) | |
listener: handleNoArguments(!) | |
listener: handleSend(b, !) | |
listener: handleNonNullAssertExpression(!) | |
ensureCloseParen(!, () | |
listener: endParenthesizedExpression(() | |
canParseAsConditional(?) | |
parseExpressionWithoutCascade(?) | |
parsePrecedenceExpression(?, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(?, false, ConstantPatternContext.none) | |
parsePrimary(?, expression, ConstantPatternContext.none) | |
parseLiteralListSuffix(?, null) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
parseExpressionWithoutCascade(:) | |
parsePrecedenceExpression(:, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(:, false, ConstantPatternContext.none) | |
parsePrimary(:, expression, ConstantPatternContext.none) | |
parseLiteralInt(:) | |
parseConditionalExpressionRest()) | |
listener: beginConditionalExpression(?) | |
parseExpressionWithoutCascade(?) | |
parsePrecedenceExpression(?, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(?, false, ConstantPatternContext.none) | |
parsePrimary(?, expression, ConstantPatternContext.none) | |
listener: handleNoTypeArguments([) | |
parseLiteralListSuffix(?, null) | |
parseExpression([) | |
parsePrecedenceExpression([, 1, true, ConstantPatternContext.none) | |
parseUnaryExpression([, true, ConstantPatternContext.none) | |
parsePrimary([, expression, ConstantPatternContext.none) | |
parseLiteralInt([) | |
listener: handleLiteralInt(0) | |
listener: handleLiteralList(1, [, null, ]) | |
ensureColon(]) | |
listener: handleConditionalExpressionColon() | |
parseExpressionWithoutCascade(:) | |
parsePrecedenceExpression(:, 1, false, ConstantPatternContext.none) | |
parseUnaryExpression(:, false, ConstantPatternContext.none) | |
parsePrimary(:, expression, ConstantPatternContext.none) | |
parseLiteralInt(:) | |
listener: handleLiteralInt(0) | |
listener: endConditionalExpression(?, :) | |
ensureSemicolon(0) | |
listener: handleExpressionStatement(;) | |
notEofOrValue(}, }) | |
listener: endBlockFunctionBody(6, {, }) | |
listener: endTopLevelMethod(main, null, }) | |
listener: endTopLevelDeclaration() | |
reportAllErrorTokens(main) | |
listener: endCompilationUnit(1, ) |