mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 23:59:47 +00:00
[parser] More corner cases for record types
* required is a modifier when followed by [record type] `?`. * Parse record type as record type if followed by `super` or `?` `super` or `?` `this`. * Typedef with record type follow by `?`. * Parse record type as record type in get/set with async/sync/sync*. * Parse record type as record type when followed by `>>=` or `>>>=` (for weird formatted use in typedefs). Change-Id: I19e208497e28780fb1505139c488e943751cce25 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/263123 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Jens Johansen <jensj@google.com>
This commit is contained in:
parent
5501c7f978
commit
b3dbaadc83
|
@ -29,11 +29,19 @@ bool isModifier(Token token) {
|
|||
// Record type is a possibility.
|
||||
if (optional("(", next)) {
|
||||
Token afterGroup = next.endGroup!.next!;
|
||||
if (afterGroup.isIdentifier) {
|
||||
// We've seen [modifier] [record type] [identifier].
|
||||
if (afterGroup.isIdentifier || _thisOrSuperWithDot(afterGroup)) {
|
||||
// We've seen either
|
||||
// [modifier] [record type] [identifier], or
|
||||
// [modifier] [record type] `this` `.`, or
|
||||
// [modifier] [record type] `super` `.`
|
||||
return true;
|
||||
} else if (optional('?', afterGroup) && afterGroup.next!.isIdentifier) {
|
||||
// We've seen [modifier] [record type]? [identifier].
|
||||
} else if (optional('?', afterGroup) &&
|
||||
(afterGroup.next!.isIdentifier ||
|
||||
_thisOrSuperWithDot(afterGroup.next!))) {
|
||||
// We've seen either
|
||||
// [modifier] [record type] `?` [identifier], or
|
||||
// [modifier] [record type] `?` `this` `.`, or
|
||||
// [modifier] [record type] `?` `super` `.`
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +51,13 @@ bool isModifier(Token token) {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool _thisOrSuperWithDot(Token token) {
|
||||
if (optional("this", token) || optional("super", token)) {
|
||||
return optional(".", token.next!);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// This class is used to parse modifiers in most locations where modifiers
|
||||
/// can occur, but does not call handleModifier or handleModifiers.
|
||||
class ModifierContext {
|
||||
|
|
|
@ -596,7 +596,8 @@ class Parser {
|
|||
bool typedefWithRecord = false;
|
||||
if (identical(value, 'typedef') && identical(nextValue, '(')) {
|
||||
Token? endParen = keyword.next!.endGroup;
|
||||
if (endParen != null && endParen.next!.isIdentifier) {
|
||||
if (endParen != null &&
|
||||
_isIdentifierOrQuestionIdentifier(endParen.next!)) {
|
||||
// Looks like a typedef with a record.
|
||||
TypeInfo typeInfo = computeType(keyword, /* required = */ false);
|
||||
if (typeInfo is ComplexTypeInfo && typeInfo.recordType) {
|
||||
|
@ -663,6 +664,14 @@ class Parser {
|
|||
throw "Internal error: Unhandled top level keyword '$value'.";
|
||||
}
|
||||
|
||||
bool _isIdentifierOrQuestionIdentifier(Token token) {
|
||||
if (token.isIdentifier) return true;
|
||||
if (optional("?", token)) {
|
||||
return token.next!.isIdentifier;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// ```
|
||||
/// libraryAugmentationDirective:
|
||||
/// 'library' 'augment' uri ';'
|
||||
|
|
|
@ -739,14 +739,20 @@ class ComplexTypeInfo implements TypeInfo {
|
|||
// * `]` e.g. `x([(int, int) x = (42, 42)]) {}`.
|
||||
if (!isOneOfOrEof(afterIdentifier,
|
||||
const [";", "=", "<", "(", ",", ")", "in", "}", ":", "]"])) {
|
||||
if (getOrSet && isOneOfOrEof(afterIdentifier, const ["=>", "{"])) {
|
||||
if (getOrSet &&
|
||||
isOneOfOrEof(
|
||||
afterIdentifier, const ["=>", "{", "async", "sync"])) {
|
||||
// With a getter/setter in the mix we can accept more stuff, e.g.
|
||||
// these would be fine:
|
||||
// these would be "fine":
|
||||
// * `=>`: e.g. `(int, int) get x => (42, 42);`.
|
||||
// * `{`: e.g. `(int, int) get x { }`.
|
||||
// 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?
|
||||
// * `async`: e.g. `(int, int) get x async {}`.
|
||||
// * `sync`: e.g. `(int, int) get x sync* {}`.
|
||||
// Not all of this is valid (e.g. a setter can't be async, sync has
|
||||
// to be followed by *, return type of async has to be Future etc),
|
||||
// but for disambiguation we'll assume it's enough, and we'd rather
|
||||
// have an error saying "return time has to be Future" than "I don't
|
||||
// know what these parenthesis mean".
|
||||
} else if (optional("operator", next) &&
|
||||
afterIdentifier.isUserDefinableOperator) {
|
||||
// E.g.
|
||||
|
@ -756,12 +762,20 @@ class ComplexTypeInfo implements TypeInfo {
|
|||
return noType;
|
||||
}
|
||||
}
|
||||
} else if (optional("this", next) && optional(".", next.next!)) {
|
||||
// E.g. C(({int n, String s}) this.x);
|
||||
} else if ((optional("this", next) || optional("super", next)) &&
|
||||
optional(".", next.next!)) {
|
||||
// E.g.
|
||||
// * C(({int n, String s}) this.x);
|
||||
// * C((int, int) super.x);
|
||||
} else {
|
||||
// Is it e.g. List<(int, int)> or Map<(int, int), (String, String)>?
|
||||
// or List<List<(int, int)>> or List<List<List<(int, int)>>>.
|
||||
if (!isOneOfOrEof(next, const [",", ">", ">>", ">>>"])) {
|
||||
// Is it e.g.
|
||||
// * List<(int, int)>
|
||||
// * Map<(int, int), (String, String)>?
|
||||
// * List<List<(int, int)>>
|
||||
// * List<List<List<(int, int)>>>
|
||||
// * typedef F2<T extends List<(int, int)>>= T Function();
|
||||
// * typedef F3<T extends List<List<(int, int)>>>= T Function();
|
||||
if (!isOneOfOrEof(next, const [",", ">", ">>", ">>=", ">>>", ">>>="])) {
|
||||
return noType;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
// https://github.com/dart-lang/sdk/issues/50007
|
||||
|
||||
class C {
|
||||
({num n, String s}) x;
|
||||
|
||||
C(({int n, String s}) this.x);
|
||||
C({({int n, String s}) this.x});
|
||||
C({required ({int n, String s}) this.x});
|
||||
C(({int n, String s})? this.x);
|
||||
C({({int n, String s})? this.x});
|
||||
C({required ({int n, String s})? this.x});
|
||||
}
|
||||
|
|
|
@ -11,39 +11,11 @@ beginCompilationUnit(class)
|
|||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
beginMetadataStar(()
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
|
||||
beginRecordType(()
|
||||
beginRecordTypeNamedFields({)
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(num)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(num, typeReference)
|
||||
handleNoTypeArguments(n)
|
||||
handleType(num, null)
|
||||
handleIdentifier(n, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(String)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(String, typeReference)
|
||||
handleNoTypeArguments(s)
|
||||
handleType(String, null)
|
||||
handleIdentifier(s, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(2, {)
|
||||
endRecordType((, null, 1, true)
|
||||
handleIdentifier(x, fieldDeclaration)
|
||||
handleNoFieldInitializer(;)
|
||||
endClassFields(null, null, null, null, null, null, null, 1, (, ;)
|
||||
endMember()
|
||||
beginMetadataStar(C)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
handleNoType(;)
|
||||
handleNoType({)
|
||||
handleIdentifier(C, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
|
@ -79,7 +51,215 @@ beginCompilationUnit(class)
|
|||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, C, (, null, ;)
|
||||
endMember()
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
|
||||
beginMetadataStar(C)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
handleNoType(;)
|
||||
handleIdentifier(C, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginOptionalFormalParameters({)
|
||||
beginMetadataStar(()
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeNamedFields({)
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(n)
|
||||
handleType(int, null)
|
||||
handleIdentifier(n, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(String)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(String, typeReference)
|
||||
handleNoTypeArguments(s)
|
||||
handleType(String, null)
|
||||
handleIdentifier(s, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(2, {)
|
||||
endRecordType((, null, 1, true)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue(})
|
||||
endFormalParameter(this, null, ., x, null, null, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
endOptionalFormalParameters(1, {, })
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, C, (, null, ;)
|
||||
endMember()
|
||||
beginMetadataStar(C)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
handleNoType(;)
|
||||
handleIdentifier(C, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginOptionalFormalParameters({)
|
||||
beginMetadataStar(required)
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter(required, MemberKind.NonStaticMethod, required, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeNamedFields({)
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(n)
|
||||
handleType(int, null)
|
||||
handleIdentifier(n, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(String)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(String, typeReference)
|
||||
handleNoTypeArguments(s)
|
||||
handleType(String, null)
|
||||
handleIdentifier(s, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(2, {)
|
||||
endRecordType((, null, 1, true)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue(})
|
||||
endFormalParameter(this, null, ., x, null, null, FormalParameterKind.requiredNamed, MemberKind.NonStaticMethod)
|
||||
endOptionalFormalParameters(1, {, })
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, C, (, null, ;)
|
||||
endMember()
|
||||
beginMetadataStar(C)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
handleNoType(;)
|
||||
handleIdentifier(C, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginMetadataStar(()
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeNamedFields({)
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(n)
|
||||
handleType(int, null)
|
||||
handleIdentifier(n, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(String)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(String, typeReference)
|
||||
handleNoTypeArguments(s)
|
||||
handleType(String, null)
|
||||
handleIdentifier(s, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(2, {)
|
||||
endRecordType((, ?, 1, true)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue())
|
||||
endFormalParameter(this, null, ., x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, C, (, null, ;)
|
||||
endMember()
|
||||
beginMetadataStar(C)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
handleNoType(;)
|
||||
handleIdentifier(C, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginOptionalFormalParameters({)
|
||||
beginMetadataStar(()
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeNamedFields({)
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(n)
|
||||
handleType(int, null)
|
||||
handleIdentifier(n, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(String)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(String, typeReference)
|
||||
handleNoTypeArguments(s)
|
||||
handleType(String, null)
|
||||
handleIdentifier(s, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(2, {)
|
||||
endRecordType((, ?, 1, true)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue(})
|
||||
endFormalParameter(this, null, ., x, null, null, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
endOptionalFormalParameters(1, {, })
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, C, (, null, ;)
|
||||
endMember()
|
||||
beginMetadataStar(C)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
handleNoType(;)
|
||||
handleIdentifier(C, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginOptionalFormalParameters({)
|
||||
beginMetadataStar(required)
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter(required, MemberKind.NonStaticMethod, required, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeNamedFields({)
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(n)
|
||||
handleType(int, null)
|
||||
handleIdentifier(n, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(String)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(String, typeReference)
|
||||
handleNoTypeArguments(s)
|
||||
handleType(String, null)
|
||||
handleIdentifier(s, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(2, {)
|
||||
endRecordType((, ?, 1, true)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue(})
|
||||
endFormalParameter(this, null, ., x, null, null, FormalParameterKind.requiredNamed, MemberKind.NonStaticMethod)
|
||||
endOptionalFormalParameters(1, {, })
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, C, (, null, ;)
|
||||
endMember()
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
|
||||
endClassDeclaration(class, })
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(1, )
|
||||
|
|
|
@ -25,60 +25,17 @@ parseUnit(class)
|
|||
listener: handleClassHeader(class, class, null)
|
||||
parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, ()
|
||||
notEofOrValue(}, C)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, C)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(()
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', x, DeclarationKind.Class, C, false)
|
||||
listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
|
||||
parseRecordType((, {, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeNamedFields(()
|
||||
listener: beginRecordTypeNamedFields({)
|
||||
parseRecordTypeField({, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(num)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(num, typeReference)
|
||||
listener: handleNoTypeArguments(n)
|
||||
listener: handleType(num, null)
|
||||
ensureIdentifier(num, recordFieldDeclaration)
|
||||
listener: handleIdentifier(n, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(String)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(String, typeReference)
|
||||
listener: handleNoTypeArguments(s)
|
||||
listener: handleType(String, null)
|
||||
ensureIdentifier(String, recordFieldDeclaration)
|
||||
listener: handleIdentifier(s, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordTypeNamedFields(2, {)
|
||||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, null, 1, true)
|
||||
ensureIdentifierPotentiallyRecovered(), fieldDeclaration, false)
|
||||
listener: handleIdentifier(x, fieldDeclaration)
|
||||
parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.Class, C)
|
||||
listener: handleNoFieldInitializer(;)
|
||||
listener: endClassFields(null, null, null, null, null, null, null, 1, (, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, C)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(C)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
|
||||
parseMethod({, null, null, null, null, null, null, null, {, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleNoType({)
|
||||
ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
|
||||
listener: handleIdentifier(C, methodDeclaration)
|
||||
parseQualifiedRestOpt(C, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(C)
|
||||
|
@ -136,8 +93,364 @@ parseUnit(class)
|
|||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, C, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, C)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(C)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(C, methodDeclaration)
|
||||
parseQualifiedRestOpt(C, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(C)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(C, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseOptionalNamedParameters((, MemberKind.NonStaticMethod)
|
||||
listener: beginOptionalFormalParameters({)
|
||||
parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(()
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
parseRecordType((, {, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeNamedFields(()
|
||||
listener: beginRecordTypeNamedFields({)
|
||||
parseRecordTypeField({, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(n)
|
||||
listener: handleType(int, null)
|
||||
ensureIdentifier(int, recordFieldDeclaration)
|
||||
listener: handleIdentifier(n, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(String)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(String, typeReference)
|
||||
listener: handleNoTypeArguments(s)
|
||||
listener: handleType(String, null)
|
||||
ensureIdentifier(String, recordFieldDeclaration)
|
||||
listener: handleIdentifier(s, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordTypeNamedFields(2, {)
|
||||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, null, 1, true)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue(})
|
||||
listener: endFormalParameter(this, null, ., x, null, null, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
listener: endOptionalFormalParameters(1, {, })
|
||||
ensureCloseParen(}, ()
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, C, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, C)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(C)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(C, methodDeclaration)
|
||||
parseQualifiedRestOpt(C, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(C)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(C, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseOptionalNamedParameters((, MemberKind.NonStaticMethod)
|
||||
listener: beginOptionalFormalParameters({)
|
||||
parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(required)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter(required, MemberKind.NonStaticMethod, required, null, null)
|
||||
parseRecordType((, required, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeNamedFields(()
|
||||
listener: beginRecordTypeNamedFields({)
|
||||
parseRecordTypeField({, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(n)
|
||||
listener: handleType(int, null)
|
||||
ensureIdentifier(int, recordFieldDeclaration)
|
||||
listener: handleIdentifier(n, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(String)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(String, typeReference)
|
||||
listener: handleNoTypeArguments(s)
|
||||
listener: handleType(String, null)
|
||||
ensureIdentifier(String, recordFieldDeclaration)
|
||||
listener: handleIdentifier(s, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordTypeNamedFields(2, {)
|
||||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, null, 1, true)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue(})
|
||||
listener: endFormalParameter(this, null, ., x, null, null, FormalParameterKind.requiredNamed, MemberKind.NonStaticMethod)
|
||||
listener: endOptionalFormalParameters(1, {, })
|
||||
ensureCloseParen(}, ()
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, C, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, C)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(C)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(C, methodDeclaration)
|
||||
parseQualifiedRestOpt(C, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(C)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(C, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(()
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
parseRecordType((, (, true)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeNamedFields(()
|
||||
listener: beginRecordTypeNamedFields({)
|
||||
parseRecordTypeField({, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(n)
|
||||
listener: handleType(int, null)
|
||||
ensureIdentifier(int, recordFieldDeclaration)
|
||||
listener: handleIdentifier(n, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(String)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(String, typeReference)
|
||||
listener: handleNoTypeArguments(s)
|
||||
listener: handleType(String, null)
|
||||
ensureIdentifier(String, recordFieldDeclaration)
|
||||
listener: handleIdentifier(s, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordTypeNamedFields(2, {)
|
||||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, ?, 1, true)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue())
|
||||
listener: endFormalParameter(this, null, ., x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, C, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, C)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(C)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(C, methodDeclaration)
|
||||
parseQualifiedRestOpt(C, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(C)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(C, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseOptionalNamedParameters((, MemberKind.NonStaticMethod)
|
||||
listener: beginOptionalFormalParameters({)
|
||||
parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(()
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
parseRecordType((, {, true)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeNamedFields(()
|
||||
listener: beginRecordTypeNamedFields({)
|
||||
parseRecordTypeField({, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(n)
|
||||
listener: handleType(int, null)
|
||||
ensureIdentifier(int, recordFieldDeclaration)
|
||||
listener: handleIdentifier(n, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(String)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(String, typeReference)
|
||||
listener: handleNoTypeArguments(s)
|
||||
listener: handleType(String, null)
|
||||
ensureIdentifier(String, recordFieldDeclaration)
|
||||
listener: handleIdentifier(s, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordTypeNamedFields(2, {)
|
||||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, ?, 1, true)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue(})
|
||||
listener: endFormalParameter(this, null, ., x, null, null, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
listener: endOptionalFormalParameters(1, {, })
|
||||
ensureCloseParen(}, ()
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, C, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, C)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(C)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, C)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(C, methodDeclaration)
|
||||
parseQualifiedRestOpt(C, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(C)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(C, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseOptionalNamedParameters((, MemberKind.NonStaticMethod)
|
||||
listener: beginOptionalFormalParameters({)
|
||||
parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(required)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter(required, MemberKind.NonStaticMethod, required, null, null)
|
||||
parseRecordType((, required, true)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeNamedFields(()
|
||||
listener: beginRecordTypeNamedFields({)
|
||||
parseRecordTypeField({, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(n)
|
||||
listener: handleType(int, null)
|
||||
ensureIdentifier(int, recordFieldDeclaration)
|
||||
listener: handleIdentifier(n, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(String)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(String, typeReference)
|
||||
listener: handleNoTypeArguments(s)
|
||||
listener: handleType(String, null)
|
||||
ensureIdentifier(String, recordFieldDeclaration)
|
||||
listener: handleIdentifier(s, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordTypeNamedFields(2, {)
|
||||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, ?, 1, true)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue(})
|
||||
listener: endFormalParameter(this, null, ., x, null, null, FormalParameterKind.requiredNamed, MemberKind.NonStaticMethod)
|
||||
listener: endOptionalFormalParameters(1, {, })
|
||||
ensureCloseParen(}, ()
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, C, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(class)
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
class C {
|
||||
({num n, String s}) x;
|
||||
|
||||
C(({int n, String s}) this.x);
|
||||
C({({int n, String s}) this.x});
|
||||
C({required ({int n, String s}) this.x});
|
||||
C(({int n, String s})? this.x);
|
||||
C({({int n, String s})? this.x});
|
||||
C({required ({int n, String s})? this.x});
|
||||
}
|
||||
|
||||
|
||||
class[KeywordToken] C[StringToken] {[BeginToken]
|
||||
([BeginToken]{[BeginToken]num[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] x[StringToken];[SimpleToken]
|
||||
|
||||
C[StringToken]([BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]required[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]required[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
}[SimpleToken]
|
||||
[SimpleToken]
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
class C {
|
||||
({num n, String s}) x;
|
||||
|
||||
C(({int n, String s}) this.x);
|
||||
C({({int n, String s}) this.x});
|
||||
C({required ({int n, String s}) this.x});
|
||||
C(({int n, String s})? this.x);
|
||||
C({({int n, String s})? this.x});
|
||||
C({required ({int n, String s})? this.x});
|
||||
}
|
||||
|
||||
|
||||
class[KeywordToken] C[StringToken] {[BeginToken]
|
||||
([BeginToken]{[BeginToken]num[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] x[StringToken];[SimpleToken]
|
||||
|
||||
C[StringToken]([BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]required[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
C[StringToken]([BeginToken]{[BeginToken]required[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] n[StringToken],[SimpleToken] String[StringToken] s[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] this[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
}[SimpleToken]
|
||||
[SimpleToken]
|
||||
|
|
|
@ -1,39 +1,95 @@
|
|||
// 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"); }
|
||||
(int a, String b) get(int x) async => throw "hello";
|
||||
(int a, String b) get(int x) async { throw "hello"; }
|
||||
(int a, String b) get(int x) async* => throw "hello";
|
||||
(int a, String b) get(int x) async* { throw "hello"; }
|
||||
(int a, String b) get(int x) sync* => throw "hello";
|
||||
(int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
// Getter called get.
|
||||
(int a, String b) get get => (42, "fortytwo");
|
||||
(int a, String b) get get { return (42, "fortytwo"); }
|
||||
// The below is commented out for now --- probably that's a general
|
||||
// parser bug that should be fixed.
|
||||
// (int a, String b) get get async => throw "hello";
|
||||
// (int a, String b) get get async { throw "hello"; }
|
||||
// (int a, String b) get get async* => throw "hello";
|
||||
// (int a, String b) get get async* { throw "hello"; }
|
||||
// (int a, String b) get get sync* => throw "hello";
|
||||
// (int a, String b) get get sync* { throw "hello"; }
|
||||
|
||||
// Getter called something else.
|
||||
(int a, String b) get topLevelGetter => (42, "fortytwo");
|
||||
(int a, String b) get topLevelGetter { return (42, "fortytwo"); }
|
||||
(int a, String b) get topLevelGetter async => throw "hello";
|
||||
(int a, String b) get topLevelGetter async { throw "hello"; }
|
||||
(int a, String b) get topLevelGetter async* => throw "hello";
|
||||
(int a, String b) get topLevelGetter async* { throw "hello"; }
|
||||
(int a, String b) get topLevelGetter sync* => throw "hello";
|
||||
(int a, String b) get topLevelGetter sync* { throw "hello"; }
|
||||
|
||||
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"); }
|
||||
(int a, String b) get(int x) async => throw "hello";
|
||||
(int a, String b) get(int x) async { throw "hello"; }
|
||||
(int a, String b) get(int x) async* => throw "hello";
|
||||
(int a, String b) get(int x) async* { throw "hello"; }
|
||||
(int a, String b) get(int x) sync* => throw "hello";
|
||||
(int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
// Getter called get.
|
||||
(int a, String b) get get => (42, "fortytwo");
|
||||
(int a, String b) get get { return (42, "fortytwo"); }
|
||||
(int a, String b) get get async => throw "hello";
|
||||
(int a, String b) get get async { throw "hello"; }
|
||||
(int a, String b) get get async* => throw "hello";
|
||||
(int a, String b) get get async* { throw "hello"; }
|
||||
(int a, String b) get get sync* => throw "hello";
|
||||
(int a, String b) get get sync* { throw "hello"; }
|
||||
|
||||
// Getter called something else.
|
||||
(int a, String b) get instanceGetter => (42, "fortytwo");
|
||||
(int a, String b) get instanceGetter { return (42, "fortytwo"); }
|
||||
(int a, String b) get instanceGetter async => throw "hello";
|
||||
(int a, String b) get instanceGetter async { return throw "hello"; }
|
||||
(int a, String b) get instanceGetter async* => throw "hello";
|
||||
(int a, String b) get instanceGetter async* { return throw "hello"; }
|
||||
(int a, String b) get instanceGetter sync* => throw "hello";
|
||||
(int a, String b) get instanceGetter sync* { return throw "hello"; }
|
||||
}
|
||||
|
||||
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"); }
|
||||
static (int a, String b) get(int x) async => throw "hello";
|
||||
static (int a, String b) get(int x) async { throw "hello"; }
|
||||
static (int a, String b) get(int x) async* => throw "hello";
|
||||
static (int a, String b) get(int x) async* { throw "hello"; }
|
||||
static (int a, String b) get(int x) sync* => throw "hello";
|
||||
static (int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
// Getter called get.
|
||||
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 get async => throw "hello";
|
||||
static (int a, String b) get get async { throw "hello"; }
|
||||
static (int a, String b) get get async* => throw "hello";
|
||||
static (int a, String b) get get async* { throw "hello"; }
|
||||
static (int a, String b) get get sync* => throw "hello";
|
||||
static (int a, String b) get get sync* { throw "hello"; }
|
||||
|
||||
// Getter called something else.
|
||||
static (int a, String b) get staticGetter => (42, "fortytwo");
|
||||
static (int a, String b) get staticGetter { return (42, "fortytwo"); }
|
||||
static (int a, String b) get staticGetter async => throw "hello";
|
||||
static (int a, String b) get staticGetter async { throw "hello"; }
|
||||
static (int a, String b) get staticGetter async* => throw "hello";
|
||||
static (int a, String b) get staticGetter async* { throw "hello"; }
|
||||
static (int a, String b) get staticGetter sync* => throw "hello";
|
||||
static (int a, String b) get staticGetter sync* { throw "hello"; }
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,79 +1,191 @@
|
|||
(int a, String b) get(int x) => (42, "fortytwo");
|
||||
(int a, String b) get(int x) { return (42, "fortytwo"); }
|
||||
(int a, String b) get(int x) async => throw "hello";
|
||||
(int a, String b) get(int x) async { throw "hello"; }
|
||||
(int a, String b) get(int x) async* => throw "hello";
|
||||
(int a, String b) get(int x) async* { throw "hello"; }
|
||||
(int a, String b) get(int x) sync* => throw "hello";
|
||||
(int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
|
||||
(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"); }
|
||||
(int a, String b) get topLevelGetter async => throw "hello";
|
||||
(int a, String b) get topLevelGetter async { throw "hello"; }
|
||||
(int a, String b) get topLevelGetter async* => throw "hello";
|
||||
(int a, String b) get topLevelGetter async* { throw "hello"; }
|
||||
(int a, String b) get topLevelGetter sync* => throw "hello";
|
||||
(int a, String b) get topLevelGetter sync* { throw "hello"; }
|
||||
|
||||
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(int x) async => throw "hello";
|
||||
(int a, String b) get(int x) async { throw "hello"; }
|
||||
(int a, String b) get(int x) async* => throw "hello";
|
||||
(int a, String b) get(int x) async* { throw "hello"; }
|
||||
(int a, String b) get(int x) sync* => throw "hello";
|
||||
(int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
|
||||
(int a, String b) get get => (42, "fortytwo");
|
||||
(int a, String b) get get { return (42, "fortytwo"); }
|
||||
(int a, String b) get get async => throw "hello";
|
||||
(int a, String b) get get async { throw "hello"; }
|
||||
(int a, String b) get get async* => throw "hello";
|
||||
(int a, String b) get get async* { throw "hello"; }
|
||||
(int a, String b) get get sync* => throw "hello";
|
||||
(int a, String b) get get sync* { throw "hello"; }
|
||||
|
||||
|
||||
(int a, String b) get instanceGetter => (42, "fortytwo");
|
||||
(int a, String b) get instanceGetter { return (42, "fortytwo"); }
|
||||
(int a, String b) get instanceGetter async => throw "hello";
|
||||
(int a, String b) get instanceGetter async { return throw "hello"; }
|
||||
(int a, String b) get instanceGetter async* => throw "hello";
|
||||
(int a, String b) get instanceGetter async* { return throw "hello"; }
|
||||
(int a, String b) get instanceGetter sync* => throw "hello";
|
||||
(int a, String b) get instanceGetter sync* { return throw "hello"; }
|
||||
}
|
||||
|
||||
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(int x) async => throw "hello";
|
||||
static (int a, String b) get(int x) async { throw "hello"; }
|
||||
static (int a, String b) get(int x) async* => throw "hello";
|
||||
static (int a, String b) get(int x) async* { throw "hello"; }
|
||||
static (int a, String b) get(int x) sync* => throw "hello";
|
||||
static (int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
|
||||
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 get async => throw "hello";
|
||||
static (int a, String b) get get async { throw "hello"; }
|
||||
static (int a, String b) get get async* => throw "hello";
|
||||
static (int a, String b) get get async* { throw "hello"; }
|
||||
static (int a, String b) get get sync* => throw "hello";
|
||||
static (int a, String b) get get sync* { throw "hello"; }
|
||||
|
||||
|
||||
static (int a, String b) get staticGetter => (42, "fortytwo");
|
||||
static (int a, String b) get staticGetter { return (42, "fortytwo"); }
|
||||
static (int a, String b) get staticGetter async => throw "hello";
|
||||
static (int a, String b) get staticGetter async { throw "hello"; }
|
||||
static (int a, String b) get staticGetter async* => throw "hello";
|
||||
static (int a, String b) get staticGetter async* { throw "hello"; }
|
||||
static (int a, String b) get staticGetter sync* => throw "hello";
|
||||
static (int a, String b) get staticGetter sync* { throw "hello"; }
|
||||
}
|
||||
|
||||
|
||||
([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]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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] get[KeywordToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken] {[BeginToken] return[KeywordToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken]*[SimpleToken] {[BeginToken] return[KeywordToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] return[KeywordToken] throw[KeywordToken] "hello"[StringToken];[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]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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] get[KeywordToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
}[SimpleToken]
|
||||
[SimpleToken]
|
||||
|
|
|
@ -1,79 +1,191 @@
|
|||
(int a, String b) get(int x) => (42, "fortytwo");
|
||||
(int a, String b) get(int x) { return (42, "fortytwo"); }
|
||||
(int a, String b) get(int x) async => throw "hello";
|
||||
(int a, String b) get(int x) async { throw "hello"; }
|
||||
(int a, String b) get(int x) async* => throw "hello";
|
||||
(int a, String b) get(int x) async* { throw "hello"; }
|
||||
(int a, String b) get(int x) sync* => throw "hello";
|
||||
(int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
|
||||
(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"); }
|
||||
(int a, String b) get topLevelGetter async => throw "hello";
|
||||
(int a, String b) get topLevelGetter async { throw "hello"; }
|
||||
(int a, String b) get topLevelGetter async* => throw "hello";
|
||||
(int a, String b) get topLevelGetter async* { throw "hello"; }
|
||||
(int a, String b) get topLevelGetter sync* => throw "hello";
|
||||
(int a, String b) get topLevelGetter sync* { throw "hello"; }
|
||||
|
||||
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(int x) async => throw "hello";
|
||||
(int a, String b) get(int x) async { throw "hello"; }
|
||||
(int a, String b) get(int x) async* => throw "hello";
|
||||
(int a, String b) get(int x) async* { throw "hello"; }
|
||||
(int a, String b) get(int x) sync* => throw "hello";
|
||||
(int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
|
||||
(int a, String b) get get => (42, "fortytwo");
|
||||
(int a, String b) get get { return (42, "fortytwo"); }
|
||||
(int a, String b) get get async => throw "hello";
|
||||
(int a, String b) get get async { throw "hello"; }
|
||||
(int a, String b) get get async* => throw "hello";
|
||||
(int a, String b) get get async* { throw "hello"; }
|
||||
(int a, String b) get get sync* => throw "hello";
|
||||
(int a, String b) get get sync* { throw "hello"; }
|
||||
|
||||
|
||||
(int a, String b) get instanceGetter => (42, "fortytwo");
|
||||
(int a, String b) get instanceGetter { return (42, "fortytwo"); }
|
||||
(int a, String b) get instanceGetter async => throw "hello";
|
||||
(int a, String b) get instanceGetter async { return throw "hello"; }
|
||||
(int a, String b) get instanceGetter async* => throw "hello";
|
||||
(int a, String b) get instanceGetter async* { return throw "hello"; }
|
||||
(int a, String b) get instanceGetter sync* => throw "hello";
|
||||
(int a, String b) get instanceGetter sync* { return throw "hello"; }
|
||||
}
|
||||
|
||||
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(int x) async => throw "hello";
|
||||
static (int a, String b) get(int x) async { throw "hello"; }
|
||||
static (int a, String b) get(int x) async* => throw "hello";
|
||||
static (int a, String b) get(int x) async* { throw "hello"; }
|
||||
static (int a, String b) get(int x) sync* => throw "hello";
|
||||
static (int a, String b) get(int x) sync* { throw "hello"; }
|
||||
|
||||
|
||||
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 get async => throw "hello";
|
||||
static (int a, String b) get get async { throw "hello"; }
|
||||
static (int a, String b) get get async* => throw "hello";
|
||||
static (int a, String b) get get async* { throw "hello"; }
|
||||
static (int a, String b) get get sync* => throw "hello";
|
||||
static (int a, String b) get get sync* { throw "hello"; }
|
||||
|
||||
|
||||
static (int a, String b) get staticGetter => (42, "fortytwo");
|
||||
static (int a, String b) get staticGetter { return (42, "fortytwo"); }
|
||||
static (int a, String b) get staticGetter async => throw "hello";
|
||||
static (int a, String b) get staticGetter async { throw "hello"; }
|
||||
static (int a, String b) get staticGetter async* => throw "hello";
|
||||
static (int a, String b) get staticGetter async* { throw "hello"; }
|
||||
static (int a, String b) get staticGetter sync* => throw "hello";
|
||||
static (int a, String b) get staticGetter sync* { throw "hello"; }
|
||||
}
|
||||
|
||||
|
||||
([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]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] topLevelGetter[StringToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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] get[KeywordToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken] {[BeginToken] return[KeywordToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] async[KeywordToken]*[SimpleToken] {[BeginToken] return[KeywordToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] instanceGetter[StringToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] return[KeywordToken] throw[KeywordToken] "hello"[StringToken];[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]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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] get[KeywordToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] get[KeywordToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[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]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] async[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] sync[KeywordToken]*[SimpleToken] =>[SimpleToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken]
|
||||
static[KeywordToken] ([BeginToken]int[StringToken] a[StringToken],[SimpleToken] String[StringToken] b[StringToken])[SimpleToken] get[KeywordToken] staticGetter[StringToken] sync[KeywordToken]*[SimpleToken] {[BeginToken] throw[KeywordToken] "hello"[StringToken];[SimpleToken] }[SimpleToken]
|
||||
}[SimpleToken]
|
||||
[SimpleToken]
|
||||
|
|
|
@ -1 +1,13 @@
|
|||
typedef ({int j}) R2();
|
||||
typedef (int, int) T1();
|
||||
typedef ({int j}) T2();
|
||||
typedef (int, int)? T3();
|
||||
typedef ({int j})? T4();
|
||||
|
||||
/// Syntactically tricky coincidences containing >>> and >>>=.
|
||||
/// DO NOT FORMAT THIS FILE. There should not be a space between >>> and =.
|
||||
typedef F1<T extends (int, int)>= T Function();
|
||||
typedef F2<T extends List<(int, int)>>= T Function();
|
||||
typedef F3<T extends List<List<(int, int)>>>= T Function();
|
||||
typedef F4<T extends List<List<List<(int, int)>>>>= T Function();
|
||||
typedef F5<T extends List<List<List<List<(int, int)>>>>>= T Function();
|
||||
typedef F6<T extends List<List<List<List<List<(int, int)>>>>>>= T Function();
|
||||
|
|
|
@ -1,4 +1,32 @@
|
|||
beginCompilationUnit(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
handleIdentifier(T1, typedefDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
endTypedef(typedef, null, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
|
@ -15,10 +43,366 @@ beginCompilationUnit(typedef)
|
|||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(1, {)
|
||||
endRecordType((, null, 1, true)
|
||||
handleIdentifier(R2, typedefDeclaration)
|
||||
handleIdentifier(T2, typedefDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
endTypedef(typedef, null, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, ?, 2, false)
|
||||
handleIdentifier(T3, typedefDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
endTypedef(typedef, null, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
beginRecordType(()
|
||||
beginRecordTypeNamedFields({)
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(j)
|
||||
handleType(int, null)
|
||||
handleIdentifier(j, recordFieldDeclaration)
|
||||
endRecordTypeEntry()
|
||||
endRecordTypeNamedFields(1, {)
|
||||
endRecordType((, ?, 1, true)
|
||||
handleIdentifier(T4, typedefDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
endTypedef(typedef, null, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
handleIdentifier(F1, typedefDeclaration)
|
||||
beginTypeVariables(<)
|
||||
beginMetadataStar(T)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(T, typeVariableDeclaration)
|
||||
beginTypeVariable(T)
|
||||
handleTypeVariablesDefined(), 1)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
endTypeVariable(>=, 0, extends, null)
|
||||
endTypeVariables(<, >)
|
||||
beginFunctionType(T)
|
||||
handleNoTypeVariables(()
|
||||
handleIdentifier(T, typeReference)
|
||||
handleNoTypeArguments(Function)
|
||||
handleType(T, null)
|
||||
beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
endFunctionType(Function, null)
|
||||
endTypedef(typedef, =, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
handleIdentifier(F2, typedefDeclaration)
|
||||
beginTypeVariables(<)
|
||||
beginMetadataStar(T)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(T, typeVariableDeclaration)
|
||||
beginTypeVariable(T)
|
||||
handleTypeVariablesDefined(>, 1)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeVariable(>=, 0, extends, null)
|
||||
endTypeVariables(<, >)
|
||||
beginFunctionType(T)
|
||||
handleNoTypeVariables(()
|
||||
handleIdentifier(T, typeReference)
|
||||
handleNoTypeArguments(Function)
|
||||
handleType(T, null)
|
||||
beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
endFunctionType(Function, null)
|
||||
endTypedef(typedef, =, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
handleIdentifier(F3, typedefDeclaration)
|
||||
beginTypeVariables(<)
|
||||
beginMetadataStar(T)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(T, typeVariableDeclaration)
|
||||
beginTypeVariable(T)
|
||||
handleTypeVariablesDefined(>, 1)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeVariable(>=, 0, extends, null)
|
||||
endTypeVariables(<, >)
|
||||
beginFunctionType(T)
|
||||
handleNoTypeVariables(()
|
||||
handleIdentifier(T, typeReference)
|
||||
handleNoTypeArguments(Function)
|
||||
handleType(T, null)
|
||||
beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
endFunctionType(Function, null)
|
||||
endTypedef(typedef, =, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
handleIdentifier(F4, typedefDeclaration)
|
||||
beginTypeVariables(<)
|
||||
beginMetadataStar(T)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(T, typeVariableDeclaration)
|
||||
beginTypeVariable(T)
|
||||
handleTypeVariablesDefined(>, 1)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeVariable(>=, 0, extends, null)
|
||||
endTypeVariables(<, >)
|
||||
beginFunctionType(T)
|
||||
handleNoTypeVariables(()
|
||||
handleIdentifier(T, typeReference)
|
||||
handleNoTypeArguments(Function)
|
||||
handleType(T, null)
|
||||
beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
endFunctionType(Function, null)
|
||||
endTypedef(typedef, =, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
handleIdentifier(F5, typedefDeclaration)
|
||||
beginTypeVariables(<)
|
||||
beginMetadataStar(T)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(T, typeVariableDeclaration)
|
||||
beginTypeVariable(T)
|
||||
handleTypeVariablesDefined(>, 1)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeVariable(>=, 0, extends, null)
|
||||
endTypeVariables(<, >)
|
||||
beginFunctionType(T)
|
||||
handleNoTypeVariables(()
|
||||
handleIdentifier(T, typeReference)
|
||||
handleNoTypeArguments(Function)
|
||||
handleType(T, null)
|
||||
beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
endFunctionType(Function, null)
|
||||
endTypedef(typedef, =, ;)
|
||||
endTopLevelDeclaration(typedef)
|
||||
beginMetadataStar(typedef)
|
||||
endMetadataStar(0)
|
||||
beginUncategorizedTopLevelDeclaration(typedef)
|
||||
beginTypedef(typedef)
|
||||
handleIdentifier(F6, typedefDeclaration)
|
||||
beginTypeVariables(<)
|
||||
beginMetadataStar(T)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(T, typeVariableDeclaration)
|
||||
beginTypeVariable(T)
|
||||
handleTypeVariablesDefined(>, 1)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
handleIdentifier(List, typeReference)
|
||||
beginTypeArguments(<)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeArguments(1, <, >)
|
||||
handleType(List, null)
|
||||
endTypeVariable(>=, 0, extends, null)
|
||||
endTypeVariables(<, >)
|
||||
beginFunctionType(T)
|
||||
handleNoTypeVariables(()
|
||||
handleIdentifier(T, typeReference)
|
||||
handleNoTypeArguments(Function)
|
||||
handleType(T, null)
|
||||
beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
endFunctionType(Function, null)
|
||||
endTypedef(typedef, =, ;)
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(1, )
|
||||
endCompilationUnit(10, )
|
||||
|
|
|
@ -7,6 +7,47 @@ parseUnit(typedef)
|
|||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
parseRecordType((, typedef, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
ensureIdentifierPotentiallyRecovered(), typedefDeclaration, false)
|
||||
listener: handleIdentifier(T1, typedefDeclaration)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseFormalParametersRequiredOpt(T1, MemberKind.FunctionTypeAlias)
|
||||
parseFormalParametersRest((, MemberKind.FunctionTypeAlias)
|
||||
listener: beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, null, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
|
@ -29,14 +70,508 @@ parseUnit(typedef)
|
|||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, null, 1, true)
|
||||
ensureIdentifierPotentiallyRecovered(), typedefDeclaration, false)
|
||||
listener: handleIdentifier(R2, typedefDeclaration)
|
||||
listener: handleIdentifier(T2, typedefDeclaration)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseFormalParametersRequiredOpt(R2, MemberKind.FunctionTypeAlias)
|
||||
parseFormalParametersRequiredOpt(T2, MemberKind.FunctionTypeAlias)
|
||||
parseFormalParametersRest((, MemberKind.FunctionTypeAlias)
|
||||
listener: beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, null, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
parseRecordType((, typedef, true)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, ?, 2, false)
|
||||
ensureIdentifierPotentiallyRecovered(?, typedefDeclaration, false)
|
||||
listener: handleIdentifier(T3, typedefDeclaration)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseFormalParametersRequiredOpt(T3, MemberKind.FunctionTypeAlias)
|
||||
parseFormalParametersRest((, MemberKind.FunctionTypeAlias)
|
||||
listener: beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, null, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
parseRecordType((, typedef, true)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeNamedFields(()
|
||||
listener: beginRecordTypeNamedFields({)
|
||||
parseRecordTypeField({, identifierIsOptional: false)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(j)
|
||||
listener: handleType(int, null)
|
||||
ensureIdentifier(int, recordFieldDeclaration)
|
||||
listener: handleIdentifier(j, recordFieldDeclaration)
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordTypeNamedFields(1, {)
|
||||
ensureCloseParen(}, ()
|
||||
listener: endRecordType((, ?, 1, true)
|
||||
ensureIdentifierPotentiallyRecovered(?, typedefDeclaration, false)
|
||||
listener: handleIdentifier(T4, typedefDeclaration)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseFormalParametersRequiredOpt(T4, MemberKind.FunctionTypeAlias)
|
||||
parseFormalParametersRest((, MemberKind.FunctionTypeAlias)
|
||||
listener: beginFormalParameters((, MemberKind.FunctionTypeAlias)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.FunctionTypeAlias)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, null, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
|
||||
listener: handleIdentifier(F1, typedefDeclaration)
|
||||
listener: beginTypeVariables(<)
|
||||
parseMetadataStar(<)
|
||||
listener: beginMetadataStar(T)
|
||||
listener: endMetadataStar(0)
|
||||
ensureIdentifier(<, typeVariableDeclaration)
|
||||
listener: handleIdentifier(T, typeVariableDeclaration)
|
||||
listener: beginTypeVariable(T)
|
||||
listener: handleTypeVariablesDefined(), 1)
|
||||
parseRecordType((, extends, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
listener: endTypeVariable(>=, 0, extends, null)
|
||||
listener: endTypeVariables(<, >)
|
||||
listener: beginFunctionType(T)
|
||||
listener: handleNoTypeVariables(()
|
||||
ensureIdentifier(=, typeReference)
|
||||
listener: handleIdentifier(T, typeReference)
|
||||
listener: handleNoTypeArguments(Function)
|
||||
listener: handleType(T, null)
|
||||
parseFormalParametersRequiredOpt(Function, MemberKind.GeneralizedFunctionType)
|
||||
parseFormalParametersRest((, MemberKind.GeneralizedFunctionType)
|
||||
listener: beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
listener: endFunctionType(Function, null)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, =, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
|
||||
listener: handleIdentifier(F2, typedefDeclaration)
|
||||
listener: beginTypeVariables(<)
|
||||
parseMetadataStar(<)
|
||||
listener: beginMetadataStar(T)
|
||||
listener: endMetadataStar(0)
|
||||
ensureIdentifier(<, typeVariableDeclaration)
|
||||
listener: handleIdentifier(T, typeVariableDeclaration)
|
||||
listener: beginTypeVariable(T)
|
||||
listener: handleTypeVariablesDefined(>, 1)
|
||||
ensureIdentifier(extends, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
parseRecordType((, <, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeVariable(>=, 0, extends, null)
|
||||
listener: endTypeVariables(<, >)
|
||||
listener: beginFunctionType(T)
|
||||
listener: handleNoTypeVariables(()
|
||||
ensureIdentifier(=, typeReference)
|
||||
listener: handleIdentifier(T, typeReference)
|
||||
listener: handleNoTypeArguments(Function)
|
||||
listener: handleType(T, null)
|
||||
parseFormalParametersRequiredOpt(Function, MemberKind.GeneralizedFunctionType)
|
||||
parseFormalParametersRest((, MemberKind.GeneralizedFunctionType)
|
||||
listener: beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
listener: endFunctionType(Function, null)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, =, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
|
||||
listener: handleIdentifier(F3, typedefDeclaration)
|
||||
listener: beginTypeVariables(<)
|
||||
parseMetadataStar(<)
|
||||
listener: beginMetadataStar(T)
|
||||
listener: endMetadataStar(0)
|
||||
ensureIdentifier(<, typeVariableDeclaration)
|
||||
listener: handleIdentifier(T, typeVariableDeclaration)
|
||||
listener: beginTypeVariable(T)
|
||||
listener: handleTypeVariablesDefined(>, 1)
|
||||
ensureIdentifier(extends, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
parseRecordType((, <, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeVariable(>=, 0, extends, null)
|
||||
listener: endTypeVariables(<, >)
|
||||
listener: beginFunctionType(T)
|
||||
listener: handleNoTypeVariables(()
|
||||
ensureIdentifier(=, typeReference)
|
||||
listener: handleIdentifier(T, typeReference)
|
||||
listener: handleNoTypeArguments(Function)
|
||||
listener: handleType(T, null)
|
||||
parseFormalParametersRequiredOpt(Function, MemberKind.GeneralizedFunctionType)
|
||||
parseFormalParametersRest((, MemberKind.GeneralizedFunctionType)
|
||||
listener: beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
listener: endFunctionType(Function, null)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, =, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
|
||||
listener: handleIdentifier(F4, typedefDeclaration)
|
||||
listener: beginTypeVariables(<)
|
||||
parseMetadataStar(<)
|
||||
listener: beginMetadataStar(T)
|
||||
listener: endMetadataStar(0)
|
||||
ensureIdentifier(<, typeVariableDeclaration)
|
||||
listener: handleIdentifier(T, typeVariableDeclaration)
|
||||
listener: beginTypeVariable(T)
|
||||
listener: handleTypeVariablesDefined(>, 1)
|
||||
ensureIdentifier(extends, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
parseRecordType((, <, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeVariable(>=, 0, extends, null)
|
||||
listener: endTypeVariables(<, >)
|
||||
listener: beginFunctionType(T)
|
||||
listener: handleNoTypeVariables(()
|
||||
ensureIdentifier(=, typeReference)
|
||||
listener: handleIdentifier(T, typeReference)
|
||||
listener: handleNoTypeArguments(Function)
|
||||
listener: handleType(T, null)
|
||||
parseFormalParametersRequiredOpt(Function, MemberKind.GeneralizedFunctionType)
|
||||
parseFormalParametersRest((, MemberKind.GeneralizedFunctionType)
|
||||
listener: beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
listener: endFunctionType(Function, null)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, =, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
|
||||
listener: handleIdentifier(F5, typedefDeclaration)
|
||||
listener: beginTypeVariables(<)
|
||||
parseMetadataStar(<)
|
||||
listener: beginMetadataStar(T)
|
||||
listener: endMetadataStar(0)
|
||||
ensureIdentifier(<, typeVariableDeclaration)
|
||||
listener: handleIdentifier(T, typeVariableDeclaration)
|
||||
listener: beginTypeVariable(T)
|
||||
listener: handleTypeVariablesDefined(>, 1)
|
||||
ensureIdentifier(extends, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
parseRecordType((, <, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeVariable(>=, 0, extends, null)
|
||||
listener: endTypeVariables(<, >)
|
||||
listener: beginFunctionType(T)
|
||||
listener: handleNoTypeVariables(()
|
||||
ensureIdentifier(=, typeReference)
|
||||
listener: handleIdentifier(T, typeReference)
|
||||
listener: handleNoTypeArguments(Function)
|
||||
listener: handleType(T, null)
|
||||
parseFormalParametersRequiredOpt(Function, MemberKind.GeneralizedFunctionType)
|
||||
parseFormalParametersRest((, MemberKind.GeneralizedFunctionType)
|
||||
listener: beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
listener: endFunctionType(Function, null)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, =, ;)
|
||||
listener: endTopLevelDeclaration(typedef)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(typedef)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
|
||||
parseTypedef(typedef)
|
||||
listener: beginUncategorizedTopLevelDeclaration(typedef)
|
||||
listener: beginTypedef(typedef)
|
||||
ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
|
||||
listener: handleIdentifier(F6, typedefDeclaration)
|
||||
listener: beginTypeVariables(<)
|
||||
parseMetadataStar(<)
|
||||
listener: beginMetadataStar(T)
|
||||
listener: endMetadataStar(0)
|
||||
ensureIdentifier(<, typeVariableDeclaration)
|
||||
listener: handleIdentifier(T, typeVariableDeclaration)
|
||||
listener: beginTypeVariable(T)
|
||||
listener: handleTypeVariablesDefined(>, 1)
|
||||
ensureIdentifier(extends, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
ensureIdentifier(<, typeReference)
|
||||
listener: handleIdentifier(List, typeReference)
|
||||
listener: beginTypeArguments(<)
|
||||
parseRecordType((, <, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeArguments(1, <, >)
|
||||
listener: handleType(List, null)
|
||||
listener: endTypeVariable(>=, 0, extends, null)
|
||||
listener: endTypeVariables(<, >)
|
||||
listener: beginFunctionType(T)
|
||||
listener: handleNoTypeVariables(()
|
||||
ensureIdentifier(=, typeReference)
|
||||
listener: handleIdentifier(T, typeReference)
|
||||
listener: handleNoTypeArguments(Function)
|
||||
listener: handleType(T, null)
|
||||
parseFormalParametersRequiredOpt(Function, MemberKind.GeneralizedFunctionType)
|
||||
parseFormalParametersRest((, MemberKind.GeneralizedFunctionType)
|
||||
listener: beginFormalParameters((, MemberKind.GeneralizedFunctionType)
|
||||
listener: endFormalParameters(0, (, ), MemberKind.GeneralizedFunctionType)
|
||||
listener: endFunctionType(Function, null)
|
||||
ensureSemicolon())
|
||||
listener: endTypedef(typedef, =, ;)
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(typedef)
|
||||
listener: endCompilationUnit(1, )
|
||||
listener: endCompilationUnit(10, )
|
||||
|
|
|
@ -1,5 +1,31 @@
|
|||
typedef ({int j}) R2();
|
||||
NOTICE: Stream was rewritten by parser!
|
||||
|
||||
typedef (int, int) T1();
|
||||
typedef ({int j}) T2();
|
||||
typedef (int, int)? T3();
|
||||
typedef ({int j})? T4();
|
||||
|
||||
|
||||
typedef[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] j[StringToken]}[SimpleToken])[SimpleToken] R2[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
|
||||
typedef F1<T extends (int, int)>= T Function();
|
||||
typedef F2<T extends List<(int, int)>>= T Function();
|
||||
typedef F3<T extends List<List<(int, int)>>>= T Function();
|
||||
typedef F4<T extends List<List<List<(int, int)>>>>= T Function();
|
||||
typedef F5<T extends List<List<List<List<(int, int)>>>>>= T Function();
|
||||
typedef F6<T extends List<List<List<List<List<(int, int)>>>>>>= T Function();
|
||||
|
||||
|
||||
typedef[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] T1[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] j[StringToken]}[SimpleToken])[SimpleToken] T2[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]?[SimpleToken] T3[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] j[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] T4[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
|
||||
|
||||
|
||||
typedef[KeywordToken] F1[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>[SimpleToken]=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F2[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>[SimpleToken]>[SimpleToken]=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F3[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F4[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F5[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F6[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]>[SimpleToken]=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
[SimpleToken]
|
||||
|
|
|
@ -1,5 +1,29 @@
|
|||
typedef ({int j}) R2();
|
||||
typedef (int, int) T1();
|
||||
typedef ({int j}) T2();
|
||||
typedef (int, int)? T3();
|
||||
typedef ({int j})? T4();
|
||||
|
||||
|
||||
typedef[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] j[StringToken]}[SimpleToken])[SimpleToken] R2[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
|
||||
typedef F1<T extends (int, int)>= T Function();
|
||||
typedef F2<T extends List<(int, int)>>= T Function();
|
||||
typedef F3<T extends List<List<(int, int)>>>= T Function();
|
||||
typedef F4<T extends List<List<List<(int, int)>>>>= T Function();
|
||||
typedef F5<T extends List<List<List<List<(int, int)>>>>>= T Function();
|
||||
typedef F6<T extends List<List<List<List<List<(int, int)>>>>>>= T Function();
|
||||
|
||||
|
||||
typedef[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] T1[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] j[StringToken]}[SimpleToken])[SimpleToken] T2[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]?[SimpleToken] T3[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] ([BeginToken]{[BeginToken]int[StringToken] j[StringToken]}[SimpleToken])[SimpleToken]?[SimpleToken] T4[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
|
||||
|
||||
|
||||
typedef[KeywordToken] F1[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F2[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>>=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F3[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>>>=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F4[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>>>[SimpleToken]>=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F5[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>>>[SimpleToken]>>=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
typedef[KeywordToken] F6[StringToken]<[BeginToken]T[StringToken] extends[KeywordToken] List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]List[StringToken]<[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]>>>[SimpleToken]>>>=[SimpleToken] T[StringToken] Function[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
||||
[SimpleToken]
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
class Foo extends Bar {
|
||||
Foo((int, int) super.x);
|
||||
Foo([(int, int) super.x]);
|
||||
Foo({(int, int) super.x});
|
||||
Foo({required (int, int) super.x});
|
||||
}
|
|
@ -0,0 +1,177 @@
|
|||
beginCompilationUnit(class)
|
||||
beginMetadataStar(class)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
handleIdentifier(Foo, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(extends)
|
||||
beginClassDeclaration(class, null, null, null, Foo)
|
||||
handleIdentifier(Bar, typeReference)
|
||||
handleNoTypeArguments({)
|
||||
handleType(Bar, null)
|
||||
handleClassExtends(extends, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
beginMetadataStar(Foo)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
handleNoType({)
|
||||
handleIdentifier(Foo, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginMetadataStar(()
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue())
|
||||
endFormalParameter(null, super, ., x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, Foo, (, null, ;)
|
||||
endMember()
|
||||
beginMetadataStar(Foo)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
handleNoType(;)
|
||||
handleIdentifier(Foo, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginOptionalFormalParameters([)
|
||||
beginMetadataStar(()
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue(])
|
||||
endFormalParameter(null, super, ., x, null, null, FormalParameterKind.optionalPositional, MemberKind.NonStaticMethod)
|
||||
endOptionalFormalParameters(1, [, ])
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, Foo, (, null, ;)
|
||||
endMember()
|
||||
beginMetadataStar(Foo)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
handleNoType(;)
|
||||
handleIdentifier(Foo, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginOptionalFormalParameters({)
|
||||
beginMetadataStar(()
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue(})
|
||||
endFormalParameter(null, super, ., x, null, null, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
endOptionalFormalParameters(1, {, })
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, Foo, (, null, ;)
|
||||
endMember()
|
||||
beginMetadataStar(Foo)
|
||||
endMetadataStar(0)
|
||||
beginMember()
|
||||
beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
handleNoType(;)
|
||||
handleIdentifier(Foo, methodDeclaration)
|
||||
handleNoTypeVariables(()
|
||||
beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
beginOptionalFormalParameters({)
|
||||
beginMetadataStar(required)
|
||||
endMetadataStar(0)
|
||||
beginFormalParameter(required, MemberKind.NonStaticMethod, required, null, null)
|
||||
beginRecordType(()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments(,)
|
||||
handleType(int, null)
|
||||
handleNoName(,)
|
||||
endRecordTypeEntry()
|
||||
beginRecordTypeEntry()
|
||||
beginMetadataStar(int)
|
||||
endMetadataStar(0)
|
||||
handleIdentifier(int, typeReference)
|
||||
handleNoTypeArguments())
|
||||
handleType(int, null)
|
||||
handleNoName())
|
||||
endRecordTypeEntry()
|
||||
endRecordType((, null, 2, false)
|
||||
handleIdentifier(x, fieldInitializer)
|
||||
handleFormalParameterWithoutValue(})
|
||||
endFormalParameter(null, super, ., x, null, null, FormalParameterKind.requiredNamed, MemberKind.NonStaticMethod)
|
||||
endOptionalFormalParameters(1, {, })
|
||||
endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
handleNoInitializers()
|
||||
handleAsyncModifier(null, null)
|
||||
handleEmptyFunctionBody(;)
|
||||
endClassConstructor(null, Foo, (, null, ;)
|
||||
endMember()
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 4, {, })
|
||||
endClassDeclaration(class, })
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(1, )
|
|
@ -0,0 +1,296 @@
|
|||
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(extends)
|
||||
listener: beginClassDeclaration(class, null, null, null, Foo)
|
||||
parseClass(Foo, class, class, Foo)
|
||||
parseClassHeaderOpt(Foo, class, class)
|
||||
parseClassExtendsOpt(Foo)
|
||||
parseClassExtendsSeenExtendsClause(extends, Foo)
|
||||
listener: handleIdentifier(Bar, typeReference)
|
||||
listener: handleNoTypeArguments({)
|
||||
listener: handleType(Bar, null)
|
||||
listener: handleClassExtends(extends, 1)
|
||||
parseClassWithClauseOpt(Bar)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(Bar)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
parseClassOrMixinOrExtensionBody(Bar, DeclarationKind.Class, Foo)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, Foo)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, Foo)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(Foo)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod({, null, null, null, null, null, null, null, {, Instance of 'NoType', null, Foo, DeclarationKind.Class, Foo, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
listener: handleNoType({)
|
||||
ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
|
||||
listener: handleIdentifier(Foo, methodDeclaration)
|
||||
parseQualifiedRestOpt(Foo, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(Foo)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(Foo, Foo, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(Foo, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(()
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
parseRecordType((, (, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue())
|
||||
listener: endFormalParameter(null, super, ., x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod)
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, Foo, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, Foo)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(Foo)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, Foo, DeclarationKind.Class, Foo, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(Foo, methodDeclaration)
|
||||
parseQualifiedRestOpt(Foo, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(Foo)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(Foo, Foo, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(Foo, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseOptionalPositionalParameters((, MemberKind.NonStaticMethod)
|
||||
listener: beginOptionalFormalParameters([)
|
||||
parseFormalParameter([, FormalParameterKind.optionalPositional, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar([)
|
||||
listener: beginMetadataStar(()
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
parseRecordType((, [, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue(])
|
||||
listener: endFormalParameter(null, super, ., x, null, null, FormalParameterKind.optionalPositional, MemberKind.NonStaticMethod)
|
||||
listener: endOptionalFormalParameters(1, [, ])
|
||||
ensureCloseParen(], ()
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, Foo, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, Foo)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(Foo)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, Foo, DeclarationKind.Class, Foo, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(Foo, methodDeclaration)
|
||||
parseQualifiedRestOpt(Foo, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(Foo)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(Foo, Foo, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(Foo, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseOptionalNamedParameters((, MemberKind.NonStaticMethod)
|
||||
listener: beginOptionalFormalParameters({)
|
||||
parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(()
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter((, MemberKind.NonStaticMethod, null, null, null)
|
||||
parseRecordType((, {, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue(})
|
||||
listener: endFormalParameter(null, super, ., x, null, null, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
listener: endOptionalFormalParameters(1, {, })
|
||||
ensureCloseParen(}, ()
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, Foo, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, Foo)
|
||||
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
|
||||
parseMetadataStar(;)
|
||||
listener: beginMetadataStar(Foo)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginMember()
|
||||
isReservedKeyword(()
|
||||
parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, Foo, DeclarationKind.Class, Foo, false)
|
||||
listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, Foo)
|
||||
listener: handleNoType(;)
|
||||
ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
|
||||
listener: handleIdentifier(Foo, methodDeclaration)
|
||||
parseQualifiedRestOpt(Foo, methodDeclarationContinuation)
|
||||
parseMethodTypeVar(Foo)
|
||||
listener: handleNoTypeVariables(()
|
||||
parseGetterOrFormalParameters(Foo, Foo, false, MemberKind.NonStaticMethod)
|
||||
parseFormalParameters(Foo, MemberKind.NonStaticMethod)
|
||||
parseFormalParametersRest((, MemberKind.NonStaticMethod)
|
||||
listener: beginFormalParameters((, MemberKind.NonStaticMethod)
|
||||
parseOptionalNamedParameters((, MemberKind.NonStaticMethod)
|
||||
listener: beginOptionalFormalParameters({)
|
||||
parseFormalParameter({, FormalParameterKind.optionalNamed, MemberKind.NonStaticMethod)
|
||||
parseMetadataStar({)
|
||||
listener: beginMetadataStar(required)
|
||||
listener: endMetadataStar(0)
|
||||
listener: beginFormalParameter(required, MemberKind.NonStaticMethod, required, null, null)
|
||||
parseRecordType((, required, false)
|
||||
listener: beginRecordType(()
|
||||
parseRecordTypeField((, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(()
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments(,)
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName(,)
|
||||
listener: endRecordTypeEntry()
|
||||
parseRecordTypeField(,, identifierIsOptional: true)
|
||||
listener: beginRecordTypeEntry()
|
||||
parseMetadataStar(,)
|
||||
listener: beginMetadataStar(int)
|
||||
listener: endMetadataStar(0)
|
||||
listener: handleIdentifier(int, typeReference)
|
||||
listener: handleNoTypeArguments())
|
||||
listener: handleType(int, null)
|
||||
listener: handleNoName())
|
||||
listener: endRecordTypeEntry()
|
||||
listener: endRecordType((, null, 2, false)
|
||||
ensureIdentifier(., fieldInitializer)
|
||||
listener: handleIdentifier(x, fieldInitializer)
|
||||
listener: handleFormalParameterWithoutValue(})
|
||||
listener: endFormalParameter(null, super, ., x, null, null, FormalParameterKind.requiredNamed, MemberKind.NonStaticMethod)
|
||||
listener: endOptionalFormalParameters(1, {, })
|
||||
ensureCloseParen(}, ()
|
||||
listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
|
||||
parseInitializersOpt())
|
||||
listener: handleNoInitializers()
|
||||
parseAsyncModifierOpt())
|
||||
listener: handleAsyncModifier(null, null)
|
||||
inPlainSync()
|
||||
inPlainSync()
|
||||
parseFunctionBody(), false, true)
|
||||
listener: handleEmptyFunctionBody(;)
|
||||
listener: endClassConstructor(null, Foo, (, null, ;)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 4, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(class)
|
||||
listener: endCompilationUnit(1, )
|
|
@ -0,0 +1,15 @@
|
|||
class Foo extends Bar {
|
||||
Foo((int, int) super.x);
|
||||
Foo([(int, int) super.x]);
|
||||
Foo({(int, int) super.x});
|
||||
Foo({required (int, int) super.x});
|
||||
}
|
||||
|
||||
|
||||
class[KeywordToken] Foo[StringToken] extends[KeywordToken] Bar[StringToken] {[BeginToken]
|
||||
Foo[StringToken]([BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken])[SimpleToken];[SimpleToken]
|
||||
Foo[StringToken]([BeginToken][[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken]][SimpleToken])[SimpleToken];[SimpleToken]
|
||||
Foo[StringToken]([BeginToken]{[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
Foo[StringToken]([BeginToken]{[BeginToken]required[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
}[SimpleToken]
|
||||
[SimpleToken]
|
|
@ -0,0 +1,15 @@
|
|||
class Foo extends Bar {
|
||||
Foo((int, int) super.x);
|
||||
Foo([(int, int) super.x]);
|
||||
Foo({(int, int) super.x});
|
||||
Foo({required (int, int) super.x});
|
||||
}
|
||||
|
||||
|
||||
class[KeywordToken] Foo[StringToken] extends[KeywordToken] Bar[StringToken] {[BeginToken]
|
||||
Foo[StringToken]([BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken])[SimpleToken];[SimpleToken]
|
||||
Foo[StringToken]([BeginToken][[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken]][SimpleToken])[SimpleToken];[SimpleToken]
|
||||
Foo[StringToken]([BeginToken]{[BeginToken]([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
Foo[StringToken]([BeginToken]{[BeginToken]required[KeywordToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]x[StringToken]}[SimpleToken])[SimpleToken];[SimpleToken]
|
||||
}[SimpleToken]
|
||||
[SimpleToken]
|
|
@ -1220,6 +1220,7 @@ sandboxed
|
|||
sanitizing
|
||||
saw
|
||||
say
|
||||
saying
|
||||
sb
|
||||
sc
|
||||
scc
|
||||
|
|
|
@ -125,6 +125,7 @@ cmp
|
|||
cnn
|
||||
coded
|
||||
codepath
|
||||
coincidences
|
||||
collisions
|
||||
columns
|
||||
commented
|
||||
|
|
Loading…
Reference in a new issue