Fix parser to use correct begin token, to get documentation comments from it.
Change-Id: I9505353c9c6c00082e588aced34e8151c7ab22b7 Bug: https://github.com/dart-lang/sdk/issues/51447 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284441 Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
committed by
Commit Queue
parent
5b55ed416f
commit
67e7c96962
@@ -2544,7 +2544,16 @@ class Parser {
|
||||
Token? mixinToken,
|
||||
Token classKeyword) {
|
||||
assert(optional('class', classKeyword));
|
||||
Token begin = abstractToken ?? classKeyword;
|
||||
Token begin = abstractToken ??
|
||||
macroToken ??
|
||||
inlineToken ??
|
||||
sealedToken ??
|
||||
baseToken ??
|
||||
interfaceToken ??
|
||||
finalToken ??
|
||||
augmentToken ??
|
||||
mixinToken ??
|
||||
classKeyword;
|
||||
listener.beginClassOrMixinOrNamedMixinApplicationPrelude(begin);
|
||||
Token name = ensureIdentifier(
|
||||
classKeyword, IdentifierContext.classOrMixinOrExtensionDeclaration);
|
||||
|
||||
@@ -4755,7 +4755,13 @@ class AstBuilder extends StackListener {
|
||||
var typeParameters = pop() as TypeParameterListImpl?;
|
||||
var name = pop() as SimpleIdentifierImpl;
|
||||
var metadata = pop() as List<AnnotationImpl>?;
|
||||
var comment = _findComment(metadata, mixinKeyword);
|
||||
|
||||
final begin = sealedKeyword ??
|
||||
baseKeyword ??
|
||||
interfaceKeyword ??
|
||||
finalKeyword ??
|
||||
mixinKeyword;
|
||||
var comment = _findComment(metadata, begin);
|
||||
|
||||
_classLikeBuilder = _MixinDeclarationBuilder(
|
||||
comment: comment,
|
||||
|
||||
@@ -5,11 +5,13 @@
|
||||
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import '../dart/resolution/node_text_expectations.dart';
|
||||
import '../diagnostics/parser_diagnostics.dart';
|
||||
|
||||
main() {
|
||||
defineReflectiveSuite(() {
|
||||
defineReflectiveTests(AstBuilderTest);
|
||||
defineReflectiveTests(UpdateNodeTextExpectations);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,15 +19,19 @@ main() {
|
||||
class AstBuilderTest extends ParserDiagnosticsTest {
|
||||
void test_class_abstract_sealed() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
abstract sealed class A {}
|
||||
''');
|
||||
parseResult.assertErrors([
|
||||
error(ParserErrorCode.ABSTRACT_SEALED_CLASS, 9, 6),
|
||||
error(ParserErrorCode.ABSTRACT_SEALED_CLASS, 18, 6),
|
||||
]);
|
||||
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
abstractKeyword: abstract
|
||||
sealedKeyword: sealed
|
||||
classKeyword: class
|
||||
@@ -37,6 +43,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_augment() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
augment class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -44,6 +51,9 @@ augment class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
augmentKeyword: augment
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -54,6 +64,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_base() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
base class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -61,6 +72,9 @@ base class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
baseKeyword: base
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -269,6 +283,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_final() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
final class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -276,6 +291,9 @@ final class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
finalKeyword: final
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -316,6 +334,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_inline() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
inline class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -323,6 +342,9 @@ inline class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
inlineKeyword: inline
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -333,6 +355,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_interface() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
interface class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -340,6 +363,9 @@ interface class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
interfaceKeyword: interface
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -350,6 +376,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_macro() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
macro class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -357,6 +384,9 @@ macro class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
macroKeyword: macro
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -367,6 +397,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_mixin() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
mixin class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -374,6 +405,9 @@ mixin class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
mixinKeyword: mixin
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -384,6 +418,7 @@ ClassDeclaration
|
||||
|
||||
void test_class_sealed() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
sealed class A {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -391,6 +426,9 @@ sealed class A {}
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
sealedKeyword: sealed
|
||||
classKeyword: class
|
||||
name: A
|
||||
@@ -401,10 +439,11 @@ ClassDeclaration
|
||||
|
||||
void test_class_sealed_abstract() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
sealed abstract class A {}
|
||||
''');
|
||||
parseResult.assertErrors([
|
||||
error(ParserErrorCode.ABSTRACT_SEALED_CLASS, 0, 6),
|
||||
error(ParserErrorCode.ABSTRACT_SEALED_CLASS, 9, 6),
|
||||
]);
|
||||
|
||||
var node = parseResult.findNode.classDeclaration('class A {}');
|
||||
@@ -449,6 +488,7 @@ ClassDeclaration
|
||||
void test_classAlias_macro() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
mixin M {}
|
||||
/// text
|
||||
macro class A = Object with M;
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -456,6 +496,9 @@ macro class A = Object with M;
|
||||
var node = parseResult.findNode.classTypeAlias('class A');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassTypeAlias
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
typedefKeyword: class
|
||||
name: A
|
||||
equals: =
|
||||
@@ -476,6 +519,7 @@ ClassTypeAlias
|
||||
void test_classAlias_mixin() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
mixin M {}
|
||||
/// text
|
||||
mixin class A = Object with M;
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -483,6 +527,9 @@ mixin class A = Object with M;
|
||||
var node = parseResult.findNode.classTypeAlias('class A');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassTypeAlias
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
typedefKeyword: class
|
||||
name: A
|
||||
equals: =
|
||||
@@ -528,6 +575,7 @@ ClassTypeAlias
|
||||
void test_classTypeAlias_base() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
mixin M {}
|
||||
/// text
|
||||
base class A = Object with M;
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -535,6 +583,9 @@ base class A = Object with M;
|
||||
var node = parseResult.findNode.classTypeAlias('class A');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassTypeAlias
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
typedefKeyword: class
|
||||
name: A
|
||||
equals: =
|
||||
@@ -555,6 +606,7 @@ ClassTypeAlias
|
||||
void test_classTypeAlias_final() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
mixin M {}
|
||||
/// text
|
||||
final class A = Object with M;
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -562,6 +614,9 @@ final class A = Object with M;
|
||||
var node = parseResult.findNode.classTypeAlias('class A');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassTypeAlias
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
typedefKeyword: class
|
||||
name: A
|
||||
equals: =
|
||||
@@ -622,6 +677,7 @@ ClassTypeAlias
|
||||
void test_classTypeAlias_interface() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
mixin M {}
|
||||
/// text
|
||||
interface class A = Object with M;
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -629,6 +685,9 @@ interface class A = Object with M;
|
||||
var node = parseResult.findNode.classTypeAlias('class A');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassTypeAlias
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
typedefKeyword: class
|
||||
name: A
|
||||
equals: =
|
||||
@@ -649,6 +708,7 @@ ClassTypeAlias
|
||||
void test_classTypeAlias_sealed() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
mixin M {}
|
||||
/// text
|
||||
sealed class A = Object with M;
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -656,6 +716,9 @@ sealed class A = Object with M;
|
||||
var node = parseResult.findNode.classTypeAlias('class A');
|
||||
assertParsedNodeText(node, r'''
|
||||
ClassTypeAlias
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
typedefKeyword: class
|
||||
name: A
|
||||
equals: =
|
||||
@@ -1088,6 +1151,7 @@ LibraryDirective
|
||||
|
||||
void test_mixin_base() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
base mixin M {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -1095,6 +1159,9 @@ base mixin M {}
|
||||
final node = parseResult.findNode.mixinDeclaration('mixin M');
|
||||
assertParsedNodeText(node, r'''
|
||||
MixinDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
baseKeyword: base
|
||||
mixinKeyword: mixin
|
||||
name: M
|
||||
@@ -1105,6 +1172,7 @@ MixinDeclaration
|
||||
|
||||
void test_mixin_final() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
final mixin M {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -1112,6 +1180,9 @@ final mixin M {}
|
||||
final node = parseResult.findNode.mixinDeclaration('mixin M');
|
||||
assertParsedNodeText(node, r'''
|
||||
MixinDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
finalKeyword: final
|
||||
mixinKeyword: mixin
|
||||
name: M
|
||||
@@ -1159,6 +1230,7 @@ MixinDeclaration
|
||||
|
||||
void test_mixin_interface() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
interface mixin M {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -1166,6 +1238,9 @@ interface mixin M {}
|
||||
final node = parseResult.findNode.mixinDeclaration('mixin M');
|
||||
assertParsedNodeText(node, r'''
|
||||
MixinDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
interfaceKeyword: interface
|
||||
mixinKeyword: mixin
|
||||
name: M
|
||||
@@ -1206,6 +1281,7 @@ MixinDeclaration
|
||||
|
||||
void test_mixin_sealed() {
|
||||
var parseResult = parseStringWithErrors(r'''
|
||||
/// text
|
||||
sealed mixin M {}
|
||||
''');
|
||||
parseResult.assertNoErrors();
|
||||
@@ -1213,6 +1289,9 @@ sealed mixin M {}
|
||||
final node = parseResult.findNode.mixinDeclaration('mixin M');
|
||||
assertParsedNodeText(node, r'''
|
||||
MixinDeclaration
|
||||
documentationComment: Comment
|
||||
tokens
|
||||
/// text
|
||||
sealedKeyword: sealed
|
||||
mixinKeyword: mixin
|
||||
name: M
|
||||
|
||||
@@ -2042,9 +2042,11 @@ Expected parent: (${parent.runtimeType}) $parent
|
||||
_withIndent(() {
|
||||
for (var token in tokens) {
|
||||
_writelnWithIndent(token.lexeme);
|
||||
_withIndent(() {
|
||||
_writeOffset('offset', token.offset);
|
||||
});
|
||||
if (_withOffsets) {
|
||||
_withIndent(() {
|
||||
_writeOffset('offset', token.offset);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -182,15 +182,15 @@ beginCompilationUnit(augment)
|
||||
endTopLevelDeclaration(augment)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
beginClassDeclaration(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
handleNoType(Class)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(augment, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
@@ -343,6 +343,6 @@ beginCompilationUnit(augment)
|
||||
endClassMethod(null, void, (, null, })
|
||||
endMember()
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 5, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(augment, })
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(6, )
|
||||
|
||||
@@ -413,13 +413,13 @@ parseUnit(augment)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, null, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, null, augment, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseClass(Class, class, class, Class)
|
||||
parseClassHeaderOpt(Class, class, class)
|
||||
listener: beginClassDeclaration(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseClass(Class, augment, class, Class)
|
||||
parseClassHeaderOpt(Class, augment, class)
|
||||
parseClassExtendsOpt(Class)
|
||||
listener: handleNoType(Class)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -427,7 +427,7 @@ parseUnit(augment)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(Class)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(augment, class, null)
|
||||
parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, augment)
|
||||
@@ -820,7 +820,7 @@ parseUnit(augment)
|
||||
listener: endMember()
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 5, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(augment, })
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(augment)
|
||||
listener: endCompilationUnit(6, )
|
||||
|
||||
@@ -170,18 +170,18 @@ beginCompilationUnit(augment)
|
||||
endTopLevelDeclaration(augment)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
beginClassDeclaration(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
handleNoType(Class)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(augment, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(augment, })
|
||||
endTopLevelDeclaration(augment)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
@@ -200,10 +200,10 @@ beginCompilationUnit(augment)
|
||||
endTopLevelDeclaration(augment)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
beginNamedMixinApplication(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -213,7 +213,7 @@ beginCompilationUnit(augment)
|
||||
handleType(Mixin, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(augment, class, =, null, ;)
|
||||
endTopLevelDeclaration(augment)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
|
||||
+10
-10
@@ -326,13 +326,13 @@ parseUnit(augment)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(;, class, null, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, null, augment, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseClass(Class, class, class, Class)
|
||||
parseClassHeaderOpt(Class, class, class)
|
||||
listener: beginClassDeclaration(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseClass(Class, augment, class, Class)
|
||||
parseClassHeaderOpt(Class, augment, class)
|
||||
parseClassExtendsOpt(Class)
|
||||
listener: handleNoType(Class)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -340,12 +340,12 @@ parseUnit(augment)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(Class)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(augment, class, null)
|
||||
parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(augment, })
|
||||
listener: endTopLevelDeclaration(augment)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -380,12 +380,12 @@ parseUnit(augment)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, null, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, null, augment, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseNamedMixinApplication(Class, class, class)
|
||||
listener: beginNamedMixinApplication(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseNamedMixinApplication(Class, augment, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -398,7 +398,7 @@ parseUnit(augment)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(Mixin)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(augment, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration(augment)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
|
||||
@@ -488,18 +488,18 @@ beginCompilationUnit(augment)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
beginClassDeclaration(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
handleNoType(Class)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(augment, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(augment, })
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
@@ -520,10 +520,10 @@ beginCompilationUnit(augment)
|
||||
beginMetadataStar(augment)
|
||||
endMetadataStar(0)
|
||||
handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
beginNamedMixinApplication(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -533,7 +533,7 @@ beginCompilationUnit(augment)
|
||||
handleType(Mixin, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(augment, class, =, null, ;)
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
|
||||
+10
-10
@@ -694,13 +694,13 @@ parseUnit(augment)
|
||||
reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
|
||||
listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, null, augment, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseClass(Class, class, class, Class)
|
||||
parseClassHeaderOpt(Class, class, class)
|
||||
listener: beginClassDeclaration(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseClass(Class, augment, class, Class)
|
||||
parseClassHeaderOpt(Class, augment, class)
|
||||
parseClassExtendsOpt(Class)
|
||||
listener: handleNoType(Class)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -708,12 +708,12 @@ parseUnit(augment)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(Class)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(augment, class, null)
|
||||
parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(augment, })
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -752,12 +752,12 @@ parseUnit(augment)
|
||||
reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
|
||||
listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, null, augment, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(augment)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseNamedMixinApplication(Class, class, class)
|
||||
listener: beginNamedMixinApplication(augment, null, null, null, null, null, null, null, augment, null, Class)
|
||||
parseNamedMixinApplication(Class, augment, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -770,7 +770,7 @@ parseUnit(augment)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(Mixin)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(augment, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
|
||||
+7
-7
@@ -1,18 +1,18 @@
|
||||
beginCompilationUnit(base)
|
||||
beginMetadataStar(base)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(base)
|
||||
handleIdentifier(A, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, null, base, null, null, null, null, A)
|
||||
beginClassDeclaration(base, null, null, null, null, base, null, null, null, null, A)
|
||||
handleNoType(A)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(base, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(base, })
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
@@ -44,10 +44,10 @@ beginCompilationUnit(base)
|
||||
endTopLevelDeclaration(base)
|
||||
beginMetadataStar(base)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(base)
|
||||
handleIdentifier(C, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, null, null, base, null, null, null, null, C)
|
||||
beginNamedMixinApplication(base, null, null, null, null, base, null, null, null, null, C)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -57,6 +57,6 @@ beginCompilationUnit(base)
|
||||
handleType(M, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(base, class, =, null, ;)
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(4, )
|
||||
|
||||
+10
-10
@@ -8,13 +8,13 @@ parseUnit(base)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, class, null, null, null, base, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, base, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(base)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(A, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, null, base, null, null, null, null, A)
|
||||
parseClass(A, class, class, A)
|
||||
parseClassHeaderOpt(A, class, class)
|
||||
listener: beginClassDeclaration(base, null, null, null, null, base, null, null, null, null, A)
|
||||
parseClass(A, base, class, A)
|
||||
parseClassHeaderOpt(A, base, class)
|
||||
parseClassExtendsOpt(A)
|
||||
listener: handleNoType(A)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -22,12 +22,12 @@ parseUnit(base)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(A)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(base, class, null)
|
||||
parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, A)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(base, })
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -85,12 +85,12 @@ parseUnit(base)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, null, null, null, base, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, base, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(base)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(C, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, null, null, base, null, null, null, null, C)
|
||||
parseNamedMixinApplication(C, class, class)
|
||||
listener: beginNamedMixinApplication(base, null, null, null, null, base, null, null, null, null, C)
|
||||
parseNamedMixinApplication(C, base, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -103,7 +103,7 @@ parseUnit(base)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(M)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(base, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(base)
|
||||
listener: endCompilationUnit(4, )
|
||||
|
||||
+7
-7
@@ -1,18 +1,18 @@
|
||||
beginCompilationUnit(final)
|
||||
beginMetadataStar(final)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(final)
|
||||
handleIdentifier(A, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, null, null, null, final, null, null, A)
|
||||
beginClassDeclaration(final, null, null, null, null, null, null, final, null, null, A)
|
||||
handleNoType(A)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(final, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(final, })
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
@@ -44,10 +44,10 @@ beginCompilationUnit(final)
|
||||
endTopLevelDeclaration(final)
|
||||
beginMetadataStar(final)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(final)
|
||||
handleIdentifier(C, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, null, null, null, null, final, null, null, C)
|
||||
beginNamedMixinApplication(final, null, null, null, null, null, null, final, null, null, C)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -57,6 +57,6 @@ beginCompilationUnit(final)
|
||||
handleType(M, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(final, class, =, null, ;)
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(4, )
|
||||
|
||||
+10
-10
@@ -8,13 +8,13 @@ parseUnit(final)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, class, null, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, final, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(final)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(A, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, null, null, null, final, null, null, A)
|
||||
parseClass(A, class, class, A)
|
||||
parseClassHeaderOpt(A, class, class)
|
||||
listener: beginClassDeclaration(final, null, null, null, null, null, null, final, null, null, A)
|
||||
parseClass(A, final, class, A)
|
||||
parseClassHeaderOpt(A, final, class)
|
||||
parseClassExtendsOpt(A)
|
||||
listener: handleNoType(A)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -22,12 +22,12 @@ parseUnit(final)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(A)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(final, class, null)
|
||||
parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, A)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(final, })
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -85,12 +85,12 @@ parseUnit(final)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, null, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, final, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(final)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(C, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, null, null, null, null, final, null, null, C)
|
||||
parseNamedMixinApplication(C, class, class)
|
||||
listener: beginNamedMixinApplication(final, null, null, null, null, null, null, final, null, null, C)
|
||||
parseNamedMixinApplication(C, final, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -103,7 +103,7 @@ parseUnit(final)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(M)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(final, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(final)
|
||||
listener: endCompilationUnit(4, )
|
||||
|
||||
+7
-7
@@ -1,18 +1,18 @@
|
||||
beginCompilationUnit(interface)
|
||||
beginMetadataStar(interface)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(interface)
|
||||
handleIdentifier(A, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, null, null, interface, null, null, null, A)
|
||||
beginClassDeclaration(interface, null, null, null, null, null, interface, null, null, null, A)
|
||||
handleNoType(A)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(interface, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(interface, })
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
@@ -44,10 +44,10 @@ beginCompilationUnit(interface)
|
||||
endTopLevelDeclaration(interface)
|
||||
beginMetadataStar(interface)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(interface)
|
||||
handleIdentifier(C, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, null, null, null, interface, null, null, null, C)
|
||||
beginNamedMixinApplication(interface, null, null, null, null, null, interface, null, null, null, C)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -57,6 +57,6 @@ beginCompilationUnit(interface)
|
||||
handleType(M, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(interface, class, =, null, ;)
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(4, )
|
||||
|
||||
+10
-10
@@ -8,13 +8,13 @@ parseUnit(interface)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, class, null, null, null, null, interface, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, interface, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(interface)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(A, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, null, null, interface, null, null, null, A)
|
||||
parseClass(A, class, class, A)
|
||||
parseClassHeaderOpt(A, class, class)
|
||||
listener: beginClassDeclaration(interface, null, null, null, null, null, interface, null, null, null, A)
|
||||
parseClass(A, interface, class, A)
|
||||
parseClassHeaderOpt(A, interface, class)
|
||||
parseClassExtendsOpt(A)
|
||||
listener: handleNoType(A)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -22,12 +22,12 @@ parseUnit(interface)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(A)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(interface, class, null)
|
||||
parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, A)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(interface, })
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -85,12 +85,12 @@ parseUnit(interface)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, null, null, null, null, interface, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, interface, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(interface)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(C, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, null, null, null, interface, null, null, null, C)
|
||||
parseNamedMixinApplication(C, class, class)
|
||||
listener: beginNamedMixinApplication(interface, null, null, null, null, null, interface, null, null, null, C)
|
||||
parseNamedMixinApplication(C, interface, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -103,7 +103,7 @@ parseUnit(interface)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(M)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(interface, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(interface)
|
||||
listener: endCompilationUnit(4, )
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
beginCompilationUnit(mixin)
|
||||
beginMetadataStar(mixin)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
|
||||
handleIdentifier(A, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, null, null, null, null, null, mixin, A)
|
||||
beginClassDeclaration(mixin, null, null, null, null, null, null, null, null, mixin, A)
|
||||
handleNoType(A)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(mixin, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(mixin, })
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
@@ -44,10 +44,10 @@ beginCompilationUnit(mixin)
|
||||
endTopLevelDeclaration(mixin)
|
||||
beginMetadataStar(mixin)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
|
||||
handleIdentifier(C, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, null, null, null, null, null, null, mixin, C)
|
||||
beginNamedMixinApplication(mixin, null, null, null, null, null, null, null, null, mixin, C)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -57,6 +57,6 @@ beginCompilationUnit(mixin)
|
||||
handleType(M, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(mixin, class, =, null, ;)
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(4, )
|
||||
|
||||
+10
-10
@@ -8,13 +8,13 @@ parseUnit(mixin)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, mixin, null, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, null, null, mixin, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(A, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, null, null, null, null, null, mixin, A)
|
||||
parseClass(A, class, class, A)
|
||||
parseClassHeaderOpt(A, class, class)
|
||||
listener: beginClassDeclaration(mixin, null, null, null, null, null, null, null, null, mixin, A)
|
||||
parseClass(A, mixin, class, A)
|
||||
parseClassHeaderOpt(A, mixin, class)
|
||||
parseClassExtendsOpt(A)
|
||||
listener: handleNoType(A)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -22,12 +22,12 @@ parseUnit(mixin)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(A)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(mixin, class, null)
|
||||
parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, A)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(mixin, })
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -85,12 +85,12 @@ parseUnit(mixin)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, mixin, null, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, null, null, null, null, null, mixin, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(C, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, null, null, null, null, null, null, mixin, C)
|
||||
parseNamedMixinApplication(C, class, class)
|
||||
listener: beginNamedMixinApplication(mixin, null, null, null, null, null, null, null, null, mixin, C)
|
||||
parseNamedMixinApplication(C, mixin, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -103,7 +103,7 @@ parseUnit(mixin)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(M)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(mixin, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(mixin)
|
||||
listener: endCompilationUnit(4, )
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
beginCompilationUnit(inline)
|
||||
beginMetadataStar(inline)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(inline)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, inline, null, null, null, null, null, null, Class)
|
||||
beginClassDeclaration(inline, null, null, inline, null, null, null, null, null, null, Class)
|
||||
handleNoType(Class)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(inline, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(inline, })
|
||||
endTopLevelDeclaration(inline)
|
||||
beginMetadataStar(inline)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(inline)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, inline, null, null, null, null, null, null, Class)
|
||||
beginNamedMixinApplication(inline, null, null, inline, null, null, null, null, null, null, Class)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -29,6 +29,6 @@ beginCompilationUnit(inline)
|
||||
handleType(Mixin, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(inline, class, =, null, ;)
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(2, )
|
||||
|
||||
@@ -8,13 +8,13 @@ parseUnit(inline)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, class, null, inline, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, inline, null, null, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(inline)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, inline, null, null, null, null, null, null, Class)
|
||||
parseClass(Class, class, class, Class)
|
||||
parseClassHeaderOpt(Class, class, class)
|
||||
listener: beginClassDeclaration(inline, null, null, inline, null, null, null, null, null, null, Class)
|
||||
parseClass(Class, inline, class, Class)
|
||||
parseClassHeaderOpt(Class, inline, class)
|
||||
parseClassExtendsOpt(Class)
|
||||
listener: handleNoType(Class)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -22,12 +22,12 @@ parseUnit(inline)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(Class)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(inline, class, null)
|
||||
parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(inline, })
|
||||
listener: endTopLevelDeclaration(inline)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -35,12 +35,12 @@ parseUnit(inline)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, null, inline, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, inline, null, null, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(inline)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, inline, null, null, null, null, null, null, Class)
|
||||
parseNamedMixinApplication(Class, class, class)
|
||||
listener: beginNamedMixinApplication(inline, null, null, inline, null, null, null, null, null, null, Class)
|
||||
parseNamedMixinApplication(Class, inline, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -53,7 +53,7 @@ parseUnit(inline)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(Mixin)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(inline, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(inline)
|
||||
listener: endCompilationUnit(2, )
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
beginCompilationUnit(macro)
|
||||
beginMetadataStar(macro)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(macro)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, macro, null, null, null, null, null, null, null, Class)
|
||||
beginClassDeclaration(macro, null, macro, null, null, null, null, null, null, null, Class)
|
||||
handleNoType(Class)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(macro, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(macro, })
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
@@ -31,10 +31,10 @@ beginCompilationUnit(macro)
|
||||
endTopLevelDeclaration(macro)
|
||||
beginMetadataStar(macro)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(macro)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, macro, null, null, null, null, null, null, null, Class)
|
||||
beginNamedMixinApplication(macro, null, macro, null, null, null, null, null, null, null, Class)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -44,7 +44,7 @@ beginCompilationUnit(macro)
|
||||
handleType(Mixin, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(macro, class, =, null, ;)
|
||||
endTopLevelDeclaration(abstract)
|
||||
beginMetadataStar(abstract)
|
||||
endMetadataStar(0)
|
||||
|
||||
@@ -8,13 +8,13 @@ parseUnit(macro)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, class, macro, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, macro, null, null, null, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(macro)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, macro, null, null, null, null, null, null, null, Class)
|
||||
parseClass(Class, class, class, Class)
|
||||
parseClassHeaderOpt(Class, class, class)
|
||||
listener: beginClassDeclaration(macro, null, macro, null, null, null, null, null, null, null, Class)
|
||||
parseClass(Class, macro, class, Class)
|
||||
parseClassHeaderOpt(Class, macro, class)
|
||||
parseClassExtendsOpt(Class)
|
||||
listener: handleNoType(Class)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -22,12 +22,12 @@ parseUnit(macro)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(Class)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(macro, class, null)
|
||||
parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(macro, })
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -62,12 +62,12 @@ parseUnit(macro)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, macro, null, null, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, macro, null, null, null, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(macro)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, macro, null, null, null, null, null, null, null, Class)
|
||||
parseNamedMixinApplication(Class, class, class)
|
||||
listener: beginNamedMixinApplication(macro, null, macro, null, null, null, null, null, null, null, Class)
|
||||
parseNamedMixinApplication(Class, macro, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -80,7 +80,7 @@ parseUnit(macro)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(Mixin)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(macro, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration(abstract)
|
||||
parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(;)
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
beginCompilationUnit(sealed)
|
||||
beginMetadataStar(sealed)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(sealed)
|
||||
handleIdentifier(Class, classOrMixinDeclaration)
|
||||
handleNoTypeVariables({)
|
||||
beginClassDeclaration(class, null, null, null, sealed, null, null, null, null, null, Class)
|
||||
beginClassDeclaration(sealed, null, null, null, sealed, null, null, null, null, null, Class)
|
||||
handleNoType(Class)
|
||||
handleClassExtends(null, 1)
|
||||
handleClassNoWithClause()
|
||||
handleImplements(null, 0)
|
||||
handleClassHeader(class, class, null)
|
||||
handleClassHeader(sealed, class, null)
|
||||
beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
endClassDeclaration(class, })
|
||||
endClassDeclaration(sealed, })
|
||||
endTopLevelDeclaration(mixin)
|
||||
beginMetadataStar(mixin)
|
||||
endMetadataStar(0)
|
||||
@@ -29,10 +29,10 @@ beginCompilationUnit(sealed)
|
||||
endTopLevelDeclaration(sealed)
|
||||
beginMetadataStar(sealed)
|
||||
endMetadataStar(0)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
beginClassOrMixinOrNamedMixinApplicationPrelude(sealed)
|
||||
handleIdentifier(A, classOrMixinDeclaration)
|
||||
handleNoTypeVariables(=)
|
||||
beginNamedMixinApplication(class, null, null, null, sealed, null, null, null, null, null, A)
|
||||
beginNamedMixinApplication(sealed, null, null, null, sealed, null, null, null, null, null, A)
|
||||
handleIdentifier(Object, typeReference)
|
||||
handleNoTypeArguments(with)
|
||||
handleType(Object, null)
|
||||
@@ -42,6 +42,6 @@ beginCompilationUnit(sealed)
|
||||
handleType(M, null)
|
||||
endTypeList(1)
|
||||
handleNamedMixinApplicationWithClause(with)
|
||||
endNamedMixinApplication(class, class, =, null, ;)
|
||||
endNamedMixinApplication(sealed, class, =, null, ;)
|
||||
endTopLevelDeclaration()
|
||||
endCompilationUnit(3, )
|
||||
|
||||
@@ -8,13 +8,13 @@ parseUnit(sealed)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(, class, null, null, sealed, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, sealed, null, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(sealed)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(Class, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables({)
|
||||
listener: beginClassDeclaration(class, null, null, null, sealed, null, null, null, null, null, Class)
|
||||
parseClass(Class, class, class, Class)
|
||||
parseClassHeaderOpt(Class, class, class)
|
||||
listener: beginClassDeclaration(sealed, null, null, null, sealed, null, null, null, null, null, Class)
|
||||
parseClass(Class, sealed, class, Class)
|
||||
parseClassHeaderOpt(Class, sealed, class)
|
||||
parseClassExtendsOpt(Class)
|
||||
listener: handleNoType(Class)
|
||||
listener: handleClassExtends(null, 1)
|
||||
@@ -22,12 +22,12 @@ parseUnit(sealed)
|
||||
listener: handleClassNoWithClause()
|
||||
parseClassOrMixinOrEnumImplementsOpt(Class)
|
||||
listener: handleImplements(null, 0)
|
||||
listener: handleClassHeader(class, class, null)
|
||||
listener: handleClassHeader(sealed, class, null)
|
||||
parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
|
||||
listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
|
||||
notEofOrValue(}, })
|
||||
listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
|
||||
listener: endClassDeclaration(class, })
|
||||
listener: endClassDeclaration(sealed, })
|
||||
listener: endTopLevelDeclaration(mixin)
|
||||
parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
|
||||
parseMetadataStar(})
|
||||
@@ -58,12 +58,12 @@ parseUnit(sealed)
|
||||
listener: endMetadataStar(0)
|
||||
parseTopLevelKeywordDeclaration(}, class, null, null, sealed, null, null, Instance of 'DirectiveContext')
|
||||
parseClassOrNamedMixinApplication(null, null, null, sealed, null, null, null, null, null, class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
|
||||
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(sealed)
|
||||
ensureIdentifier(class, classOrMixinDeclaration)
|
||||
listener: handleIdentifier(A, classOrMixinDeclaration)
|
||||
listener: handleNoTypeVariables(=)
|
||||
listener: beginNamedMixinApplication(class, null, null, null, sealed, null, null, null, null, null, A)
|
||||
parseNamedMixinApplication(A, class, class)
|
||||
listener: beginNamedMixinApplication(sealed, null, null, null, sealed, null, null, null, null, null, A)
|
||||
parseNamedMixinApplication(A, sealed, class)
|
||||
listener: handleIdentifier(Object, typeReference)
|
||||
listener: handleNoTypeArguments(with)
|
||||
listener: handleType(Object, null)
|
||||
@@ -76,7 +76,7 @@ parseUnit(sealed)
|
||||
listener: endTypeList(1)
|
||||
listener: handleNamedMixinApplicationWithClause(with)
|
||||
ensureSemicolon(M)
|
||||
listener: endNamedMixinApplication(class, class, =, null, ;)
|
||||
listener: endNamedMixinApplication(sealed, class, =, null, ;)
|
||||
listener: endTopLevelDeclaration()
|
||||
reportAllErrorTokens(sealed)
|
||||
listener: endCompilationUnit(3, )
|
||||
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
base
|
||||
class A {}
|
||||
base class A {}
|
||||
abstract base class B {}
|
||||
base
|
||||
mixin M {}
|
||||
base
|
||||
class C = Object with M;
|
||||
base class C = Object with M;
|
||||
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
final
|
||||
class A {}
|
||||
final class A {}
|
||||
abstract final class B {}
|
||||
final
|
||||
mixin M {}
|
||||
final
|
||||
class C = Object with M;
|
||||
final class C = Object with M;
|
||||
|
||||
+2
-4
@@ -1,7 +1,5 @@
|
||||
interface
|
||||
class A {}
|
||||
interface class A {}
|
||||
abstract interface class B {}
|
||||
interface
|
||||
mixin M {}
|
||||
interface
|
||||
class C = Object with M;
|
||||
interface class C = Object with M;
|
||||
|
||||
+2
-4
@@ -1,9 +1,7 @@
|
||||
mixin
|
||||
class A {}
|
||||
mixin class A {}
|
||||
abstract mixin class B {}
|
||||
mixin M {}
|
||||
mixin
|
||||
class C = Object with M;
|
||||
mixin class C = Object with M;
|
||||
class AWith with A {}
|
||||
class BWith with B {}
|
||||
class CWith with C {}
|
||||
|
||||
+9
-18
@@ -1,45 +1,36 @@
|
||||
mixin
|
||||
class ErrorMixinClass {
|
||||
mixin class ErrorMixinClass {
|
||||
final int foo;
|
||||
ErrorMixinClass(this.foo);
|
||||
}
|
||||
mixin
|
||||
class ErrorMixinClassNamed {
|
||||
mixin class ErrorMixinClassNamed {
|
||||
final int foo;
|
||||
ErrorMixinClassNamed.named(this.foo);
|
||||
}
|
||||
mixin
|
||||
class ErrorMixinClassRedirect {
|
||||
mixin class ErrorMixinClassRedirect {
|
||||
int foo = 0;
|
||||
ErrorMixinClassRedirect.named(int f) {}
|
||||
ErrorMixinClassRedirect.x(int f) : this.named(f);
|
||||
}
|
||||
mixin
|
||||
class ErrorMixinClassExternal {
|
||||
mixin class ErrorMixinClassExternal {
|
||||
external ErrorMixinClassExternal();
|
||||
}
|
||||
mixin
|
||||
class ErrorMixinClassSuper {
|
||||
mixin class ErrorMixinClassSuper {
|
||||
ErrorMixinClassSuper(): super();
|
||||
}
|
||||
mixin
|
||||
class ErrorMixinClassBody {
|
||||
mixin class ErrorMixinClassBody {
|
||||
ErrorMixinClassBody() {}
|
||||
}
|
||||
mixin
|
||||
class MixinClassConstructor {
|
||||
mixin class MixinClassConstructor {
|
||||
int foo = 0;
|
||||
MixinClassConstructor();
|
||||
MixinClassConstructor.named();
|
||||
}
|
||||
mixin
|
||||
class ConstMixinClassConstructor {
|
||||
mixin class ConstMixinClassConstructor {
|
||||
final int foo = 0;
|
||||
const ConstMixinClassConstructor();
|
||||
const ConstMixinClassConstructor.named();
|
||||
}
|
||||
mixin
|
||||
class MixinClassFactory {
|
||||
mixin class MixinClassFactory {
|
||||
int foo = 0;
|
||||
MixinClassFactory();
|
||||
MixinClassFactory.named();
|
||||
|
||||
+6
-12
@@ -1,12 +1,6 @@
|
||||
mixin
|
||||
class NotObject {}
|
||||
mixin
|
||||
class AlsoNotObject {}
|
||||
mixin
|
||||
class A extends NotObject {}
|
||||
mixin
|
||||
class B extends Object with NotObject {}
|
||||
mixin
|
||||
class C = Object with NotObject;
|
||||
mixin
|
||||
class D = Object with AlsoNotObject, NotObject;
|
||||
mixin class NotObject {}
|
||||
mixin class AlsoNotObject {}
|
||||
mixin class A extends NotObject {}
|
||||
mixin class B extends Object with NotObject {}
|
||||
mixin class C = Object with NotObject;
|
||||
mixin class D = Object with AlsoNotObject, NotObject;
|
||||
|
||||
@@ -3,8 +3,7 @@ library static_interop;
|
||||
import 'package:js/js.dart';
|
||||
abstract class A {}
|
||||
@JS()
|
||||
inline
|
||||
class B {
|
||||
inline class B {
|
||||
final A a;
|
||||
external B(A a);
|
||||
external B.named(int i);
|
||||
|
||||
@@ -3,8 +3,7 @@ library static_interop;
|
||||
import 'package:js/js.dart';
|
||||
abstract class A {}
|
||||
@JS()
|
||||
inline
|
||||
class B {
|
||||
inline class B {
|
||||
final A a;
|
||||
external B(A a);
|
||||
external B.named(int i);
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// @dart = 2.18
|
||||
base
|
||||
class A {}
|
||||
base class A {}
|
||||
abstract base class B {}
|
||||
base
|
||||
mixin M {}
|
||||
base
|
||||
class C = Object with M;
|
||||
base class C = Object with M;
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// @dart = 2.19
|
||||
final
|
||||
class A {}
|
||||
final class A {}
|
||||
abstract final class B {}
|
||||
final
|
||||
mixin M {}
|
||||
final
|
||||
class C = Object with M;
|
||||
final class C = Object with M;
|
||||
|
||||
+2
-4
@@ -1,6 +1,4 @@
|
||||
// @dart = 2.18
|
||||
mixin Mixin {}
|
||||
inline
|
||||
class Class1 {}
|
||||
inline
|
||||
class Class2 = Object with Mixin;
|
||||
inline class Class1 {}
|
||||
inline class Class2 = Object with Mixin;
|
||||
|
||||
+2
-4
@@ -1,8 +1,6 @@
|
||||
// @dart = 2.18
|
||||
interface
|
||||
class A {}
|
||||
interface class A {}
|
||||
abstract interface class B {}
|
||||
interface
|
||||
mixin M {}
|
||||
interface
|
||||
class C = Object with M;
|
||||
interface class C = Object with M;
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
class Super {}
|
||||
mixin Mixin {}
|
||||
macro
|
||||
class Class1 {}
|
||||
macro class Class1 {}
|
||||
abstract macro class Class2 {}
|
||||
macro
|
||||
class Class3 = Super with Mixin;
|
||||
macro class Class3 = Super with Mixin;
|
||||
abstract macro class Class4 = Super with Mixin;
|
||||
main() {}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
mixin
|
||||
class A {}
|
||||
mixin class A {}
|
||||
abstract mixin class B {}
|
||||
mixin M {}
|
||||
mixin
|
||||
class C = Object with M;
|
||||
mixin class C = Object with M;
|
||||
|
||||
+2
-4
@@ -1,8 +1,6 @@
|
||||
// @dart = 2.18
|
||||
sealed
|
||||
class A {}
|
||||
sealed class A {}
|
||||
sealed
|
||||
mixin M {}
|
||||
mixin MM {}
|
||||
sealed
|
||||
class B = Object with MM;
|
||||
sealed class B = Object with MM;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
@Deprecated('')
|
||||
inline
|
||||
class A {
|
||||
inline class A {
|
||||
@Deprecated('')
|
||||
final int i;
|
||||
@Deprecated('')
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
inline
|
||||
class Class {
|
||||
inline class Class {
|
||||
final int it;
|
||||
Class(this.it);
|
||||
Class.named(int it) : this.it = it + 1;
|
||||
}
|
||||
inline
|
||||
class GenericClass<T> {
|
||||
inline class GenericClass<T> {
|
||||
final T it;
|
||||
GenericClass(this.it);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
inline
|
||||
class Class1 {
|
||||
inline class Class1 {
|
||||
final int it;
|
||||
Class1(this.it);
|
||||
Class1.named1(this.it, int additional);
|
||||
@@ -9,8 +8,7 @@ class Class1 {
|
||||
Class1.named5(int additional, int it) : this.it = it {}
|
||||
Class1.named6(String text) : it = text.length;
|
||||
}
|
||||
inline
|
||||
class Class2<T> {
|
||||
inline class Class2<T> {
|
||||
final T it;
|
||||
Class2(this.it);
|
||||
Class2.named1(this.it, int additional);
|
||||
|
||||
+2
-4
@@ -1,11 +1,9 @@
|
||||
inline
|
||||
class I {
|
||||
inline class I {
|
||||
final int it;
|
||||
I(int x, [int? y]) : it = x + (y ?? 42);
|
||||
void m(String s, [int i = 1]) {}
|
||||
}
|
||||
inline
|
||||
class I2 {
|
||||
inline class I2 {
|
||||
final int it;
|
||||
I2(int x, {int? y}) : it = x + (y ?? 87);
|
||||
void m(String s, {int i = 1}) {}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
inline
|
||||
class Class1 {
|
||||
inline class Class1 {
|
||||
final int field;
|
||||
Class1(this.field);
|
||||
}
|
||||
inline
|
||||
class Class2 {
|
||||
inline class Class2 {
|
||||
final int field;
|
||||
Class2(this.field);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
abstract class A {}
|
||||
inline
|
||||
class B {
|
||||
inline class B {
|
||||
final A a;
|
||||
external B(A a);
|
||||
external B.named(int i);
|
||||
|
||||
@@ -2,38 +2,32 @@ import 'field_access_lib.dart';
|
||||
extension on dynamic {
|
||||
void set it(value) {}
|
||||
}
|
||||
inline
|
||||
class InlineClass {
|
||||
inline class InlineClass {
|
||||
final int it;
|
||||
InlineClass(this.it);
|
||||
void test() {}
|
||||
}
|
||||
inline
|
||||
class GenericInlineClass<T> {
|
||||
inline class GenericInlineClass<T> {
|
||||
final T it;
|
||||
GenericInlineClass(this.it);
|
||||
void test(T t) {}
|
||||
}
|
||||
inline
|
||||
class FunctionInlineClass<T> {
|
||||
inline class FunctionInlineClass<T> {
|
||||
final T Function() it;
|
||||
FunctionInlineClass(this.it);
|
||||
void test(T Function() t) {}
|
||||
}
|
||||
inline
|
||||
class GenericFunctionInlineClass {
|
||||
inline class GenericFunctionInlineClass {
|
||||
final T Function<T>() it;
|
||||
GenericFunctionInlineClass(this.it);
|
||||
void test() {}
|
||||
}
|
||||
inline
|
||||
class DynamicInlineClass {
|
||||
inline class DynamicInlineClass {
|
||||
final dynamic it;
|
||||
DynamicInlineClass(this.it);
|
||||
void test() {}
|
||||
}
|
||||
inline
|
||||
class ErroneousInlineClass {
|
||||
inline class ErroneousInlineClass {
|
||||
final int a;
|
||||
final String b;
|
||||
ErroneousInlineClass(this.a, this.b);
|
||||
|
||||
@@ -1,29 +1,23 @@
|
||||
inline
|
||||
class Class1 {
|
||||
inline class Class1 {
|
||||
final int field;
|
||||
Class1(this.field);
|
||||
}
|
||||
inline
|
||||
class Class2 {
|
||||
inline class Class2 {
|
||||
final int field;
|
||||
Class2(int field) : this.field = field;
|
||||
}
|
||||
inline
|
||||
class Class3 {
|
||||
inline class Class3 {
|
||||
final int field;
|
||||
}
|
||||
inline
|
||||
class Class4 {
|
||||
inline class Class4 {
|
||||
final int field;
|
||||
Class4(this.field, this.nonexisting);
|
||||
}
|
||||
inline
|
||||
class Class5 {
|
||||
inline class Class5 {
|
||||
final int field;
|
||||
Class5(this.field) : this.field = 42;
|
||||
}
|
||||
inline
|
||||
class Class6 {
|
||||
inline class Class6 {
|
||||
final int field;
|
||||
Class6(this.field) : this.nonexisting = 42;
|
||||
}
|
||||
|
||||
+3
-6
@@ -1,13 +1,10 @@
|
||||
mixin Mixin {}
|
||||
inline
|
||||
class Class1 {
|
||||
inline class Class1 {
|
||||
final int it;
|
||||
Class1(this.it);
|
||||
}
|
||||
inline
|
||||
class Class2 = Object with Mixin;
|
||||
inline
|
||||
class Class3<T> {
|
||||
inline class Class2 = Object with Mixin;
|
||||
inline class Class3<T> {
|
||||
final List<T> it;
|
||||
Class3(this.it);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
inline
|
||||
class A {
|
||||
inline class A {
|
||||
int value;
|
||||
A.name1(this.value);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,7 @@ extension on Object {
|
||||
int get setter => 42;
|
||||
void set getter(int value) {}
|
||||
}
|
||||
inline
|
||||
class InlineClass {
|
||||
inline class InlineClass {
|
||||
final int it;
|
||||
InlineClass(this.it);
|
||||
test() {}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
inline
|
||||
class Class {
|
||||
inline class Class {
|
||||
final int it;
|
||||
void instanceMethod() {}
|
||||
int get instanceGetter => 42;
|
||||
@@ -8,8 +7,7 @@ class Class {
|
||||
static void staticMethod() {}
|
||||
static S genericStaticMethod<S>(S s) => s;
|
||||
}
|
||||
inline
|
||||
class GenericClass<T> {
|
||||
inline class GenericClass<T> {
|
||||
final T it;
|
||||
void instanceMethod() {}
|
||||
T get instanceGetter => throw '';
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
inline
|
||||
class Missing {}
|
||||
inline
|
||||
class Static {
|
||||
inline class Missing {}
|
||||
inline class Static {
|
||||
static int staticField = 42;
|
||||
final bool instanceField;
|
||||
Static(this.instanceField);
|
||||
}
|
||||
inline
|
||||
class Multiple {
|
||||
inline class Multiple {
|
||||
final bool instanceField1;
|
||||
final int instanceField2;
|
||||
Multiple(this.instanceField1);
|
||||
}
|
||||
inline
|
||||
class Duplicate {
|
||||
inline class Duplicate {
|
||||
final bool instanceField;
|
||||
final int instanceField;
|
||||
Duplicate(this.instanceField);
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
class Super {}
|
||||
mixin Mixin {}
|
||||
macro
|
||||
class Class1 {}
|
||||
macro class Class1 {}
|
||||
abstract macro class Class2 {}
|
||||
macro
|
||||
class Class3 = Super with Mixin;
|
||||
macro class Class3 = Super with Mixin;
|
||||
abstract macro class Class4 = Super with Mixin;
|
||||
main() {}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'dart:math' as math;
|
||||
sealed
|
||||
class Shape {
|
||||
sealed class Shape {
|
||||
double calculateArea();
|
||||
}
|
||||
class Square implements Shape {
|
||||
|
||||
+2
-4
@@ -1,5 +1,3 @@
|
||||
sealed
|
||||
class A {}
|
||||
sealed class A {}
|
||||
mixin M {}
|
||||
sealed
|
||||
class B = Object with M;
|
||||
sealed class B = Object with M;
|
||||
|
||||
Reference in New Issue
Block a user