| Problems reported: |
| |
| parser/error_recovery/issue_22313:5:20: Each class definition can have at most one extends clause. |
| class Foo extends A, B { |
| ^ |
| |
| parser/error_recovery/issue_22313:9:11: Expected 'extends' instead of this. |
| class Bar extend A, B { |
| ^^^^^^ |
| |
| parser/error_recovery/issue_22313:9:19: Each class definition can have at most one extends clause. |
| class Bar extend A, B { |
| ^ |
| |
| parser/error_recovery/issue_22313:13:11: Expected 'extends' instead of this. |
| class Baz on A, B { |
| ^^ |
| |
| parser/error_recovery/issue_22313:13:15: Each class definition can have at most one extends clause. |
| class Baz on A, B { |
| ^ |
| |
| beginCompilationUnit(class) |
| beginMetadataStar(class) |
| endMetadataStar(0) |
| beginClassOrMixinOrNamedMixinApplicationPrelude(class) |
| handleIdentifier(A, classOrMixinDeclaration) |
| handleNoTypeVariables({) |
| beginClassDeclaration(class, null, null, null, A) |
| handleNoType(A) |
| handleClassExtends(null, 1) |
| handleClassNoWithClause() |
| handleImplements(null, 0) |
| handleClassHeader(class, class, null) |
| beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {) |
| endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, }) |
| endClassDeclaration(class, }) |
| endTopLevelDeclaration(class) |
| beginMetadataStar(class) |
| endMetadataStar(0) |
| beginClassOrMixinOrNamedMixinApplicationPrelude(class) |
| handleIdentifier(B, classOrMixinDeclaration) |
| handleNoTypeVariables({) |
| beginClassDeclaration(class, null, null, null, B) |
| handleNoType(B) |
| handleClassExtends(null, 1) |
| handleClassNoWithClause() |
| handleImplements(null, 0) |
| handleClassHeader(class, class, null) |
| beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {) |
| endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, }) |
| endClassDeclaration(class, }) |
| endTopLevelDeclaration(class) |
| beginMetadataStar(class) |
| endMetadataStar(0) |
| beginClassOrMixinOrNamedMixinApplicationPrelude(class) |
| handleIdentifier(Foo, classOrMixinDeclaration) |
| handleNoTypeVariables(extends) |
| beginClassDeclaration(class, null, null, null, Foo) |
| handleIdentifier(A, typeReference) |
| handleNoTypeArguments(,) |
| handleType(A, null) |
| handleRecoverableError(MultipleExtends, ,, ,) |
| handleIdentifier(B, typeReference) |
| handleNoTypeArguments({) |
| handleType(B, null) |
| handleClassExtends(extends, 2) |
| handleClassNoWithClause() |
| handleImplements(null, 0) |
| handleClassHeader(class, class, null) |
| beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {) |
| beginMetadataStar(Foo) |
| endMetadataStar(0) |
| beginMember() |
| beginMethod(DeclarationKind.Class, null, null, null, null, null, Foo) |
| handleNoType({) |
| handleIdentifier(Foo, methodDeclaration) |
| handleNoTypeVariables(() |
| beginFormalParameters((, MemberKind.NonStaticMethod) |
| endFormalParameters(0, (, ), MemberKind.NonStaticMethod) |
| handleNoInitializers() |
| handleAsyncModifier(null, null) |
| beginBlockFunctionBody({) |
| endBlockFunctionBody(0, {, }) |
| endClassConstructor(null, Foo, (, null, }) |
| endMember() |
| endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, }) |
| endClassDeclaration(class, }) |
| endTopLevelDeclaration(class) |
| beginMetadataStar(class) |
| endMetadataStar(0) |
| beginClassOrMixinOrNamedMixinApplicationPrelude(class) |
| handleIdentifier(Bar, classOrMixinDeclaration) |
| handleNoTypeVariables(extend) |
| beginClassDeclaration(class, null, null, null, Bar) |
| handleNoType(Bar) |
| handleClassExtends(null, 1) |
| handleClassNoWithClause() |
| handleImplements(null, 0) |
| handleClassHeader(class, class, null) |
| handleRecoverableError(Message[ExpectedInstead, Expected 'extends' instead of this., null, {string: extends}], extend, extend) |
| handleIdentifier(A, typeReference) |
| handleNoTypeArguments(,) |
| handleType(A, null) |
| handleRecoverableError(MultipleExtends, ,, ,) |
| handleIdentifier(B, typeReference) |
| handleNoTypeArguments({) |
| handleType(B, null) |
| handleClassExtends(extend, 2) |
| handleClassNoWithClause() |
| handleImplements(null, 0) |
| handleRecoverClassHeader() |
| beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {) |
| beginMetadataStar(Bar) |
| endMetadataStar(0) |
| beginMember() |
| beginMethod(DeclarationKind.Class, null, null, null, null, null, Bar) |
| handleNoType({) |
| handleIdentifier(Bar, methodDeclaration) |
| handleNoTypeVariables(() |
| beginFormalParameters((, MemberKind.NonStaticMethod) |
| endFormalParameters(0, (, ), MemberKind.NonStaticMethod) |
| handleNoInitializers() |
| handleAsyncModifier(null, null) |
| beginBlockFunctionBody({) |
| endBlockFunctionBody(0, {, }) |
| endClassConstructor(null, Bar, (, null, }) |
| endMember() |
| endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, }) |
| endClassDeclaration(class, }) |
| endTopLevelDeclaration(class) |
| beginMetadataStar(class) |
| endMetadataStar(0) |
| beginClassOrMixinOrNamedMixinApplicationPrelude(class) |
| handleIdentifier(Baz, classOrMixinDeclaration) |
| handleNoTypeVariables(on) |
| beginClassDeclaration(class, null, null, null, Baz) |
| handleNoType(Baz) |
| handleClassExtends(null, 1) |
| handleClassNoWithClause() |
| handleImplements(null, 0) |
| handleClassHeader(class, class, null) |
| handleRecoverableError(Message[ExpectedInstead, Expected 'extends' instead of this., null, {string: extends}], on, on) |
| handleIdentifier(A, typeReference) |
| handleNoTypeArguments(,) |
| handleType(A, null) |
| handleRecoverableError(MultipleExtends, ,, ,) |
| handleIdentifier(B, typeReference) |
| handleNoTypeArguments({) |
| handleType(B, null) |
| handleClassExtends(on, 2) |
| handleClassNoWithClause() |
| handleImplements(null, 0) |
| handleRecoverClassHeader() |
| beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {) |
| beginMetadataStar(Baz) |
| endMetadataStar(0) |
| beginMember() |
| beginMethod(DeclarationKind.Class, null, null, null, null, null, Baz) |
| handleNoType({) |
| handleIdentifier(Baz, methodDeclaration) |
| handleNoTypeVariables(() |
| beginFormalParameters((, MemberKind.NonStaticMethod) |
| endFormalParameters(0, (, ), MemberKind.NonStaticMethod) |
| handleNoInitializers() |
| handleAsyncModifier(null, null) |
| beginBlockFunctionBody({) |
| endBlockFunctionBody(0, {, }) |
| endClassConstructor(null, Baz, (, null, }) |
| endMember() |
| endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, }) |
| endClassDeclaration(class, }) |
| endTopLevelDeclaration() |
| endCompilationUnit(5, ) |