[parser] Support RecordType for setter/getters and static methods

Fixes https://github.com/dart-lang/sdk/issues/49709

Change-Id: I710e687ce7e1066eef8439f541f2e5fe2771db36
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255988
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
This commit is contained in:
Jens Johansen 2022-08-24 07:42:51 +00:00 committed by Commit Bot
parent 104b0deb5c
commit cf8f47df4f
25 changed files with 5403 additions and 27 deletions

View file

@ -26,6 +26,11 @@ bool isModifier(Token token) {
Token next = token.next!;
Keyword? keyword = next.keyword;
if (keyword == null && !next.isIdentifier || keyword == Keyword.IN) {
// Record type is a possibility.
if (optional("(", next) && next.endGroup!.next!.isIdentifier) {
// We've seen [modifier] [record type] [identifier].
return true;
}
return false;
}
}

View file

@ -705,7 +705,14 @@ class ComplexTypeInfo implements TypeInfo {
if (optional('?', next)) {
next = next.next!;
}
if (!(next.isIdentifier)) {
bool getOrSet = false;
if (next.isKeyword &&
(optional("get", next) || optional("set", next)) &&
next.next!.isIdentifier) {
getOrSet = true;
next = next.next!;
}
if (!next.isIdentifier) {
// This could for instance be `(int x, int y) {`.
return noType;
}
@ -713,8 +720,18 @@ class ComplexTypeInfo implements TypeInfo {
// TODO(jensj): Are there any other instances where it's a valid
// (optional) record type?
if (!isOneOfOrEof(afterIdentifier, const [";", "=", "(", ",", ")"])) {
// This could for instance be `(int x, int y) async {`.
return noType;
if (getOrSet && isOneOfOrEof(afterIdentifier, const ["=>", "{"])) {
// With a getter/setter in the mix we can accept more stuff, e.g.
// these would be fine:
// - `(` unchecked content `)` `get` identifier `=>`.
// - `(` unchecked content `)` `get` identifier `{`.
// TODO(jensj): A setter would need parenthesis so technically
// couldn't look like this, but I don't think any other valid thing
// could either. Should we handle that specifically?
} else {
// This could for instance be `(int x, int y) async {`.
return noType;
}
}
}
assert(optional(')', token));

View file

@ -19,12 +19,18 @@ void foo() {
(int x, int y) async (int x, int y) {
print("sync named async with record type return type taking 2 parameters");
}
(int x, int y) async (int x, int y) => print("sync named async with record type return type taking 2 parameters");
(int x, int y) {
print("sync unnamed taking 2 parameters");
}();
(int x, int y) => print("sync unnamed taking 2 parameters");
(int x, int y) async {
print("async unnamed taking 2 parameters");
}();
(int x, int y) async => print("async unnamed taking 2 parameters");
}

View file

@ -536,6 +536,62 @@ beginCompilationUnit(void)
handleExpressionStatement(;)
endBlockFunctionBody(1, {, })
endLocalFunctionDeclaration(})
beginMetadataStar(()
endMetadataStar(0)
handleNoTypeVariables(()
beginLocalFunctionDeclaration(()
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
beginFunctionName(async)
handleIdentifier(async, localFunctionDeclaration)
endFunctionName((, ()
beginFormalParameters((, MemberKind.Local)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.Local, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue(,)
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.Local, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, y, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
endFormalParameters(2, (, ), MemberKind.Local)
handleNoInitializers()
handleAsyncModifier(null, null)
handleIdentifier(print, expression)
handleNoTypeArguments(()
beginArguments(()
beginLiteralString("sync named async with record type return type taking 2 parameters")
endLiteralString(0, ))
endArguments(1, (, ))
handleSend(print, ;)
handleExpressionFunctionBody(=>, ;)
endLocalFunctionDeclaration(;)
handleNoTypeVariables(()
beginFunctionExpression(()
beginFormalParameters((, MemberKind.Local)
@ -576,6 +632,39 @@ beginCompilationUnit(void)
handleSend((, ))
handleExpressionStatement(;)
handleNoTypeVariables(()
beginFunctionExpression(()
beginFormalParameters((, MemberKind.Local)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.Local, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue(,)
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.Local, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, y, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
endFormalParameters(2, (, ), MemberKind.Local)
handleAsyncModifier(null, null)
handleIdentifier(print, expression)
handleNoTypeArguments(()
beginArguments(()
beginLiteralString("sync unnamed taking 2 parameters")
endLiteralString(0, ))
endArguments(1, (, ))
handleSend(print, ;)
handleExpressionFunctionBody(=>, null)
endFunctionExpression((, ;)
handleExpressionStatement(;)
handleNoTypeVariables(()
beginFunctionExpression(()
beginFormalParameters((, MemberKind.Local)
beginMetadataStar(int)
@ -614,7 +703,40 @@ beginCompilationUnit(void)
endArguments(0, (, ))
handleSend((, ))
handleExpressionStatement(;)
endBlockFunctionBody(14, {, })
handleNoTypeVariables(()
beginFunctionExpression(()
beginFormalParameters((, MemberKind.Local)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.Local, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue(,)
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.Local, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, y, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
endFormalParameters(2, (, ), MemberKind.Local)
handleAsyncModifier(async, null)
handleIdentifier(print, expression)
handleNoTypeArguments(()
beginArguments(()
beginLiteralString("async unnamed taking 2 parameters")
endLiteralString(0, ))
endArguments(1, (, ))
handleSend(print, ;)
handleExpressionFunctionBody(=>, null)
endFunctionExpression((, ;)
handleExpressionStatement(;)
endBlockFunctionBody(17, {, })
endTopLevelMethod(void, null, })
endTopLevelDeclaration()
endCompilationUnit(1, )

View file

@ -1077,17 +1077,123 @@ parseUnit(void)
parseStatementX(})
parseExpressionStatementOrDeclaration(}, false)
parseExpressionStatementOrDeclarationAfterModifiers(}, }, null, null, null, false)
looksLikeLocalFunction(async)
listener: beginMetadataStar(()
listener: endMetadataStar(0)
listener: handleNoTypeVariables(()
listener: beginLocalFunctionDeclaration(()
parseRecordType((, })
listener: beginRecordType(()
parseRecordTypeField((, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(x)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(x, recordFieldDeclaration)
listener: endRecordTypeEntry()
parseRecordTypeField(,, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(y, recordFieldDeclaration)
listener: endRecordTypeEntry()
listener: endRecordType((, null, 2, false)
parseNamedFunctionRest(), (, async, false)
listener: beginFunctionName(async)
ensureIdentifier(), localFunctionDeclaration)
inPlainSync()
listener: handleIdentifier(async, localFunctionDeclaration)
listener: endFunctionName((, ()
parseFormalParametersRequiredOpt(async, MemberKind.Local)
parseFormalParametersRest((, MemberKind.Local)
listener: beginFormalParameters((, MemberKind.Local)
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.Local)
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginFormalParameter(int, MemberKind.Local, null, null, null)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(x)
listener: handleType(int, null)
ensureIdentifier(int, formalParameterDeclaration)
listener: handleIdentifier(x, formalParameterDeclaration)
listener: handleFormalParameterWithoutValue(,)
listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
parseFormalParameter(,, FormalParameterKind.requiredPositional, MemberKind.Local)
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginFormalParameter(int, MemberKind.Local, null, null, null)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifier(int, formalParameterDeclaration)
listener: handleIdentifier(y, formalParameterDeclaration)
listener: handleFormalParameterWithoutValue())
listener: endFormalParameter(null, null, null, y, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
listener: endFormalParameters(2, (, ), MemberKind.Local)
parseInitializersOpt())
listener: handleNoInitializers()
parseAsyncOptBody(), false, false)
parseAsyncModifierOpt())
listener: handleAsyncModifier(null, null)
inPlainSync()
parseFunctionBody(), false, false)
parseExpressionFunctionBody(=>, false)
parseExpression(=>)
parsePrecedenceExpression(=>, 1, true)
parseUnaryExpression(=>, true)
parsePrimary(=>, expression)
parseSendOrFunctionLiteral(=>, expression)
looksLikeFunctionBody(;)
parseSend(=>, expression)
isNextIdentifier(=>)
ensureIdentifier(=>, expression)
listener: handleIdentifier(print, expression)
listener: handleNoTypeArguments(()
parseArgumentsOpt(print)
parseArguments(print)
parseArgumentsRest(()
listener: beginArguments(()
parseExpression(()
parsePrecedenceExpression((, 1, true)
parseUnaryExpression((, true)
parsePrimary((, expression)
parseLiteralString(()
parseSingleLiteralString(()
listener: beginLiteralString("sync named async with record type return type taking 2 parameters")
listener: endLiteralString(0, ))
listener: endArguments(1, (, ))
listener: handleSend(print, ;)
ensureSemicolon())
listener: handleExpressionFunctionBody(=>, ;)
inGenerator()
listener: endLocalFunctionDeclaration(;)
notEofOrValue(}, ()
parseStatement(;)
parseStatementX(;)
parseExpressionStatementOrDeclaration(;, false)
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
looksLikeLocalFunction(()
parseExpressionStatement(})
parseExpression(})
parsePrecedenceExpression(}, 1, true)
parseUnaryExpression(}, true)
parsePrimary(}, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(})
parseExpressionStatement(;)
parseExpression(;)
parsePrecedenceExpression(;, 1, true)
parseUnaryExpression(;, true)
parsePrimary(;, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(;)
listener: handleNoTypeVariables(()
parseFunctionExpression(})
parseFunctionExpression(;)
listener: beginFunctionExpression(()
parseFormalParametersRequiredOpt(}, MemberKind.Local)
parseFormalParametersRequiredOpt(;, MemberKind.Local)
parseFormalParametersRest((, MemberKind.Local)
listener: beginFormalParameters((, MemberKind.Local)
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.Local)
@ -1167,6 +1273,85 @@ parseUnit(void)
ensureSemicolon())
listener: handleExpressionStatement(;)
notEofOrValue(}, ()
parseStatement(;)
parseStatementX(;)
parseExpressionStatementOrDeclaration(;, false)
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
looksLikeLocalFunction(()
parseExpressionStatement(;)
parseExpression(;)
parsePrecedenceExpression(;, 1, true)
parseUnaryExpression(;, true)
parsePrimary(;, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(;)
listener: handleNoTypeVariables(()
parseFunctionExpression(;)
listener: beginFunctionExpression(()
parseFormalParametersRequiredOpt(;, MemberKind.Local)
parseFormalParametersRest((, MemberKind.Local)
listener: beginFormalParameters((, MemberKind.Local)
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.Local)
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginFormalParameter(int, MemberKind.Local, null, null, null)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(x)
listener: handleType(int, null)
ensureIdentifier(int, formalParameterDeclaration)
listener: handleIdentifier(x, formalParameterDeclaration)
listener: handleFormalParameterWithoutValue(,)
listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
parseFormalParameter(,, FormalParameterKind.requiredPositional, MemberKind.Local)
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginFormalParameter(int, MemberKind.Local, null, null, null)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifier(int, formalParameterDeclaration)
listener: handleIdentifier(y, formalParameterDeclaration)
listener: handleFormalParameterWithoutValue())
listener: endFormalParameter(null, null, null, y, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
listener: endFormalParameters(2, (, ), MemberKind.Local)
parseAsyncOptBody(), true, false)
parseAsyncModifierOpt())
listener: handleAsyncModifier(null, null)
inPlainSync()
parseFunctionBody(), true, false)
parseExpressionFunctionBody(=>, true)
parseExpression(=>)
parsePrecedenceExpression(=>, 1, true)
parseUnaryExpression(=>, true)
parsePrimary(=>, expression)
parseSendOrFunctionLiteral(=>, expression)
looksLikeFunctionBody(;)
parseSend(=>, expression)
isNextIdentifier(=>)
ensureIdentifier(=>, expression)
listener: handleIdentifier(print, expression)
listener: handleNoTypeArguments(()
parseArgumentsOpt(print)
parseArguments(print)
parseArgumentsRest(()
listener: beginArguments(()
parseExpression(()
parsePrecedenceExpression((, 1, true)
parseUnaryExpression((, true)
parsePrimary((, expression)
parseLiteralString(()
parseSingleLiteralString(()
listener: beginLiteralString("sync unnamed taking 2 parameters")
listener: endLiteralString(0, ))
listener: endArguments(1, (, ))
listener: handleSend(print, ;)
listener: handleExpressionFunctionBody(=>, null)
inGenerator()
listener: endFunctionExpression((, ;)
ensureSemicolon())
listener: handleExpressionStatement(;)
notEofOrValue(}, ()
parseStatement(;)
parseStatementX(;)
parseExpressionStatementOrDeclaration(;, false)
@ -1260,8 +1445,87 @@ parseUnit(void)
listener: handleSend((, ))
ensureSemicolon())
listener: handleExpressionStatement(;)
notEofOrValue(}, ()
parseStatement(;)
parseStatementX(;)
parseExpressionStatementOrDeclaration(;, false)
parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
looksLikeLocalFunction(()
parseExpressionStatement(;)
parseExpression(;)
parsePrecedenceExpression(;, 1, true)
parseUnaryExpression(;, true)
parsePrimary(;, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(;)
listener: handleNoTypeVariables(()
parseFunctionExpression(;)
listener: beginFunctionExpression(()
parseFormalParametersRequiredOpt(;, MemberKind.Local)
parseFormalParametersRest((, MemberKind.Local)
listener: beginFormalParameters((, MemberKind.Local)
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.Local)
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginFormalParameter(int, MemberKind.Local, null, null, null)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(x)
listener: handleType(int, null)
ensureIdentifier(int, formalParameterDeclaration)
listener: handleIdentifier(x, formalParameterDeclaration)
listener: handleFormalParameterWithoutValue(,)
listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
parseFormalParameter(,, FormalParameterKind.requiredPositional, MemberKind.Local)
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginFormalParameter(int, MemberKind.Local, null, null, null)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifier(int, formalParameterDeclaration)
listener: handleIdentifier(y, formalParameterDeclaration)
listener: handleFormalParameterWithoutValue())
listener: endFormalParameter(null, null, null, y, null, null, FormalParameterKind.requiredPositional, MemberKind.Local)
listener: endFormalParameters(2, (, ), MemberKind.Local)
parseAsyncOptBody(), true, false)
parseAsyncModifierOpt())
listener: handleAsyncModifier(async, null)
inPlainSync()
parseFunctionBody(async, true, false)
parseExpressionFunctionBody(=>, true)
parseExpression(=>)
parsePrecedenceExpression(=>, 1, true)
parseUnaryExpression(=>, true)
parsePrimary(=>, expression)
parseSendOrFunctionLiteral(=>, expression)
looksLikeFunctionBody(;)
parseSend(=>, expression)
isNextIdentifier(=>)
ensureIdentifier(=>, expression)
listener: handleIdentifier(print, expression)
listener: handleNoTypeArguments(()
parseArgumentsOpt(print)
parseArguments(print)
parseArgumentsRest(()
listener: beginArguments(()
parseExpression(()
parsePrecedenceExpression((, 1, true)
parseUnaryExpression((, true)
parsePrimary((, expression)
parseLiteralString(()
parseSingleLiteralString(()
listener: beginLiteralString("async unnamed taking 2 parameters")
listener: endLiteralString(0, ))
listener: endArguments(1, (, ))
listener: handleSend(print, ;)
listener: handleExpressionFunctionBody(=>, null)
inGenerator()
listener: endFunctionExpression((, ;)
ensureSemicolon())
listener: handleExpressionStatement(;)
notEofOrValue(}, })
listener: endBlockFunctionBody(14, {, })
listener: endBlockFunctionBody(17, {, })
listener: endTopLevelMethod(void, null, })
listener: endTopLevelDeclaration()
reportAllErrorTokens(void)

View file

@ -20,13 +20,19 @@ print("sync named async with int return type taking 2 parameters");
print("sync named async with record type return type taking 2 parameters");
}
(int x, int y) async (int x, int y) => print("sync named async with record type return type taking 2 parameters");
(int x, int y) {
print("sync unnamed taking 2 parameters");
}();
(int x, int y) => print("sync unnamed taking 2 parameters");
(int x, int y) async {
print("async unnamed taking 2 parameters");
}();
(int x, int y) async => print("async unnamed taking 2 parameters");
}
@ -52,12 +58,18 @@ print[StringToken]([BeginToken]"sync named async with int return type taking 2 p
print[StringToken]([BeginToken]"sync named async with record type return type taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] async[KeywordToken] ([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] =>[SimpleToken] print[StringToken]([BeginToken]"sync named async with record type return type taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] {[BeginToken]
print[StringToken]([BeginToken]"sync unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]([BeginToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] =>[SimpleToken] print[StringToken]([BeginToken]"sync unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken]
print[StringToken]([BeginToken]"async unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]([BeginToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] print[StringToken]([BeginToken]"async unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -20,13 +20,19 @@ print("sync named async with int return type taking 2 parameters");
print("sync named async with record type return type taking 2 parameters");
}
(int x, int y) async (int x, int y) => print("sync named async with record type return type taking 2 parameters");
(int x, int y) {
print("sync unnamed taking 2 parameters");
}();
(int x, int y) => print("sync unnamed taking 2 parameters");
(int x, int y) async {
print("async unnamed taking 2 parameters");
}();
(int x, int y) async => print("async unnamed taking 2 parameters");
}
@ -52,12 +58,18 @@ print[StringToken]([BeginToken]"sync named async with int return type taking 2 p
print[StringToken]([BeginToken]"sync named async with record type return type taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] async[KeywordToken] ([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] =>[SimpleToken] print[StringToken]([BeginToken]"sync named async with record type return type taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] {[BeginToken]
print[StringToken]([BeginToken]"sync unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]([BeginToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] =>[SimpleToken] print[StringToken]([BeginToken]"sync unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken]
print[StringToken]([BeginToken]"async unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]([BeginToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] x[StringToken],[SimpleToken] int[StringToken] y[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] print[StringToken]([BeginToken]"async unnamed taking 2 parameters"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -0,0 +1,39 @@
// Not getter, but method called 'get'.
(int a, String b) get(int x) => (42, "fortytwo");
(int a, String b) get(int x) { return (42, "fortytwo"); }
// Getter called get.
(int a, String b) get get => (42, "fortytwo");
(int a, String b) get get { return (42, "fortytwo"); }
// Getter called something else.
(int a, String b) get topLevelGetter => (42, "fortytwo");
(int a, String b) get topLevelGetter { return (42, "fortytwo"); }
class Foo {
// Not getter, but method called 'get'.
(int a, String b) get(int x) => (42, "fortytwo");
(int a, String b) get(int x) { return (42, "fortytwo"); }
// Getter called get.
(int a, String b) get get => (42, "fortytwo");
(int a, String b) get get { return (42, "fortytwo"); }
// Getter called something else.
(int a, String b) get instanceGetter => (42, "fortytwo");
(int a, String b) get instanceGetter { return (42, "fortytwo"); }
}
class Bar {
// Not getter, but method called 'get'.
static (int a, String b) get(int x) => (42, "fortytwo");
static (int a, String b) get(int x) { return (42, "fortytwo"); }
// Getter called get.
static (int a, String b) get get => (42, "fortytwo");
static (int a, String b) get get { return (42, "fortytwo"); }
// Getter called something else.
static (int a, String b) get staticGetter => (42, "fortytwo");
static (int a, String b) get staticGetter { return (42, "fortytwo"); }
}

View file

@ -0,0 +1,743 @@
beginCompilationUnit(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, topLevelFunctionDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.TopLevelMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod((, null, ;)
endTopLevelDeclaration(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(;, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, topLevelFunctionDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.TopLevelMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endTopLevelMethod((, null, })
endTopLevelDeclaration(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(}, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, topLevelFunctionDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod((, get, ;)
endTopLevelDeclaration(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(;, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, topLevelFunctionDeclaration)
handleNoTypeVariables({)
handleNoFormalParameters({, MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endTopLevelMethod((, get, })
endTopLevelDeclaration(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(}, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(topLevelGetter, topLevelFunctionDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod((, get, ;)
endTopLevelDeclaration(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(;, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(topLevelGetter, topLevelFunctionDeclaration)
handleNoTypeVariables({)
handleNoFormalParameters({, MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endTopLevelMethod((, get, })
endTopLevelDeclaration(class)
beginMetadataStar(class)
endMetadataStar(0)
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
handleIdentifier(Foo, classOrMixinDeclaration)
handleNoTypeVariables({)
beginClassDeclaration(class, null, null, null, Foo)
handleNoType(Foo)
handleClassExtends(null, 1)
handleClassNoWithClause()
handleImplements(null, 0)
handleClassHeader(class, class, null)
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.NonStaticMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(null, (, (, null, ;)
endMember()
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.NonStaticMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endClassMethod(null, (, (, null, })
endMember()
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(get, (, =>, null, ;)
endMember()
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables({)
handleNoFormalParameters({, MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endClassMethod(get, (, {, null, })
endMember()
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(instanceGetter, methodDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(get, (, =>, null, ;)
endMember()
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(instanceGetter, methodDeclaration)
handleNoTypeVariables({)
handleNoFormalParameters({, MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endClassMethod(get, (, {, null, })
endMember()
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
endClassDeclaration(class, })
endTopLevelDeclaration(class)
beginMetadataStar(class)
endMetadataStar(0)
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
handleIdentifier(Bar, classOrMixinDeclaration)
handleNoTypeVariables({)
beginClassDeclaration(class, null, null, null, Bar)
handleNoType(Bar)
handleClassExtends(null, 1)
handleClassNoWithClause()
handleImplements(null, 0)
handleClassHeader(class, class, null)
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.StaticMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.StaticMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod)
endFormalParameters(1, (, ), MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(null, static, (, null, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.StaticMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.StaticMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod)
endFormalParameters(1, (, ), MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endClassMethod(null, static, (, null, })
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(get, static, =>, null, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(get, methodDeclaration)
handleNoTypeVariables({)
handleNoFormalParameters({, MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endClassMethod(get, static, {, null, })
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(staticGetter, methodDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(get, static, =>, null, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(staticGetter, methodDeclaration)
handleNoTypeVariables({)
handleNoFormalParameters({, MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginBlockFunctionBody({)
beginReturnStatement(return)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
endReturnStatement(true, return, ;)
endBlockFunctionBody(1, {, })
endClassMethod(get, static, {, null, })
endMember()
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
endClassDeclaration(class, })
endTopLevelDeclaration()
endCompilationUnit(8, )

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,79 @@
(int a, String b) get(int x) => (42, "fortytwo");
(int a, String b) get(int x) { return (42, "fortytwo"); }
(int a, String b) get get => (42, "fortytwo");
(int a, String b) get get { return (42, "fortytwo"); }
(int a, String b) get topLevelGetter => (42, "fortytwo");
(int a, String b) get topLevelGetter { return (42, "fortytwo"); }
class Foo {
(int a, String b) get(int x) => (42, "fortytwo");
(int a, String b) get(int x) { return (42, "fortytwo"); }
(int a, String b) get get => (42, "fortytwo");
(int a, String b) get get { return (42, "fortytwo"); }
(int a, String b) get instanceGetter => (42, "fortytwo");
(int a, String b) get instanceGetter { return (42, "fortytwo"); }
}
class Bar {
static (int a, String b) get(int x) => (42, "fortytwo");
static (int a, String b) get(int x) { return (42, "fortytwo"); }
static (int a, String b) get get => (42, "fortytwo");
static (int a, String b) get get { return (42, "fortytwo"); }
static (int a, String b) get staticGetter => (42, "fortytwo");
static (int a, String b) get staticGetter { return (42, "fortytwo"); }
}
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
class[KeywordToken] Foo[StringToken] {[BeginToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
}[SimpleToken]
class[KeywordToken] Bar[StringToken] {[BeginToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -0,0 +1,79 @@
(int a, String b) get(int x) => (42, "fortytwo");
(int a, String b) get(int x) { return (42, "fortytwo"); }
(int a, String b) get get => (42, "fortytwo");
(int a, String b) get get { return (42, "fortytwo"); }
(int a, String b) get topLevelGetter => (42, "fortytwo");
(int a, String b) get topLevelGetter { return (42, "fortytwo"); }
class Foo {
(int a, String b) get(int x) => (42, "fortytwo");
(int a, String b) get(int x) { return (42, "fortytwo"); }
(int a, String b) get get => (42, "fortytwo");
(int a, String b) get get { return (42, "fortytwo"); }
(int a, String b) get instanceGetter => (42, "fortytwo");
(int a, String b) get instanceGetter { return (42, "fortytwo"); }
}
class Bar {
static (int a, String b) get(int x) => (42, "fortytwo");
static (int a, String b) get(int x) { return (42, "fortytwo"); }
static (int a, String b) get get => (42, "fortytwo");
static (int a, String b) get get { return (42, "fortytwo"); }
static (int a, String b) get staticGetter => (42, "fortytwo");
static (int a, String b) get staticGetter { return (42, "fortytwo"); }
}
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
class[KeywordToken] Foo[StringToken] {[BeginToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
}[SimpleToken]
class[KeywordToken] Bar[StringToken] {[BeginToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] {[BeginToken] return[KeywordToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken] }[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -0,0 +1,39 @@
// Not setter, but method called 'set'.
(int a, String b) set(int x) => (42, "fortytwo");
// Setter called set.
void set set((int a, String b) x) => (42, "fortytwo");
// Getter called set.
(int a, String b) get set => (42, "fortytwo");
// Setter called something else.
void set topLevelSetter((int a, String b) x) => (42, "fortytwo");
class Foo {
// Not setter, but method called 'set'.
(int a, String b) set(int x) => (42, "fortytwo");
// Setter called set.
void set set((int a, String b) x) => (42, "fortytwo");
// Getter called set.
(int a, String b) get set => (42, "fortytwo");
// Setter called something else.
void set instanceSetter((int a, String b) x) => (42, "fortytwo");
}
class Bar {
// Not setter, but method called 'set'.
static (int a, String b) set(int x) => (42, "fortytwo");
// Setter called set.
static void set set((int a, String b) x) => (42, "fortytwo");
// Getter called set.
static (int a, String b) get set => (42, "fortytwo");
// Setter called something else.
static void set staticSetter((int a, String b) x) => (42, "fortytwo");
}

View file

@ -0,0 +1,526 @@
beginCompilationUnit(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(set, topLevelFunctionDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.TopLevelMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod((, null, ;)
endTopLevelDeclaration(void)
beginMetadataStar(void)
endMetadataStar(0)
beginTopLevelMember(void)
beginTopLevelMethod(;, null, null)
handleVoidKeyword(void)
handleIdentifier(set, topLevelFunctionDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.TopLevelMethod)
beginMetadataStar(()
endMetadataStar(0)
beginFormalParameter((, MemberKind.TopLevelMethod, null, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod(void, set, ;)
endTopLevelDeclaration(()
beginMetadataStar(()
endMetadataStar(0)
beginTopLevelMember(()
beginTopLevelMethod(;, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(set, topLevelFunctionDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod((, get, ;)
endTopLevelDeclaration(void)
beginMetadataStar(void)
endMetadataStar(0)
beginTopLevelMember(void)
beginTopLevelMethod(;, null, null)
handleVoidKeyword(void)
handleIdentifier(topLevelSetter, topLevelFunctionDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.TopLevelMethod)
beginMetadataStar(()
endMetadataStar(0)
beginFormalParameter((, MemberKind.TopLevelMethod, null, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endTopLevelMethod(void, set, ;)
endTopLevelDeclaration(class)
beginMetadataStar(class)
endMetadataStar(0)
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
handleIdentifier(Foo, classOrMixinDeclaration)
handleNoTypeVariables({)
beginClassDeclaration(class, null, null, null, Foo)
handleNoType(Foo)
handleClassExtends(null, 1)
handleClassNoWithClause()
handleImplements(null, 0)
handleClassHeader(class, class, null)
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, set)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(set, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.NonStaticMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(null, (, (, null, ;)
endMember()
beginMetadataStar(void)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, set, set)
handleVoidKeyword(void)
handleIdentifier(set, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.NonStaticMethod)
beginMetadataStar(()
endMetadataStar(0)
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(set, void, (, null, ;)
endMember()
beginMetadataStar(()
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, get, set)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(set, methodDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(get, (, =>, null, ;)
endMember()
beginMetadataStar(void)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, null, null, null, set, instanceSetter)
handleVoidKeyword(void)
handleIdentifier(instanceSetter, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.NonStaticMethod)
beginMetadataStar(()
endMetadataStar(0)
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(set, void, (, null, ;)
endMember()
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 4, {, })
endClassDeclaration(class, })
endTopLevelDeclaration(class)
beginMetadataStar(class)
endMetadataStar(0)
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
handleIdentifier(Bar, classOrMixinDeclaration)
handleNoTypeVariables({)
beginClassDeclaration(class, null, null, null, Bar)
handleNoType(Bar)
handleClassExtends(null, 1)
handleClassNoWithClause()
handleImplements(null, 0)
handleClassHeader(class, class, null)
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, null, set)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(set, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.StaticMethod)
beginMetadataStar(int)
endMetadataStar(0)
beginFormalParameter(int, MemberKind.StaticMethod, null, null, null)
handleIdentifier(int, typeReference)
handleNoTypeArguments(x)
handleType(int, null)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod)
endFormalParameters(1, (, ), MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(null, static, (, null, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, set, set)
handleVoidKeyword(void)
handleIdentifier(set, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.StaticMethod)
beginMetadataStar(()
endMetadataStar(0)
beginFormalParameter((, MemberKind.StaticMethod, null, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod)
endFormalParameters(1, (, ), MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(set, static, (, null, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, get, set)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(set, methodDeclaration)
handleNoTypeVariables(=>)
handleNoFormalParameters(=>, MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(get, static, =>, null, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginMethod(DeclarationKind.Class, null, null, static, null, null, set, staticSetter)
handleVoidKeyword(void)
handleIdentifier(staticSetter, methodDeclaration)
handleNoTypeVariables(()
beginFormalParameters((, MemberKind.StaticMethod)
beginMetadataStar(()
endMetadataStar(0)
beginFormalParameter((, MemberKind.StaticMethod, null, null, null)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(String)
endMetadataStar(0)
handleIdentifier(String, typeReference)
handleNoTypeArguments(b)
handleType(String, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(x, formalParameterDeclaration)
handleFormalParameterWithoutValue())
endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod)
endFormalParameters(1, (, ), MemberKind.StaticMethod)
handleNoInitializers()
handleAsyncModifier(null, null)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
beginLiteralString("fortytwo")
endLiteralString(0, ))
endRecordLiteral((, 2)
handleExpressionFunctionBody(=>, ;)
endClassMethod(set, static, (, null, ;)
endMember()
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 4, {, })
endClassDeclaration(class, })
endTopLevelDeclaration()
endCompilationUnit(6, )

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,79 @@
(int a, String b) set(int x) => (42, "fortytwo");
void set set((int a, String b) x) => (42, "fortytwo");
(int a, String b) get set => (42, "fortytwo");
void set topLevelSetter((int a, String b) x) => (42, "fortytwo");
class Foo {
(int a, String b) set(int x) => (42, "fortytwo");
void set set((int a, String b) x) => (42, "fortytwo");
(int a, String b) get set => (42, "fortytwo");
void set instanceSetter((int a, String b) x) => (42, "fortytwo");
}
class Bar {
static (int a, String b) set(int x) => (42, "fortytwo");
static void set set((int a, String b) x) => (42, "fortytwo");
static (int a, String b) get set => (42, "fortytwo");
static void set staticSetter((int a, String b) x) => (42, "fortytwo");
}
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] set[KeywordToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] set[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] topLevelSetter[StringToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
class[KeywordToken] Foo[StringToken] {[BeginToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] set[KeywordToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] set[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] instanceSetter[StringToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
class[KeywordToken] Bar[StringToken] {[BeginToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] void[KeywordToken] set[KeywordToken] set[KeywordToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] set[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] void[KeywordToken] set[KeywordToken] staticSetter[StringToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -0,0 +1,79 @@
(int a, String b) set(int x) => (42, "fortytwo");
void set set((int a, String b) x) => (42, "fortytwo");
(int a, String b) get set => (42, "fortytwo");
void set topLevelSetter((int a, String b) x) => (42, "fortytwo");
class Foo {
(int a, String b) set(int x) => (42, "fortytwo");
void set set((int a, String b) x) => (42, "fortytwo");
(int a, String b) get set => (42, "fortytwo");
void set instanceSetter((int a, String b) x) => (42, "fortytwo");
}
class Bar {
static (int a, String b) set(int x) => (42, "fortytwo");
static void set set((int a, String b) x) => (42, "fortytwo");
static (int a, String b) get set => (42, "fortytwo");
static void set staticSetter((int a, String b) x) => (42, "fortytwo");
}
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] set[KeywordToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] set[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] topLevelSetter[StringToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
class[KeywordToken] Foo[StringToken] {[BeginToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] set[KeywordToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] set[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
void[KeywordToken] set[KeywordToken] instanceSetter[StringToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
class[KeywordToken] Bar[StringToken] {[BeginToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] set[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] void[KeywordToken] set[KeywordToken] set[KeywordToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] set[KeywordToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] void[KeywordToken] set[KeywordToken] staticSetter[StringToken]([BeginToken]([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] x[StringToken])[SimpleToken] =>[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] "fortytwo"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -0,0 +1,8 @@
class Foo {
final (int a, int b) x = (42, 42);
static (int a, int b) y = (42, 42);
static final (int a, int b) z = (42, 42);
static const (int a, int b) b = (42, 42);
late (int a, int b) c;
late final (int a, int b) d;
}

View file

@ -0,0 +1,193 @@
beginCompilationUnit(class)
beginMetadataStar(class)
endMetadataStar(0)
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
handleIdentifier(Foo, classOrMixinDeclaration)
handleNoTypeVariables({)
beginClassDeclaration(class, null, null, null, Foo)
handleNoType(Foo)
handleClassExtends(null, 1)
handleClassNoWithClause()
handleImplements(null, 0)
handleClassHeader(class, class, null)
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
beginMetadataStar(final)
endMetadataStar(0)
beginMember()
beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(b)
handleType(int, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(x, fieldDeclaration)
beginFieldInitializer(=)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
handleLiteralInt(42)
endRecordLiteral((, 2)
endFieldInitializer(=, ;)
endClassFields(null, null, null, null, null, null, final, 1, final, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginFields(DeclarationKind.Class, null, null, null, static, null, null, null, ;)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(b)
handleType(int, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(y, fieldDeclaration)
beginFieldInitializer(=)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
handleLiteralInt(42)
endRecordLiteral((, 2)
endFieldInitializer(=, ;)
endClassFields(null, null, null, static, null, null, null, 1, static, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginFields(DeclarationKind.Class, null, null, null, static, null, null, final, ;)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(b)
handleType(int, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(z, fieldDeclaration)
beginFieldInitializer(=)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
handleLiteralInt(42)
endRecordLiteral((, 2)
endFieldInitializer(=, ;)
endClassFields(null, null, null, static, null, null, final, 1, static, ;)
endMember()
beginMetadataStar(static)
endMetadataStar(0)
beginMember()
beginFields(DeclarationKind.Class, null, null, null, static, null, null, const, ;)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(b)
handleType(int, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(b, fieldDeclaration)
beginFieldInitializer(=)
beginParenthesizedExpressionOrRecordLiteral(()
handleLiteralInt(42)
handleLiteralInt(42)
endRecordLiteral((, 2)
endFieldInitializer(=, ;)
endClassFields(null, null, null, static, null, null, const, 1, static, ;)
endMember()
beginMetadataStar(late)
endMetadataStar(0)
beginMember()
beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, ;)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(b)
handleType(int, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(c, fieldDeclaration)
handleNoFieldInitializer(;)
endClassFields(null, null, null, null, null, late, null, 1, late, ;)
endMember()
beginMetadataStar(late)
endMetadataStar(0)
beginMember()
beginFields(DeclarationKind.Class, null, null, null, null, null, late, final, ;)
beginRecordType(()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(a)
handleType(int, null)
handleIdentifier(a, recordFieldDeclaration)
endRecordTypeEntry()
beginRecordTypeEntry()
beginMetadataStar(int)
endMetadataStar(0)
handleIdentifier(int, typeReference)
handleNoTypeArguments(b)
handleType(int, null)
handleIdentifier(b, recordFieldDeclaration)
endRecordTypeEntry()
endRecordType((, null, 2, false)
handleIdentifier(d, fieldDeclaration)
handleNoFieldInitializer(;)
endClassFields(null, null, null, null, null, late, final, 1, late, ;)
endMember()
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
endClassDeclaration(class, })
endTopLevelDeclaration()
endCompilationUnit(1, )

View file

@ -0,0 +1,355 @@
parseUnit(class)
skipErrorTokens(class)
listener: beginCompilationUnit(class)
syntheticPreviousToken(class)
parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
parseMetadataStar()
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
listener: handleIdentifier(Foo, classOrMixinDeclaration)
listener: handleNoTypeVariables({)
listener: beginClassDeclaration(class, null, null, null, Foo)
parseClass(Foo, class, class, Foo)
parseClassHeaderOpt(Foo, class, class)
parseClassExtendsOpt(Foo)
listener: handleNoType(Foo)
listener: handleClassExtends(null, 1)
parseClassWithClauseOpt(Foo)
listener: handleClassNoWithClause()
parseClassOrMixinOrEnumImplementsOpt(Foo)
listener: handleImplements(null, 0)
listener: handleClassHeader(class, class, null)
parseClassOrMixinOrExtensionBody(Foo, DeclarationKind.Class, Foo)
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
notEofOrValue(}, final)
parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, Foo)
parseMetadataStar({)
listener: beginMetadataStar(final)
listener: endMetadataStar(0)
listener: beginMember()
parseFields({, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', x, DeclarationKind.Class, Foo, false)
listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
parseRecordType((, final)
listener: beginRecordType(()
parseRecordTypeField((, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(a)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(a, recordFieldDeclaration)
listener: endRecordTypeEntry()
parseRecordTypeField(,, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(b)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(b, recordFieldDeclaration)
listener: endRecordTypeEntry()
listener: endRecordType((, null, 2, false)
ensureIdentifierPotentiallyRecovered(), fieldDeclaration, false)
listener: handleIdentifier(x, fieldDeclaration)
parseFieldInitializerOpt(x, x, null, null, null, null, final, DeclarationKind.Class, Foo)
listener: beginFieldInitializer(=)
parseExpression(=)
parsePrecedenceExpression(=, 1, true)
parseUnaryExpression(=, true)
parsePrimary(=, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(=)
parseParenthesizedExpressionOrRecordLiteral(=)
listener: beginParenthesizedExpressionOrRecordLiteral(()
parseExpression(()
parsePrecedenceExpression((, 1, true)
parseUnaryExpression((, true)
parsePrimary((, expression)
parseLiteralInt(()
listener: handleLiteralInt(42)
parseExpression(,)
parsePrecedenceExpression(,, 1, true)
parseUnaryExpression(,, true)
parsePrimary(,, expression)
parseLiteralInt(,)
listener: handleLiteralInt(42)
ensureCloseParen(42, ()
listener: endRecordLiteral((, 2)
listener: endFieldInitializer(=, ;)
listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
listener: endMember()
notEofOrValue(}, static)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
parseMetadataStar(;)
listener: beginMetadataStar(static)
listener: endMetadataStar(0)
listener: beginMember()
parseFields(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', y, DeclarationKind.Class, Foo, false)
listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, null, ;)
parseRecordType((, static)
listener: beginRecordType(()
parseRecordTypeField((, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(a)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(a, recordFieldDeclaration)
listener: endRecordTypeEntry()
parseRecordTypeField(,, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(b)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(b, recordFieldDeclaration)
listener: endRecordTypeEntry()
listener: endRecordType((, null, 2, false)
ensureIdentifierPotentiallyRecovered(), fieldDeclaration, false)
listener: handleIdentifier(y, fieldDeclaration)
parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.Class, Foo)
listener: beginFieldInitializer(=)
parseExpression(=)
parsePrecedenceExpression(=, 1, true)
parseUnaryExpression(=, true)
parsePrimary(=, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(=)
parseParenthesizedExpressionOrRecordLiteral(=)
listener: beginParenthesizedExpressionOrRecordLiteral(()
parseExpression(()
parsePrecedenceExpression((, 1, true)
parseUnaryExpression((, true)
parsePrimary((, expression)
parseLiteralInt(()
listener: handleLiteralInt(42)
parseExpression(,)
parsePrecedenceExpression(,, 1, true)
parseUnaryExpression(,, true)
parsePrimary(,, expression)
parseLiteralInt(,)
listener: handleLiteralInt(42)
ensureCloseParen(42, ()
listener: endRecordLiteral((, 2)
listener: endFieldInitializer(=, ;)
listener: endClassFields(null, null, null, static, null, null, null, 1, static, ;)
listener: endMember()
notEofOrValue(}, static)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
parseMetadataStar(;)
listener: beginMetadataStar(static)
listener: endMetadataStar(0)
listener: beginMember()
parseFields(;, null, null, null, static, null, null, final, final, Instance of 'ComplexTypeInfo', z, DeclarationKind.Class, Foo, false)
listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, final, ;)
parseRecordType((, final)
listener: beginRecordType(()
parseRecordTypeField((, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(a)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(a, recordFieldDeclaration)
listener: endRecordTypeEntry()
parseRecordTypeField(,, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(b)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(b, recordFieldDeclaration)
listener: endRecordTypeEntry()
listener: endRecordType((, null, 2, false)
ensureIdentifierPotentiallyRecovered(), fieldDeclaration, false)
listener: handleIdentifier(z, fieldDeclaration)
parseFieldInitializerOpt(z, z, null, null, null, null, final, DeclarationKind.Class, Foo)
listener: beginFieldInitializer(=)
parseExpression(=)
parsePrecedenceExpression(=, 1, true)
parseUnaryExpression(=, true)
parsePrimary(=, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(=)
parseParenthesizedExpressionOrRecordLiteral(=)
listener: beginParenthesizedExpressionOrRecordLiteral(()
parseExpression(()
parsePrecedenceExpression((, 1, true)
parseUnaryExpression((, true)
parsePrimary((, expression)
parseLiteralInt(()
listener: handleLiteralInt(42)
parseExpression(,)
parsePrecedenceExpression(,, 1, true)
parseUnaryExpression(,, true)
parsePrimary(,, expression)
parseLiteralInt(,)
listener: handleLiteralInt(42)
ensureCloseParen(42, ()
listener: endRecordLiteral((, 2)
listener: endFieldInitializer(=, ;)
listener: endClassFields(null, null, null, static, null, null, final, 1, static, ;)
listener: endMember()
notEofOrValue(}, static)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
parseMetadataStar(;)
listener: beginMetadataStar(static)
listener: endMetadataStar(0)
listener: beginMember()
parseFields(;, null, null, null, static, null, null, const, const, Instance of 'ComplexTypeInfo', b, DeclarationKind.Class, Foo, false)
listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, const, ;)
parseRecordType((, const)
listener: beginRecordType(()
parseRecordTypeField((, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(a)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(a, recordFieldDeclaration)
listener: endRecordTypeEntry()
parseRecordTypeField(,, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(b)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(b, recordFieldDeclaration)
listener: endRecordTypeEntry()
listener: endRecordType((, null, 2, false)
ensureIdentifierPotentiallyRecovered(), fieldDeclaration, false)
listener: handleIdentifier(b, fieldDeclaration)
parseFieldInitializerOpt(b, b, null, null, null, null, const, DeclarationKind.Class, Foo)
listener: beginFieldInitializer(=)
parseExpression(=)
parsePrecedenceExpression(=, 1, true)
parseUnaryExpression(=, true)
parsePrimary(=, expression)
parseParenthesizedExpressionFunctionLiteralOrRecordLiteral(=)
parseParenthesizedExpressionOrRecordLiteral(=)
listener: beginParenthesizedExpressionOrRecordLiteral(()
parseExpression(()
parsePrecedenceExpression((, 1, true)
parseUnaryExpression((, true)
parsePrimary((, expression)
parseLiteralInt(()
listener: handleLiteralInt(42)
parseExpression(,)
parsePrecedenceExpression(,, 1, true)
parseUnaryExpression(,, true)
parsePrimary(,, expression)
parseLiteralInt(,)
listener: handleLiteralInt(42)
ensureCloseParen(42, ()
listener: endRecordLiteral((, 2)
listener: endFieldInitializer(=, ;)
listener: endClassFields(null, null, null, static, null, null, const, 1, static, ;)
listener: endMember()
notEofOrValue(}, late)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
parseMetadataStar(;)
listener: beginMetadataStar(late)
listener: endMetadataStar(0)
listener: beginMember()
parseFields(;, null, null, null, null, null, late, null, late, Instance of 'ComplexTypeInfo', c, DeclarationKind.Class, Foo, false)
listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, ;)
parseRecordType((, late)
listener: beginRecordType(()
parseRecordTypeField((, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(a)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(a, recordFieldDeclaration)
listener: endRecordTypeEntry()
parseRecordTypeField(,, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(b)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(b, recordFieldDeclaration)
listener: endRecordTypeEntry()
listener: endRecordType((, null, 2, false)
ensureIdentifierPotentiallyRecovered(), fieldDeclaration, false)
listener: handleIdentifier(c, fieldDeclaration)
parseFieldInitializerOpt(c, c, late, null, null, null, null, DeclarationKind.Class, Foo)
listener: handleNoFieldInitializer(;)
listener: endClassFields(null, null, null, null, null, late, null, 1, late, ;)
listener: endMember()
notEofOrValue(}, late)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
parseMetadataStar(;)
listener: beginMetadataStar(late)
listener: endMetadataStar(0)
listener: beginMember()
parseFields(;, null, null, null, null, null, late, final, final, Instance of 'ComplexTypeInfo', d, DeclarationKind.Class, Foo, false)
listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, final, ;)
parseRecordType((, final)
listener: beginRecordType(()
parseRecordTypeField((, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(()
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(a)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(a, recordFieldDeclaration)
listener: endRecordTypeEntry()
parseRecordTypeField(,, identifierIsOptional: true)
listener: beginRecordTypeEntry()
parseMetadataStar(,)
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(b)
listener: handleType(int, null)
ensureIdentifier(int, recordFieldDeclaration)
listener: handleIdentifier(b, recordFieldDeclaration)
listener: endRecordTypeEntry()
listener: endRecordType((, null, 2, false)
ensureIdentifierPotentiallyRecovered(), fieldDeclaration, false)
listener: handleIdentifier(d, fieldDeclaration)
parseFieldInitializerOpt(d, d, late, null, null, null, final, DeclarationKind.Class, Foo)
listener: handleNoFieldInitializer(;)
listener: endClassFields(null, null, null, null, null, late, final, 1, late, ;)
listener: endMember()
notEofOrValue(}, })
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
listener: endClassDeclaration(class, })
listener: endTopLevelDeclaration()
reportAllErrorTokens(class)
listener: endCompilationUnit(1, )

View file

@ -0,0 +1,19 @@
class Foo {
final (int a, int b) x = (42, 42);
static (int a, int b) y = (42, 42);
static final (int a, int b) z = (42, 42);
static const (int a, int b) b = (42, 42);
late (int a, int b) c;
late final (int a, int b) d;
}
class[KeywordToken] Foo[StringToken] {[BeginToken]
final[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] x[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] y[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] final[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] z[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] const[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] b[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
late[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] c[StringToken];[SimpleToken]
late[KeywordToken] final[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] d[StringToken];[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -0,0 +1,19 @@
class Foo {
final (int a, int b) x = (42, 42);
static (int a, int b) y = (42, 42);
static final (int a, int b) z = (42, 42);
static const (int a, int b) b = (42, 42);
late (int a, int b) c;
late final (int a, int b) d;
}
class[KeywordToken] Foo[StringToken] {[BeginToken]
final[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] x[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] y[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] final[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] z[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
static[KeywordToken] const[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] b[StringToken] =[SimpleToken] ([BeginToken]42[StringToken],[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
late[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] c[StringToken];[SimpleToken]
late[KeywordToken] final[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] d[StringToken];[SimpleToken]
}[SimpleToken]
[SimpleToken]

View file

@ -285,6 +285,7 @@ forces
foreground
forrest
forty
fortytwo
foundation
fox
frequency

View file

@ -5,7 +5,6 @@
main() {
(int, int) record1 = (1, 2);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -14,7 +13,6 @@ main() {
print(record1);
(int x, int y) record1Named = (1, 2);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -24,7 +22,6 @@ main() {
(int, int, ) record2 = (1, 2);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -34,7 +31,6 @@ main() {
(int x, int y, ) record2Named = (1, 2);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -44,7 +40,6 @@ main() {
(int, int, {int a, int b}) record3 = (1, 2, a: 3, b: 4);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -54,7 +49,6 @@ main() {
(int x, int y, {int a, int b}) record3Named = (1, 2, a: 3, b: 4);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -64,7 +58,6 @@ main() {
(int, int, {int a, int b, }) record4 = (1, 2, a: 3, b: 4);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -74,7 +67,6 @@ main() {
(int x, int y, {int a, int b, }) record4Named = (1, 2, a: 3, b: 4);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
@ -91,29 +83,37 @@ main() {
print(b.foo(42));
(int, int) Function ((int, int) a) z1 = ((int, int) a) { return (42, 42); };
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
final (int x, int y) finalRecordType = (42, 42);
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
}
(int a, String b) get topLevelGetterType => throw '';
// [error column 1, length 1]
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
(int, int) foo((int, {bool b}) inputRecord, int x) {
// [error column 1, length 1]
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
if (inputRecord.b) return (42, 42);
@ -129,11 +129,28 @@ main() {
class Bar {
(int, int) foo(int x) => (42, 42);
//^
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_CLASS
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
static (int x, int y) staticRecordType = (42, 42);
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
(int a, String b) get instanceGetterType => throw '';
//^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
static (int a, String b) get staticGetterType => throw '';
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
}

View file

@ -96,8 +96,21 @@ main() {
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
final (int x, int y) finalRecordType = (42, 42);
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
}
(int a, String b) get topLevelGetterType => throw '';
// [error column 1, length 1]
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
(int, int) foo((int, {bool b}) inputRecord, int x) {
// [error column 1, length 1]
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
@ -122,6 +135,24 @@ class Bar {
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
static (int x, int y) staticRecordType = (42, 42);
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
(int a, String b) get instanceGetterType => throw '';
//^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
static (int a, String b) get staticGetterType => throw '';
// ^
// [analyzer] SYNTACTIC_ERROR.EXPERIMENT_NOT_ENABLED
// [cfe] This requires the experimental 'records' language feature to be enabled.
}