diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart b/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart index 816acd7237d..96b271157ab 100644 --- a/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart +++ b/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart @@ -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 { diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart index 37d440f154b..70deef75aaa 100644 --- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart +++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart @@ -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 ';' diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart index 1409400f24b..09903485788 100644 --- a/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart +++ b/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart @@ -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> or List>>. - if (!isOneOfOrEof(next, const [",", ">", ">>", ">>>"])) { + // Is it e.g. + // * List<(int, int)> + // * Map<(int, int), (String, String)>? + // * List> + // * List>> + // * typedef F2>= T Function(); + // * typedef F3>>= T Function(); + if (!isOneOfOrEof(next, const [",", ">", ">>", ">>=", ">>>", ">>>="])) { return noType; } } diff --git a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart index 36f7c0831e3..80f52418eab 100644 --- a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart +++ b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart @@ -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}); } diff --git a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect index fdac54db9d3..23e074302b2 100644 --- a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect +++ b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.expect @@ -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, ) diff --git a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect index 6e52bfaf73e..b2dd31a3da7 100644 --- a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.intertwined.expect @@ -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) diff --git a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.parser.expect b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.parser.expect index 109ac23f740..8a76e14fea1 100644 --- a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.parser.expect +++ b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.parser.expect @@ -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] diff --git a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.scanner.expect b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.scanner.expect index 109ac23f740..8a76e14fea1 100644 --- a/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.scanner.expect +++ b/pkg/front_end/parser_testcases/record/field_formal_parameter_with_explicit_record_type.dart.scanner.expect @@ -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] diff --git a/pkg/front_end/parser_testcases/record/record_type_getter.dart b/pkg/front_end/parser_testcases/record/record_type_getter.dart index 56317050e1b..7302b7a0cc2 100644 --- a/pkg/front_end/parser_testcases/record/record_type_getter.dart +++ b/pkg/front_end/parser_testcases/record/record_type_getter.dart @@ -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"; } } diff --git a/pkg/front_end/parser_testcases/record/record_type_getter.dart.expect b/pkg/front_end/parser_testcases/record/record_type_getter.dart.expect index 37e1db2ce15..f167c99ae3b 100644 --- a/pkg/front_end/parser_testcases/record/record_type_getter.dart.expect +++ b/pkg/front_end/parser_testcases/record/record_type_getter.dart.expect @@ -92,6 +92,266 @@ beginCompilationUnit(() endTopLevelDeclaration(() beginMetadataStar(() endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(}, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, topLevelFunctionDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.TopLevelMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endTopLevelMethod((, null, ;) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(;, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, topLevelFunctionDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.TopLevelMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endTopLevelMethod((, null, }) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(}, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, topLevelFunctionDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.TopLevelMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endTopLevelMethod((, null, ;) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(;, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, topLevelFunctionDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.TopLevelMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endTopLevelMethod((, null, }) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(}, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, topLevelFunctionDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.TopLevelMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endTopLevelMethod((, null, ;) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(;, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, topLevelFunctionDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.TopLevelMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endTopLevelMethod((, null, }) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) beginTopLevelMember(() beginTopLevelMethod(}, null, null) beginRecordType(() @@ -231,6 +491,206 @@ beginCompilationUnit(() endReturnStatement(true, return, ;) endBlockFunctionBody(1, {, }) endTopLevelMethod((, get, }) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(}, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.TopLevelMethod) + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endTopLevelMethod((, get, ;) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(;, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.TopLevelMethod) + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endTopLevelMethod((, get, }) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(}, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.TopLevelMethod) + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endTopLevelMethod((, get, ;) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(;, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.TopLevelMethod) + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endTopLevelMethod((, get, }) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(}, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.TopLevelMethod) + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endTopLevelMethod((, get, ;) + endTopLevelDeclaration(() + beginMetadataStar(() + endMetadataStar(0) + beginTopLevelMember(() + beginTopLevelMethod(;, null, null) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.TopLevelMethod) + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endTopLevelMethod((, get, }) endTopLevelDeclaration(class) beginMetadataStar(class) endMetadataStar(0) @@ -339,6 +799,272 @@ beginCompilationUnit(() endMember() beginMetadataStar(() endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.NonStaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endClassMethod(null, (, (, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.NonStaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(null, (, (, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.NonStaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(null, (, (, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.NonStaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(null, (, (, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.NonStaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(null, (, (, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.NonStaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(null, (, (, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) beginMember() beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) beginRecordType(() @@ -412,6 +1138,212 @@ beginCompilationUnit(() endMember() beginMetadataStar(() endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endClassMethod(get, (, async, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, (, async, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, (, async, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, (, async, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, (, sync, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, (, sync, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) beginMember() beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) beginRecordType(() @@ -483,7 +1415,218 @@ beginCompilationUnit(() endBlockFunctionBody(1, {, }) endClassMethod(get, (, {, null, }) endMember() - endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, }) + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(instanceGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endClassMethod(get, (, async, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(instanceGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginReturnStatement(return) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + endReturnStatement(true, return, ;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, (, async, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(instanceGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, (, async, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(instanceGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginReturnStatement(return) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + endReturnStatement(true, return, ;) + handleInvalidStatement(return, GeneratorReturnsValue) + endBlockFunctionBody(1, {, }) + endClassMethod(get, (, async, null, }) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(instanceGetter, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, (, sync, null, ;) + endMember() + beginMetadataStar(() + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(instanceGetter, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginReturnStatement(return) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + endReturnStatement(true, return, ;) + handleInvalidStatement(return, GeneratorReturnsValue) + endBlockFunctionBody(1, {, }) + endClassMethod(get, (, sync, null, }) + endMember() + endClassOrMixinOrExtensionBody(DeclarationKind.Class, 24, {, }) endClassDeclaration(class, }) endTopLevelDeclaration(class) beginMetadataStar(class) @@ -593,6 +1736,272 @@ beginCompilationUnit(() endMember() beginMetadataStar(static) endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.StaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + endFormalParameters(1, (, ), MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endClassMethod(null, static, (, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.StaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + endFormalParameters(1, (, ), MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(null, static, (, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.StaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + endFormalParameters(1, (, ), MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(null, static, (, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.StaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + endFormalParameters(1, (, ), MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(null, static, (, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.StaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + endFormalParameters(1, (, ), MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(null, static, (, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(() + beginFormalParameters((, MemberKind.StaticMethod) + beginMetadataStar(int) + endMetadataStar(0) + beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + handleIdentifier(int, typeReference) + handleNoTypeArguments(x) + handleType(int, null) + handleIdentifier(x, formalParameterDeclaration) + handleFormalParameterWithoutValue()) + endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + endFormalParameters(1, (, ), MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(null, static, (, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) beginMember() beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) beginRecordType(() @@ -666,6 +2075,212 @@ beginCompilationUnit(() endMember() beginMetadataStar(static) endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endClassMethod(get, static, async, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, static, async, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, static, async, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, static, async, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, static, sync, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(get, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, static, sync, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) beginMember() beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) beginRecordType(() @@ -737,7 +2352,213 @@ beginCompilationUnit(() endBlockFunctionBody(1, {, }) endClassMethod(get, static, {, null, }) endMember() - endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, }) + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(staticGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + endClassMethod(get, static, async, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(staticGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, null) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, static, async, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(staticGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, static, async, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(staticGetter, methodDeclaration) + handleNoTypeVariables(async) + handleNoFormalParameters(async, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(async, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, static, async, null, }) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(staticGetter, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionFunctionBody(=>, ;) + handleInvalidStatement(=>, GeneratorReturnsValue) + endClassMethod(get, static, sync, null, ;) + endMember() + beginMetadataStar(static) + endMetadataStar(0) + beginMember() + beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + beginRecordType(() + beginRecordTypeEntry() + beginMetadataStar(int) + endMetadataStar(0) + handleIdentifier(int, typeReference) + handleNoTypeArguments(a) + handleType(int, null) + handleIdentifier(a, recordFieldDeclaration) + endRecordTypeEntry() + beginRecordTypeEntry() + beginMetadataStar(String) + endMetadataStar(0) + handleIdentifier(String, typeReference) + handleNoTypeArguments(b) + handleType(String, null) + handleIdentifier(b, recordFieldDeclaration) + endRecordTypeEntry() + endRecordType((, null, 2, false) + handleIdentifier(staticGetter, methodDeclaration) + handleNoTypeVariables(sync) + handleNoFormalParameters(sync, MemberKind.StaticMethod) + handleNoInitializers() + handleAsyncModifier(sync, *) + beginBlockFunctionBody({) + beginLiteralString("hello") + endLiteralString(0, ;) + handleThrowExpression(throw, ;) + handleExpressionStatement(;) + endBlockFunctionBody(1, {, }) + endClassMethod(get, static, sync, null, }) + endMember() + endClassOrMixinOrExtensionBody(DeclarationKind.Class, 24, {, }) endClassDeclaration(class, }) endTopLevelDeclaration() -endCompilationUnit(8, ) +endCompilationUnit(20, ) diff --git a/pkg/front_end/parser_testcases/record/record_type_getter.dart.intertwined.expect b/pkg/front_end/parser_testcases/record/record_type_getter.dart.intertwined.expect index 7d6c87bc6d6..449f849cd2c 100644 --- a/pkg/front_end/parser_testcases/record/record_type_getter.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/record/record_type_getter.dart.intertwined.expect @@ -183,6 +183,482 @@ parseUnit(() listener: endBlockFunctionBody(1, {, }) listener: endTopLevelMethod((, null, }) listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(}) + listener: beginTopLevelMember(() + parseTopLevelMethod(}, null, null, }, Instance of 'ComplexTypeInfo', null, get, false) + listener: beginTopLevelMethod(}, null, null) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), topLevelFunctionDeclaration, false) + listener: handleIdentifier(get, topLevelFunctionDeclaration) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.TopLevelMethod) + parseFormalParameters(get, MemberKind.TopLevelMethod) + parseFormalParametersRest((, MemberKind.TopLevelMethod) + listener: beginFormalParameters((, MemberKind.TopLevelMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, null) + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endTopLevelMethod((, null, ;) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext') + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(;) + listener: beginTopLevelMember(() + parseTopLevelMethod(;, null, null, ;, Instance of 'ComplexTypeInfo', null, get, false) + listener: beginTopLevelMethod(;, null, null) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), topLevelFunctionDeclaration, false) + listener: handleIdentifier(get, topLevelFunctionDeclaration) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.TopLevelMethod) + parseFormalParameters(get, MemberKind.TopLevelMethod) + parseFormalParametersRest((, MemberKind.TopLevelMethod) + listener: beginFormalParameters((, MemberKind.TopLevelMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, null) + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endTopLevelMethod((, null, }) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(}) + listener: beginTopLevelMember(() + parseTopLevelMethod(}, null, null, }, Instance of 'ComplexTypeInfo', null, get, false) + listener: beginTopLevelMethod(}, null, null) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), topLevelFunctionDeclaration, false) + listener: handleIdentifier(get, topLevelFunctionDeclaration) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.TopLevelMethod) + parseFormalParameters(get, MemberKind.TopLevelMethod) + parseFormalParametersRest((, MemberKind.TopLevelMethod) + listener: beginFormalParameters((, MemberKind.TopLevelMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, *) + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endTopLevelMethod((, null, ;) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext') + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(;) + listener: beginTopLevelMember(() + parseTopLevelMethod(;, null, null, ;, Instance of 'ComplexTypeInfo', null, get, false) + listener: beginTopLevelMethod(;, null, null) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), topLevelFunctionDeclaration, false) + listener: handleIdentifier(get, topLevelFunctionDeclaration) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.TopLevelMethod) + parseFormalParameters(get, MemberKind.TopLevelMethod) + parseFormalParametersRest((, MemberKind.TopLevelMethod) + listener: beginFormalParameters((, MemberKind.TopLevelMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, *) + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endTopLevelMethod((, null, }) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(}) + listener: beginTopLevelMember(() + parseTopLevelMethod(}, null, null, }, Instance of 'ComplexTypeInfo', null, get, false) + listener: beginTopLevelMethod(}, null, null) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), topLevelFunctionDeclaration, false) + listener: handleIdentifier(get, topLevelFunctionDeclaration) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.TopLevelMethod) + parseFormalParameters(get, MemberKind.TopLevelMethod) + parseFormalParametersRest((, MemberKind.TopLevelMethod) + listener: beginFormalParameters((, MemberKind.TopLevelMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + parseAsyncModifierOpt()) + listener: handleAsyncModifier(sync, *) + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endTopLevelMethod((, null, ;) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext') + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(;) + listener: beginTopLevelMember(() + parseTopLevelMethod(;, null, null, ;, Instance of 'ComplexTypeInfo', null, get, false) + listener: beginTopLevelMethod(;, null, null) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), topLevelFunctionDeclaration, false) + listener: handleIdentifier(get, topLevelFunctionDeclaration) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.TopLevelMethod) + parseFormalParameters(get, MemberKind.TopLevelMethod) + parseFormalParametersRest((, MemberKind.TopLevelMethod) + listener: beginFormalParameters((, MemberKind.TopLevelMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) + listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod) + parseAsyncModifierOpt()) + listener: handleAsyncModifier(sync, *) + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endTopLevelMethod((, null, }) + listener: endTopLevelDeclaration(() parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') parseMetadataStar(}) listener: beginMetadataStar(() @@ -484,6 +960,392 @@ parseUnit(() notEofOrValue(}, }) listener: endBlockFunctionBody(1, {, }) listener: endTopLevelMethod((, get, }) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(}) + listener: beginTopLevelMember(() + parseTopLevelMethod(}, null, null, }, Instance of 'ComplexTypeInfo', get, topLevelGetter, false) + listener: beginTopLevelMethod(}, null, null) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false) + listener: handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(topLevelGetter, topLevelGetter, true, MemberKind.TopLevelMethod) + listener: handleNoFormalParameters(async, MemberKind.TopLevelMethod) + parseAsyncModifierOpt(topLevelGetter) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endTopLevelMethod((, get, ;) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext') + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(;) + listener: beginTopLevelMember(() + parseTopLevelMethod(;, null, null, ;, Instance of 'ComplexTypeInfo', get, topLevelGetter, false) + listener: beginTopLevelMethod(;, null, null) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false) + listener: handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(topLevelGetter, topLevelGetter, true, MemberKind.TopLevelMethod) + listener: handleNoFormalParameters(async, MemberKind.TopLevelMethod) + parseAsyncModifierOpt(topLevelGetter) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endTopLevelMethod((, get, }) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(}) + listener: beginTopLevelMember(() + parseTopLevelMethod(}, null, null, }, Instance of 'ComplexTypeInfo', get, topLevelGetter, false) + listener: beginTopLevelMethod(}, null, null) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false) + listener: handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(topLevelGetter, topLevelGetter, true, MemberKind.TopLevelMethod) + listener: handleNoFormalParameters(async, MemberKind.TopLevelMethod) + parseAsyncModifierOpt(topLevelGetter) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endTopLevelMethod((, get, ;) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext') + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(;) + listener: beginTopLevelMember(() + parseTopLevelMethod(;, null, null, ;, Instance of 'ComplexTypeInfo', get, topLevelGetter, false) + listener: beginTopLevelMethod(;, null, null) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false) + listener: handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(topLevelGetter, topLevelGetter, true, MemberKind.TopLevelMethod) + listener: handleNoFormalParameters(async, MemberKind.TopLevelMethod) + parseAsyncModifierOpt(topLevelGetter) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endTopLevelMethod((, get, }) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(}) + listener: beginTopLevelMember(() + parseTopLevelMethod(}, null, null, }, Instance of 'ComplexTypeInfo', get, topLevelGetter, false) + listener: beginTopLevelMethod(}, null, null) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false) + listener: handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(topLevelGetter, topLevelGetter, true, MemberKind.TopLevelMethod) + listener: handleNoFormalParameters(sync, MemberKind.TopLevelMethod) + parseAsyncModifierOpt(topLevelGetter) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endTopLevelMethod((, get, ;) + listener: endTopLevelDeclaration(() + parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext') + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + parseTopLevelMemberImpl(;) + listener: beginTopLevelMember(() + parseTopLevelMethod(;, null, null, ;, Instance of 'ComplexTypeInfo', get, topLevelGetter, false) + listener: beginTopLevelMethod(;, null, null) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false) + listener: handleIdentifier(topLevelGetter, topLevelFunctionDeclaration) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(topLevelGetter, topLevelGetter, true, MemberKind.TopLevelMethod) + listener: handleNoFormalParameters(sync, MemberKind.TopLevelMethod) + parseAsyncModifierOpt(topLevelGetter) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endTopLevelMethod((, get, }) listener: endTopLevelDeclaration(class) parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') parseMetadataStar(}) @@ -700,6 +1562,512 @@ parseUnit(() listener: endClassMethod(null, (, (, null, }) listener: endMember() notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.NonStaticMethod) + parseFormalParameters(get, MemberKind.NonStaticMethod) + parseFormalParametersRest((, MemberKind.NonStaticMethod) + listener: beginFormalParameters((, MemberKind.NonStaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endClassMethod(null, (, (, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.NonStaticMethod) + parseFormalParameters(get, MemberKind.NonStaticMethod) + parseFormalParametersRest((, MemberKind.NonStaticMethod) + listener: beginFormalParameters((, MemberKind.NonStaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(null, (, (, null, }) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.NonStaticMethod) + parseFormalParameters(get, MemberKind.NonStaticMethod) + parseFormalParametersRest((, MemberKind.NonStaticMethod) + listener: beginFormalParameters((, MemberKind.NonStaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(null, (, (, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.NonStaticMethod) + parseFormalParameters(get, MemberKind.NonStaticMethod) + parseFormalParametersRest((, MemberKind.NonStaticMethod) + listener: beginFormalParameters((, MemberKind.NonStaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(null, (, (, null, }) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.NonStaticMethod) + parseFormalParameters(get, MemberKind.NonStaticMethod) + parseFormalParametersRest((, MemberKind.NonStaticMethod) + listener: beginFormalParameters((, MemberKind.NonStaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(null, (, (, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, null, get) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.NonStaticMethod) + parseFormalParameters(get, MemberKind.NonStaticMethod) + parseFormalParametersRest((, MemberKind.NonStaticMethod) + listener: beginFormalParameters((, MemberKind.NonStaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.NonStaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(null, (, (, null, }) + listener: endMember() + notEofOrValue(}, () parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) parseMetadataStar(}) listener: beginMetadataStar(() @@ -859,6 +2227,416 @@ parseUnit(() listener: endClassMethod(get, (, {, null, }) listener: endMember() notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endClassMethod(get, (, async, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, (, async, null, }) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, (, async, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, (, async, null, }) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(get, get, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, (, sync, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, get) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(get, get, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, (, sync, null, }) + listener: endMember() + notEofOrValue(}, () parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) parseMetadataStar(}) listener: beginMetadataStar(() @@ -1017,8 +2795,417 @@ parseUnit(() listener: endBlockFunctionBody(1, {, }) listener: endClassMethod(get, (, {, null, }) listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', get, instanceGetter, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(instanceGetter, methodDeclaration) + parseQualifiedRestOpt(instanceGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(instanceGetter, instanceGetter, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(instanceGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(instanceGetter) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endClassMethod(get, (, async, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', get, instanceGetter, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(instanceGetter, methodDeclaration) + parseQualifiedRestOpt(instanceGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(instanceGetter, instanceGetter, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(instanceGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(instanceGetter) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, return) + parseStatement({) + parseStatementX({) + parseReturnStatement({) + listener: beginReturnStatement(return) + parseExpression(return) + parseThrowExpression(return, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: endReturnStatement(true, return, ;) + inGenerator() + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, (, async, null, }) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', get, instanceGetter, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(instanceGetter, methodDeclaration) + parseQualifiedRestOpt(instanceGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(instanceGetter, instanceGetter, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(instanceGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(instanceGetter) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, (, async, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', get, instanceGetter, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(instanceGetter, methodDeclaration) + parseQualifiedRestOpt(instanceGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(instanceGetter, instanceGetter, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(async, MemberKind.NonStaticMethod) + parseInitializersOpt(instanceGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(instanceGetter) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, return) + parseStatement({) + parseStatementX({) + parseReturnStatement({) + listener: beginReturnStatement(return) + parseExpression(return) + parseThrowExpression(return, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: endReturnStatement(true, return, ;) + inGenerator() + listener: handleInvalidStatement(return, GeneratorReturnsValue) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, (, async, null, }) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Foo) + parseMetadataStar(}) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, null, null, null, null, }, Instance of 'ComplexTypeInfo', get, instanceGetter, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + parseRecordType((, }, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(instanceGetter, methodDeclaration) + parseQualifiedRestOpt(instanceGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(instanceGetter, instanceGetter, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + parseInitializersOpt(instanceGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(instanceGetter) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, (, sync, null, ;) + listener: endMember() + notEofOrValue(}, () + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo) + parseMetadataStar(;) + listener: beginMetadataStar(() + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', get, instanceGetter, DeclarationKind.Class, Foo, false) + listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, get, instanceGetter) + parseRecordType((, ;, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(instanceGetter, methodDeclaration) + parseQualifiedRestOpt(instanceGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(instanceGetter, instanceGetter, true, MemberKind.NonStaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.NonStaticMethod) + parseInitializersOpt(instanceGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(instanceGetter) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, return) + parseStatement({) + parseStatementX({) + parseReturnStatement({) + listener: beginReturnStatement(return) + parseExpression(return) + parseThrowExpression(return, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: endReturnStatement(true, return, ;) + inGenerator() + listener: handleInvalidStatement(return, GeneratorReturnsValue) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, (, sync, null, }) + listener: endMember() notEofOrValue(}, }) - listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, }) + listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 24, {, }) listener: endClassDeclaration(class, }) listener: endTopLevelDeclaration(class) parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext') @@ -1234,6 +3421,506 @@ parseUnit(() listener: endClassMethod(null, static, (, null, }) listener: endMember() notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.StaticMethod) + parseFormalParameters(get, MemberKind.StaticMethod) + parseFormalParametersRest((, MemberKind.StaticMethod) + listener: beginFormalParameters((, MemberKind.StaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.StaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, null) + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endClassMethod(null, static, (, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.StaticMethod) + parseFormalParameters(get, MemberKind.StaticMethod) + parseFormalParametersRest((, MemberKind.StaticMethod) + listener: beginFormalParameters((, MemberKind.StaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.StaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, null) + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(null, static, (, null, }) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.StaticMethod) + parseFormalParameters(get, MemberKind.StaticMethod) + parseFormalParametersRest((, MemberKind.StaticMethod) + listener: beginFormalParameters((, MemberKind.StaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.StaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, *) + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(null, static, (, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.StaticMethod) + parseFormalParameters(get, MemberKind.StaticMethod) + parseFormalParametersRest((, MemberKind.StaticMethod) + listener: beginFormalParameters((, MemberKind.StaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.StaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(async, *) + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(null, static, (, null, }) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.StaticMethod) + parseFormalParameters(get, MemberKind.StaticMethod) + parseFormalParametersRest((, MemberKind.StaticMethod) + listener: beginFormalParameters((, MemberKind.StaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.StaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(sync, *) + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(null, static, (, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + isReservedKeyword(() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', null, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, null, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(), methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + parseMethodTypeVar(get) + listener: handleNoTypeVariables(() + parseGetterOrFormalParameters(get, get, false, MemberKind.StaticMethod) + parseFormalParameters(get, MemberKind.StaticMethod) + parseFormalParametersRest((, MemberKind.StaticMethod) + listener: beginFormalParameters((, MemberKind.StaticMethod) + parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: beginFormalParameter(int, MemberKind.StaticMethod, null, null, null) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(x) + listener: handleType(int, null) + ensureIdentifier(int, formalParameterDeclaration) + listener: handleIdentifier(x, formalParameterDeclaration) + listener: handleFormalParameterWithoutValue()) + listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.StaticMethod) + listener: endFormalParameters(1, (, ), MemberKind.StaticMethod) + parseInitializersOpt()) + listener: handleNoInitializers() + parseAsyncModifierOpt()) + listener: handleAsyncModifier(sync, *) + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(null, static, (, null, }) + listener: endMember() + notEofOrValue(}, static) parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) parseMetadataStar(}) listener: beginMetadataStar(static) @@ -1391,6 +4078,410 @@ parseUnit(() listener: endClassMethod(get, static, {, null, }) listener: endMember() notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endClassMethod(get, static, async, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, static, async, null, }) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, static, async, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(get, get, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, static, async, null, }) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(get, get, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.StaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, static, sync, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, get, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, get) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(get, methodDeclaration) + parseQualifiedRestOpt(get, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(get, get, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.StaticMethod) + parseInitializersOpt(get) + listener: handleNoInitializers() + parseAsyncModifierOpt(get) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, static, sync, null, }) + listener: endMember() + notEofOrValue(}, static) parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) parseMetadataStar(}) listener: beginMetadataStar(static) @@ -1547,9 +4638,413 @@ parseUnit(() listener: endBlockFunctionBody(1, {, }) listener: endClassMethod(get, static, {, null, }) listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, staticGetter, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(staticGetter, methodDeclaration) + parseQualifiedRestOpt(staticGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(staticGetter, staticGetter, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(staticGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(staticGetter) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: endClassMethod(get, static, async, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, staticGetter, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(staticGetter, methodDeclaration) + parseQualifiedRestOpt(staticGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(staticGetter, staticGetter, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(staticGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(staticGetter) + listener: handleAsyncModifier(async, null) + inPlainSync() + inPlainSync() + parseFunctionBody(async, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, static, async, null, }) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, staticGetter, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(staticGetter, methodDeclaration) + parseQualifiedRestOpt(staticGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(staticGetter, staticGetter, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(staticGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(staticGetter) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, static, async, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, staticGetter, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(staticGetter, methodDeclaration) + parseQualifiedRestOpt(staticGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(async) + parseGetterOrFormalParameters(staticGetter, staticGetter, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(async, MemberKind.StaticMethod) + parseInitializersOpt(staticGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(staticGetter) + listener: handleAsyncModifier(async, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, static, async, null, }) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Bar) + parseMetadataStar(}) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(}, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, staticGetter, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(staticGetter, methodDeclaration) + parseQualifiedRestOpt(staticGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(staticGetter, staticGetter, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.StaticMethod) + parseInitializersOpt(staticGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(staticGetter) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + parseExpressionFunctionBody(=>, false) + parseExpression(=>) + parseThrowExpression(=>, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionFunctionBody(=>, ;) + inGenerator() + listener: handleInvalidStatement(=>, GeneratorReturnsValue) + listener: endClassMethod(get, static, sync, null, ;) + listener: endMember() + notEofOrValue(}, static) + parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Bar) + parseMetadataStar(;) + listener: beginMetadataStar(static) + listener: endMetadataStar(0) + listener: beginMember() + parseMethod(;, null, null, null, static, null, null, null, static, Instance of 'ComplexTypeInfo', get, staticGetter, DeclarationKind.Class, Bar, false) + listener: beginMethod(DeclarationKind.Class, null, null, static, null, null, get, staticGetter) + parseRecordType((, static, false) + listener: beginRecordType(() + parseRecordTypeField((, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(() + listener: beginMetadataStar(int) + listener: endMetadataStar(0) + listener: handleIdentifier(int, typeReference) + listener: handleNoTypeArguments(a) + listener: handleType(int, null) + ensureIdentifier(int, recordFieldDeclaration) + listener: handleIdentifier(a, recordFieldDeclaration) + listener: endRecordTypeEntry() + parseRecordTypeField(,, identifierIsOptional: true) + listener: beginRecordTypeEntry() + parseMetadataStar(,) + listener: beginMetadataStar(String) + listener: endMetadataStar(0) + listener: handleIdentifier(String, typeReference) + listener: handleNoTypeArguments(b) + listener: handleType(String, null) + ensureIdentifier(String, recordFieldDeclaration) + listener: handleIdentifier(b, recordFieldDeclaration) + listener: endRecordTypeEntry() + listener: endRecordType((, null, 2, false) + ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false) + listener: handleIdentifier(staticGetter, methodDeclaration) + parseQualifiedRestOpt(staticGetter, methodDeclarationContinuation) + listener: handleNoTypeVariables(sync) + parseGetterOrFormalParameters(staticGetter, staticGetter, true, MemberKind.StaticMethod) + listener: handleNoFormalParameters(sync, MemberKind.StaticMethod) + parseInitializersOpt(staticGetter) + listener: handleNoInitializers() + parseAsyncModifierOpt(staticGetter) + listener: handleAsyncModifier(sync, *) + inPlainSync() + inPlainSync() + parseFunctionBody(*, false, false) + listener: beginBlockFunctionBody({) + notEofOrValue(}, throw) + parseStatement({) + parseStatementX({) + parseExpressionStatementOrDeclaration({, false) + parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) + looksLikeLocalFunction(throw) + parseExpressionStatement({) + parseExpression({) + parseThrowExpression({, true) + parseExpression(throw) + parsePrecedenceExpression(throw, 1, true) + parseUnaryExpression(throw, true) + parsePrimary(throw, expression) + parseLiteralString(throw) + parseSingleLiteralString(throw) + listener: beginLiteralString("hello") + listener: endLiteralString(0, ;) + listener: handleThrowExpression(throw, ;) + ensureSemicolon("hello") + listener: handleExpressionStatement(;) + notEofOrValue(}, }) + listener: endBlockFunctionBody(1, {, }) + listener: endClassMethod(get, static, sync, null, }) + listener: endMember() notEofOrValue(}, }) - listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, }) + listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 24, {, }) listener: endClassDeclaration(class, }) listener: endTopLevelDeclaration() reportAllErrorTokens(() - listener: endCompilationUnit(8, ) + listener: endCompilationUnit(20, ) diff --git a/pkg/front_end/parser_testcases/record/record_type_getter.dart.parser.expect b/pkg/front_end/parser_testcases/record/record_type_getter.dart.parser.expect index f9eaa61f8fc..aca42491eac 100644 --- a/pkg/front_end/parser_testcases/record/record_type_getter.dart.parser.expect +++ b/pkg/front_end/parser_testcases/record/record_type_getter.dart.parser.expect @@ -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] diff --git a/pkg/front_end/parser_testcases/record/record_type_getter.dart.scanner.expect b/pkg/front_end/parser_testcases/record/record_type_getter.dart.scanner.expect index f9eaa61f8fc..aca42491eac 100644 --- a/pkg/front_end/parser_testcases/record/record_type_getter.dart.scanner.expect +++ b/pkg/front_end/parser_testcases/record/record_type_getter.dart.scanner.expect @@ -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] diff --git a/pkg/front_end/parser_testcases/record/record_typedef.dart b/pkg/front_end/parser_testcases/record/record_typedef.dart index 3be95d6952d..7baffa17e63 100644 --- a/pkg/front_end/parser_testcases/record/record_typedef.dart +++ b/pkg/front_end/parser_testcases/record/record_typedef.dart @@ -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 Function(); +typedef F2>= T Function(); +typedef F3>>= T Function(); +typedef F4>>>= T Function(); +typedef F5>>>>= T Function(); +typedef F6>>>>>= T Function(); diff --git a/pkg/front_end/parser_testcases/record/record_typedef.dart.expect b/pkg/front_end/parser_testcases/record/record_typedef.dart.expect index 276008d2365..ce90e78cae9 100644 --- a/pkg/front_end/parser_testcases/record/record_typedef.dart.expect +++ b/pkg/front_end/parser_testcases/record/record_typedef.dart.expect @@ -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, ) diff --git a/pkg/front_end/parser_testcases/record/record_typedef.dart.intertwined.expect b/pkg/front_end/parser_testcases/record/record_typedef.dart.intertwined.expect index 17d0e754ec5..33ccace89e9 100644 --- a/pkg/front_end/parser_testcases/record/record_typedef.dart.intertwined.expect +++ b/pkg/front_end/parser_testcases/record/record_typedef.dart.intertwined.expect @@ -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, ) diff --git a/pkg/front_end/parser_testcases/record/record_typedef.dart.parser.expect b/pkg/front_end/parser_testcases/record/record_typedef.dart.parser.expect index 4f18c63eeec..6663288c302 100644 --- a/pkg/front_end/parser_testcases/record/record_typedef.dart.parser.expect +++ b/pkg/front_end/parser_testcases/record/record_typedef.dart.parser.expect @@ -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 Function(); +typedef F2>= T Function(); +typedef F3>>= T Function(); +typedef F4>>>= T Function(); +typedef F5>>>>= T Function(); +typedef F6>>>>>= 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] diff --git a/pkg/front_end/parser_testcases/record/record_typedef.dart.scanner.expect b/pkg/front_end/parser_testcases/record/record_typedef.dart.scanner.expect index 4f18c63eeec..84e04b23ca2 100644 --- a/pkg/front_end/parser_testcases/record/record_typedef.dart.scanner.expect +++ b/pkg/front_end/parser_testcases/record/record_typedef.dart.scanner.expect @@ -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 Function(); +typedef F2>= T Function(); +typedef F3>>= T Function(); +typedef F4>>>= T Function(); +typedef F5>>>>= T Function(); +typedef F6>>>>>= 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] diff --git a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart new file mode 100644 index 00000000000..c27a3a36b37 --- /dev/null +++ b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart @@ -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}); +} diff --git a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.expect b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.expect new file mode 100644 index 00000000000..98c07221e07 --- /dev/null +++ b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.expect @@ -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, ) diff --git a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.intertwined.expect new file mode 100644 index 00000000000..2f3af462a92 --- /dev/null +++ b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.intertwined.expect @@ -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, ) diff --git a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.parser.expect b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.parser.expect new file mode 100644 index 00000000000..d32dcd35652 --- /dev/null +++ b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.parser.expect @@ -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] diff --git a/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.scanner.expect b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.scanner.expect new file mode 100644 index 00000000000..d32dcd35652 --- /dev/null +++ b/pkg/front_end/parser_testcases/record/super_parameters_record_type.dart.scanner.expect @@ -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] diff --git a/pkg/front_end/test/spell_checking_list_code.txt b/pkg/front_end/test/spell_checking_list_code.txt index 00f40fb24b7..efe056aacb0 100644 --- a/pkg/front_end/test/spell_checking_list_code.txt +++ b/pkg/front_end/test/spell_checking_list_code.txt @@ -1220,6 +1220,7 @@ sandboxed sanitizing saw say +saying sb sc scc diff --git a/pkg/front_end/test/spell_checking_list_tests.txt b/pkg/front_end/test/spell_checking_list_tests.txt index 4f2db8a76f8..d732698f200 100644 --- a/pkg/front_end/test/spell_checking_list_tests.txt +++ b/pkg/front_end/test/spell_checking_list_tests.txt @@ -125,6 +125,7 @@ cmp cnn coded codepath +coincidences collisions columns commented