Augment. Order AST modifier tokens by the specification.
Update generated AST node metadata and token ordering so child entities, begin tokens, and reconstructed source follow the grammar order for modifier tokens. Place `augment` before declaration modifiers on class type aliases and the affected top-level and class-level declarations. Order field modifiers as `augment external static abstract covariant`, and order named formal parameter modifiers as `required covariant`. Also emit the missing modifier tokens in `ToSourceVisitor` so source reconstruction preserves augmentation syntax and the canonical modifier order. Change-Id: I57b4aa05f856779526bc3c8d5e3319d8c260bc49 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/504682 Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
committed by
dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent
58047e7d94
commit
a07da4d626
@@ -5200,12 +5200,12 @@ abstract final class ClassTypeAlias implements TypeAlias {
|
||||
|
||||
@GenerateNodeImpl(
|
||||
childEntitiesOrder: [
|
||||
GenerateNodeProperty('augmentKeyword', isSuper: true),
|
||||
GenerateNodeProperty('abstractKeyword'),
|
||||
GenerateNodeProperty('sealedKeyword'),
|
||||
GenerateNodeProperty('baseKeyword'),
|
||||
GenerateNodeProperty('interfaceKeyword'),
|
||||
GenerateNodeProperty('finalKeyword'),
|
||||
GenerateNodeProperty('augmentKeyword', isSuper: true),
|
||||
GenerateNodeProperty('mixinKeyword'),
|
||||
GenerateNodeProperty('typedefKeyword', isSuper: true),
|
||||
GenerateNodeProperty('name', isSuper: true),
|
||||
@@ -5267,12 +5267,12 @@ final class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias {
|
||||
ClassTypeAliasImpl({
|
||||
required super.comment,
|
||||
required super.metadata,
|
||||
required super.augmentKeyword,
|
||||
required this.abstractKeyword,
|
||||
required this.sealedKeyword,
|
||||
required this.baseKeyword,
|
||||
required this.interfaceKeyword,
|
||||
required this.finalKeyword,
|
||||
required super.augmentKeyword,
|
||||
required this.mixinKeyword,
|
||||
required super.typedefKeyword,
|
||||
required super.name,
|
||||
@@ -5301,6 +5301,9 @@ final class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias {
|
||||
@generated
|
||||
@override
|
||||
Token get firstTokenAfterCommentAndMetadata {
|
||||
if (augmentKeyword case var augmentKeyword?) {
|
||||
return augmentKeyword;
|
||||
}
|
||||
if (abstractKeyword case var abstractKeyword?) {
|
||||
return abstractKeyword;
|
||||
}
|
||||
@@ -5316,9 +5319,6 @@ final class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias {
|
||||
if (finalKeyword case var finalKeyword?) {
|
||||
return finalKeyword;
|
||||
}
|
||||
if (augmentKeyword case var augmentKeyword?) {
|
||||
return augmentKeyword;
|
||||
}
|
||||
if (mixinKeyword case var mixinKeyword?) {
|
||||
return mixinKeyword;
|
||||
}
|
||||
@@ -5364,12 +5364,12 @@ final class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias {
|
||||
@generated
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addToken('augmentKeyword', augmentKeyword)
|
||||
..addToken('abstractKeyword', abstractKeyword)
|
||||
..addToken('sealedKeyword', sealedKeyword)
|
||||
..addToken('baseKeyword', baseKeyword)
|
||||
..addToken('interfaceKeyword', interfaceKeyword)
|
||||
..addToken('finalKeyword', finalKeyword)
|
||||
..addToken('augmentKeyword', augmentKeyword)
|
||||
..addToken('mixinKeyword', mixinKeyword)
|
||||
..addToken('typedefKeyword', typedefKeyword)
|
||||
..addToken('name', name)
|
||||
@@ -12398,29 +12398,21 @@ abstract final class FieldDeclaration implements ClassMember {
|
||||
|
||||
@GenerateNodeImpl(
|
||||
childEntitiesOrder: [
|
||||
GenerateNodeProperty('abstractKeyword', tokenGroupId: 0),
|
||||
GenerateNodeProperty('augmentKeyword', tokenGroupId: 0),
|
||||
GenerateNodeProperty('covariantKeyword', tokenGroupId: 0),
|
||||
GenerateNodeProperty('externalKeyword', tokenGroupId: 0),
|
||||
GenerateNodeProperty('staticKeyword', tokenGroupId: 0),
|
||||
GenerateNodeProperty('abstractKeyword', tokenGroupId: 0),
|
||||
GenerateNodeProperty('covariantKeyword', tokenGroupId: 0),
|
||||
GenerateNodeProperty('fields'),
|
||||
GenerateNodeProperty('semicolon'),
|
||||
],
|
||||
)
|
||||
final class FieldDeclarationImpl extends ClassMemberImpl
|
||||
implements FieldDeclaration {
|
||||
@generated
|
||||
@override
|
||||
final Token? abstractKeyword;
|
||||
|
||||
@generated
|
||||
@override
|
||||
final Token? augmentKeyword;
|
||||
|
||||
@generated
|
||||
@override
|
||||
final Token? covariantKeyword;
|
||||
|
||||
@generated
|
||||
@override
|
||||
final Token? externalKeyword;
|
||||
@@ -12429,6 +12421,14 @@ final class FieldDeclarationImpl extends ClassMemberImpl
|
||||
@override
|
||||
final Token? staticKeyword;
|
||||
|
||||
@generated
|
||||
@override
|
||||
final Token? abstractKeyword;
|
||||
|
||||
@generated
|
||||
@override
|
||||
final Token? covariantKeyword;
|
||||
|
||||
@generated
|
||||
VariableDeclarationListImpl _fields;
|
||||
|
||||
@@ -12440,11 +12440,11 @@ final class FieldDeclarationImpl extends ClassMemberImpl
|
||||
FieldDeclarationImpl({
|
||||
required super.comment,
|
||||
required super.metadata,
|
||||
required this.abstractKeyword,
|
||||
required this.augmentKeyword,
|
||||
required this.covariantKeyword,
|
||||
required this.externalKeyword,
|
||||
required this.staticKeyword,
|
||||
required this.abstractKeyword,
|
||||
required this.covariantKeyword,
|
||||
required VariableDeclarationListImpl fields,
|
||||
required this.semicolon,
|
||||
}) : _fields = fields {
|
||||
@@ -12473,11 +12473,11 @@ final class FieldDeclarationImpl extends ClassMemberImpl
|
||||
@override
|
||||
Token get firstTokenAfterCommentAndMetadata {
|
||||
if (Token.lexicallyFirst(
|
||||
abstractKeyword,
|
||||
augmentKeyword,
|
||||
covariantKeyword,
|
||||
externalKeyword,
|
||||
staticKeyword,
|
||||
abstractKeyword,
|
||||
covariantKeyword,
|
||||
)
|
||||
case var result?) {
|
||||
return result;
|
||||
@@ -12491,11 +12491,11 @@ final class FieldDeclarationImpl extends ClassMemberImpl
|
||||
@generated
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addToken('abstractKeyword', abstractKeyword)
|
||||
..addToken('augmentKeyword', augmentKeyword)
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addToken('externalKeyword', externalKeyword)
|
||||
..addToken('staticKeyword', staticKeyword)
|
||||
..addToken('abstractKeyword', abstractKeyword)
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addNode('fields', fields)
|
||||
..addToken('semicolon', semicolon);
|
||||
|
||||
@@ -12596,8 +12596,8 @@ abstract final class FieldFormalParameter implements FormalParameter {
|
||||
withOverride: false,
|
||||
type: _TypeLiteral<ParameterKind>,
|
||||
),
|
||||
GenerateNodeProperty('covariantKeyword', isSuper: true),
|
||||
GenerateNodeProperty('requiredKeyword', isSuper: true),
|
||||
GenerateNodeProperty('covariantKeyword', isSuper: true),
|
||||
GenerateNodeProperty('constFinalOrVarKeyword', isSuper: true),
|
||||
GenerateNodeProperty('type', isSuper: true),
|
||||
GenerateNodeProperty('thisKeyword'),
|
||||
@@ -12622,8 +12622,8 @@ final class FieldFormalParameterImpl extends FormalParameterImpl
|
||||
required super.comment,
|
||||
required super.metadata,
|
||||
required super.kind,
|
||||
required super.covariantKeyword,
|
||||
required super.requiredKeyword,
|
||||
required super.covariantKeyword,
|
||||
required super.constFinalOrVarKeyword,
|
||||
required super.type,
|
||||
required this.thisKeyword,
|
||||
@@ -12652,12 +12652,12 @@ final class FieldFormalParameterImpl extends FormalParameterImpl
|
||||
@generated
|
||||
@override
|
||||
Token get firstTokenAfterCommentAndMetadata {
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (requiredKeyword case var requiredKeyword?) {
|
||||
return requiredKeyword;
|
||||
}
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (constFinalOrVarKeyword case var constFinalOrVarKeyword?) {
|
||||
return constFinalOrVarKeyword;
|
||||
}
|
||||
@@ -12674,8 +12674,8 @@ final class FieldFormalParameterImpl extends FormalParameterImpl
|
||||
@generated
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addToken('requiredKeyword', requiredKeyword)
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addToken('constFinalOrVarKeyword', constFinalOrVarKeyword)
|
||||
..addNode('type', type)
|
||||
..addToken('thisKeyword', thisKeyword)
|
||||
@@ -13897,12 +13897,12 @@ sealed class FormalParameterImpl extends AstNodeImpl
|
||||
if (constFinalOrVarKeyword case var constFinalOrVarKeyword?) {
|
||||
return constFinalOrVarKeyword;
|
||||
}
|
||||
if (requiredKeyword case var requiredKeyword?) {
|
||||
return requiredKeyword;
|
||||
}
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (requiredKeyword case var requiredKeyword?) {
|
||||
return requiredKeyword;
|
||||
}
|
||||
throw StateError('Expected at least one non-null');
|
||||
}
|
||||
|
||||
@@ -28850,8 +28850,8 @@ abstract final class RegularFormalParameter implements FormalParameter {}
|
||||
withOverride: false,
|
||||
type: _TypeLiteral<ParameterKind>,
|
||||
),
|
||||
GenerateNodeProperty('covariantKeyword', isSuper: true),
|
||||
GenerateNodeProperty('requiredKeyword', isSuper: true),
|
||||
GenerateNodeProperty('covariantKeyword', isSuper: true),
|
||||
GenerateNodeProperty('constFinalOrVarKeyword', isSuper: true),
|
||||
GenerateNodeProperty('type', isSuper: true),
|
||||
GenerateNodeProperty('name', isSuper: true),
|
||||
@@ -28866,8 +28866,8 @@ final class RegularFormalParameterImpl extends FormalParameterImpl
|
||||
required super.comment,
|
||||
required super.metadata,
|
||||
required super.kind,
|
||||
required super.covariantKeyword,
|
||||
required super.requiredKeyword,
|
||||
required super.covariantKeyword,
|
||||
required super.constFinalOrVarKeyword,
|
||||
required super.type,
|
||||
required super.name,
|
||||
@@ -28893,24 +28893,24 @@ final class RegularFormalParameterImpl extends FormalParameterImpl
|
||||
if (constFinalOrVarKeyword case var constFinalOrVarKeyword?) {
|
||||
return constFinalOrVarKeyword;
|
||||
}
|
||||
if (requiredKeyword case var requiredKeyword?) {
|
||||
return requiredKeyword;
|
||||
}
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (requiredKeyword case var requiredKeyword?) {
|
||||
return requiredKeyword;
|
||||
}
|
||||
throw StateError('Expected at least one non-null');
|
||||
}
|
||||
|
||||
@generated
|
||||
@override
|
||||
Token get firstTokenAfterCommentAndMetadata {
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (requiredKeyword case var requiredKeyword?) {
|
||||
return requiredKeyword;
|
||||
}
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (constFinalOrVarKeyword case var constFinalOrVarKeyword?) {
|
||||
return constFinalOrVarKeyword;
|
||||
}
|
||||
@@ -28932,8 +28932,8 @@ final class RegularFormalParameterImpl extends FormalParameterImpl
|
||||
@generated
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addToken('requiredKeyword', requiredKeyword)
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addToken('constFinalOrVarKeyword', constFinalOrVarKeyword)
|
||||
..addNode('type', type)
|
||||
..addToken('name', name)
|
||||
@@ -31173,8 +31173,8 @@ abstract final class SuperFormalParameter implements FormalParameter {
|
||||
withOverride: false,
|
||||
type: _TypeLiteral<ParameterKind>,
|
||||
),
|
||||
GenerateNodeProperty('covariantKeyword', isSuper: true),
|
||||
GenerateNodeProperty('requiredKeyword', isSuper: true),
|
||||
GenerateNodeProperty('covariantKeyword', isSuper: true),
|
||||
GenerateNodeProperty('constFinalOrVarKeyword', isSuper: true),
|
||||
GenerateNodeProperty('type', isSuper: true),
|
||||
GenerateNodeProperty('superKeyword'),
|
||||
@@ -31199,8 +31199,8 @@ final class SuperFormalParameterImpl extends FormalParameterImpl
|
||||
required super.comment,
|
||||
required super.metadata,
|
||||
required super.kind,
|
||||
required super.covariantKeyword,
|
||||
required super.requiredKeyword,
|
||||
required super.covariantKeyword,
|
||||
required super.constFinalOrVarKeyword,
|
||||
required super.type,
|
||||
required this.superKeyword,
|
||||
@@ -31229,12 +31229,12 @@ final class SuperFormalParameterImpl extends FormalParameterImpl
|
||||
@generated
|
||||
@override
|
||||
Token get firstTokenAfterCommentAndMetadata {
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (requiredKeyword case var requiredKeyword?) {
|
||||
return requiredKeyword;
|
||||
}
|
||||
if (covariantKeyword case var covariantKeyword?) {
|
||||
return covariantKeyword;
|
||||
}
|
||||
if (constFinalOrVarKeyword case var constFinalOrVarKeyword?) {
|
||||
return constFinalOrVarKeyword;
|
||||
}
|
||||
@@ -31251,8 +31251,8 @@ final class SuperFormalParameterImpl extends FormalParameterImpl
|
||||
@generated
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addToken('requiredKeyword', requiredKeyword)
|
||||
..addToken('covariantKeyword', covariantKeyword)
|
||||
..addToken('constFinalOrVarKeyword', constFinalOrVarKeyword)
|
||||
..addNode('type', type)
|
||||
..addToken('superKeyword', superKeyword)
|
||||
@@ -32876,8 +32876,8 @@ abstract final class TopLevelVariableDeclaration
|
||||
@GenerateNodeImpl(
|
||||
childEntitiesOrder: [
|
||||
GenerateNodeProperty('augmentKeyword'),
|
||||
GenerateNodeProperty('abstractKeyword'),
|
||||
GenerateNodeProperty('externalKeyword'),
|
||||
GenerateNodeProperty('abstractKeyword'),
|
||||
GenerateNodeProperty('variables'),
|
||||
GenerateNodeProperty('semicolon'),
|
||||
],
|
||||
@@ -32890,11 +32890,11 @@ final class TopLevelVariableDeclarationImpl extends CompilationUnitMemberImpl
|
||||
|
||||
@generated
|
||||
@override
|
||||
final Token? abstractKeyword;
|
||||
final Token? externalKeyword;
|
||||
|
||||
@generated
|
||||
@override
|
||||
final Token? externalKeyword;
|
||||
final Token? abstractKeyword;
|
||||
|
||||
@generated
|
||||
VariableDeclarationListImpl _variables;
|
||||
@@ -32908,8 +32908,8 @@ final class TopLevelVariableDeclarationImpl extends CompilationUnitMemberImpl
|
||||
required super.comment,
|
||||
required super.metadata,
|
||||
required this.augmentKeyword,
|
||||
required this.abstractKeyword,
|
||||
required this.externalKeyword,
|
||||
required this.abstractKeyword,
|
||||
required VariableDeclarationListImpl variables,
|
||||
required this.semicolon,
|
||||
}) : _variables = variables {
|
||||
@@ -32931,12 +32931,12 @@ final class TopLevelVariableDeclarationImpl extends CompilationUnitMemberImpl
|
||||
if (augmentKeyword case var augmentKeyword?) {
|
||||
return augmentKeyword;
|
||||
}
|
||||
if (abstractKeyword case var abstractKeyword?) {
|
||||
return abstractKeyword;
|
||||
}
|
||||
if (externalKeyword case var externalKeyword?) {
|
||||
return externalKeyword;
|
||||
}
|
||||
if (abstractKeyword case var abstractKeyword?) {
|
||||
return abstractKeyword;
|
||||
}
|
||||
return variables.beginToken;
|
||||
}
|
||||
|
||||
@@ -32953,8 +32953,8 @@ final class TopLevelVariableDeclarationImpl extends CompilationUnitMemberImpl
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addToken('augmentKeyword', augmentKeyword)
|
||||
..addToken('abstractKeyword', abstractKeyword)
|
||||
..addToken('externalKeyword', externalKeyword)
|
||||
..addToken('abstractKeyword', abstractKeyword)
|
||||
..addNode('variables', variables)
|
||||
..addToken('semicolon', semicolon);
|
||||
|
||||
|
||||
@@ -436,6 +436,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
||||
@override
|
||||
void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
|
||||
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
|
||||
_visitToken(node.augmentKeyword, suffix: ' ');
|
||||
_visitToken(node.name);
|
||||
_visitNode(node.arguments);
|
||||
}
|
||||
@@ -443,6 +444,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
||||
@override
|
||||
void visitEnumDeclaration(EnumDeclaration node) {
|
||||
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
|
||||
_visitToken(node.augmentKeyword, suffix: ' ');
|
||||
sink.write('enum ');
|
||||
_visitNode(node.namePart);
|
||||
_visitNode(node.withClause, prefix: ' ');
|
||||
@@ -518,6 +520,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
||||
@override
|
||||
void visitExtensionTypeDeclaration(ExtensionTypeDeclaration node) {
|
||||
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
|
||||
_visitToken(node.augmentKeyword, suffix: ' ');
|
||||
_visitToken(node.extensionKeyword, suffix: ' ');
|
||||
_visitToken(node.typeKeyword, suffix: ' ');
|
||||
_visitNode(node.primaryConstructor);
|
||||
@@ -528,10 +531,11 @@ class ToSourceVisitor implements AstVisitor<void> {
|
||||
@override
|
||||
void visitFieldDeclaration(FieldDeclaration node) {
|
||||
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
|
||||
_visitToken(node.abstractKeyword, suffix: ' ');
|
||||
_visitToken(node.augmentKeyword, suffix: ' ');
|
||||
_visitToken(node.externalKeyword, suffix: ' ');
|
||||
_visitToken(node.staticKeyword, suffix: ' ');
|
||||
_visitToken(node.abstractKeyword, suffix: ' ');
|
||||
_visitToken(node.covariantKeyword, suffix: ' ');
|
||||
_visitNode(node.fields);
|
||||
sink.write(';');
|
||||
}
|
||||
@@ -652,6 +656,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
||||
@override
|
||||
void visitFunctionDeclaration(FunctionDeclaration node) {
|
||||
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
|
||||
_visitToken(node.augmentKeyword, suffix: ' ');
|
||||
_visitToken(node.externalKeyword, suffix: ' ');
|
||||
_visitNode(node.returnType, suffix: ' ');
|
||||
_visitToken(node.propertyKeyword, suffix: ' ');
|
||||
@@ -687,6 +692,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
||||
@override
|
||||
void visitFunctionTypeAlias(FunctionTypeAlias node) {
|
||||
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
|
||||
_visitToken(node.augmentKeyword, suffix: ' ');
|
||||
sink.write('typedef ');
|
||||
_visitNode(node.returnType, suffix: ' ');
|
||||
_visitToken(node.name);
|
||||
@@ -1424,6 +1430,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
||||
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
|
||||
_visitToken(node.augmentKeyword, suffix: ' ');
|
||||
_visitToken(node.externalKeyword, suffix: ' ');
|
||||
_visitToken(node.abstractKeyword, suffix: ' ');
|
||||
_visitNode(node.variables, suffix: ';');
|
||||
}
|
||||
|
||||
|
||||
@@ -2993,8 +2993,8 @@ class C {
|
||||
var node = parseResult.findNode.singleClassMember;
|
||||
assertParsedNodeText(node, r'''
|
||||
FieldDeclaration
|
||||
abstractKeyword: abstract
|
||||
externalKeyword: external
|
||||
abstractKeyword: abstract
|
||||
fields: VariableDeclarationList
|
||||
type: NamedType
|
||||
name: int
|
||||
@@ -3062,8 +3062,8 @@ class C {
|
||||
var node = parseResult.findNode.singleClassMember;
|
||||
assertParsedNodeText(node, r'''
|
||||
FieldDeclaration
|
||||
abstractKeyword: abstract
|
||||
staticKeyword: static
|
||||
abstractKeyword: abstract
|
||||
fields: VariableDeclarationList
|
||||
type: NamedType
|
||||
name: int
|
||||
@@ -3131,8 +3131,8 @@ class C {
|
||||
var node = parseResult.findNode.singleClassMember;
|
||||
assertParsedNodeText(node, r'''
|
||||
FieldDeclaration
|
||||
abstractKeyword: abstract
|
||||
externalKeyword: external
|
||||
abstractKeyword: abstract
|
||||
fields: VariableDeclarationList
|
||||
type: NamedType
|
||||
name: int
|
||||
|
||||
@@ -1398,8 +1398,8 @@ FormalParameterList
|
||||
leftParenthesis: (
|
||||
leftDelimiter: {
|
||||
parameter: RegularFormalParameter
|
||||
covariantKeyword: covariant
|
||||
requiredKeyword: required
|
||||
covariantKeyword: covariant
|
||||
type: NamedType
|
||||
name: A
|
||||
name: a
|
||||
@@ -1422,8 +1422,8 @@ FormalParameterList
|
||||
leftParenthesis: (
|
||||
leftDelimiter: {
|
||||
parameter: RegularFormalParameter
|
||||
covariantKeyword: covariant
|
||||
requiredKeyword: required
|
||||
covariantKeyword: covariant
|
||||
type: NamedType
|
||||
name: A
|
||||
name: a
|
||||
@@ -1880,8 +1880,8 @@ void f(void g({required covariant int a})) {}
|
||||
var node = parseResult.findNode.regularFormalParameter('a}');
|
||||
assertParsedNodeText(node, r'''
|
||||
RegularFormalParameter
|
||||
covariantKeyword: covariant
|
||||
requiredKeyword: required
|
||||
covariantKeyword: covariant
|
||||
type: NamedType
|
||||
name: int
|
||||
name: a
|
||||
|
||||
@@ -581,7 +581,6 @@ $code
|
||||
}
|
||||
|
||||
void test_visitClassTypeAlias_abstractAugment() {
|
||||
// TODO(scheglov): Is this the right order of modifiers?
|
||||
var code = 'augment abstract class C = S with M;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
@@ -1142,6 +1141,24 @@ abstract class A {
|
||||
_assertSource(code, findNode.emptyFunctionBody(code));
|
||||
}
|
||||
|
||||
void test_visitEnumConstantDeclaration_augment() {
|
||||
var code = 'augment v';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
augment enum E {
|
||||
$code
|
||||
}
|
||||
''');
|
||||
_assertSource(code, findNode.enumConstantDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitEnumDeclaration_augment() {
|
||||
var code = 'augment enum E {v}';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.enumDeclaration('enum E'));
|
||||
}
|
||||
|
||||
void test_visitEnumDeclaration_constant_arguments_named() {
|
||||
var findNode = _parseStringToFindNode(r'''
|
||||
enum E {
|
||||
@@ -1393,6 +1410,14 @@ $code
|
||||
_assertSource(code, findNode.singleExtensionTypeDeclaration);
|
||||
}
|
||||
|
||||
void test_visitExtensionType_augment() {
|
||||
var code = 'augment extension type E(int it) {}';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.singleExtensionTypeDeclaration);
|
||||
}
|
||||
|
||||
void test_visitExtensionType_implements() {
|
||||
var code = 'extension type E(int it) implements num {}';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
@@ -1419,6 +1444,26 @@ class A {
|
||||
_assertSource(code, findNode.fieldDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitFieldDeclaration_abstract_external() {
|
||||
var code = 'abstract external var a;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
class A {
|
||||
$code
|
||||
}
|
||||
''');
|
||||
_assertSource('external abstract var a;', findNode.fieldDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitFieldDeclaration_abstract_static() {
|
||||
var code = 'abstract static var a;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
class A {
|
||||
$code
|
||||
}
|
||||
''');
|
||||
_assertSource('static abstract var a;', findNode.fieldDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitFieldDeclaration_augment() {
|
||||
var code = 'augment var a = 0;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
@@ -1429,6 +1474,16 @@ augment class A {
|
||||
_assertSource(code, findNode.fieldDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitFieldDeclaration_covariant() {
|
||||
var code = 'covariant var a;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
class A {
|
||||
$code
|
||||
}
|
||||
''');
|
||||
_assertSource(code, findNode.fieldDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitFieldDeclaration_external() {
|
||||
var code = 'external var a;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
@@ -1878,6 +1933,12 @@ void f () {
|
||||
_assertSource(code, findNode.forStatement(code));
|
||||
}
|
||||
|
||||
void test_visitFunctionDeclaration_augment() {
|
||||
var code = 'augment void f() {}';
|
||||
var findNode = _parseStringToFindNode(code);
|
||||
_assertSource(code, findNode.functionDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitFunctionDeclaration_external() {
|
||||
var code = 'external void f();';
|
||||
var findNode = _parseStringToFindNode(code);
|
||||
@@ -1980,6 +2041,14 @@ void f() {
|
||||
_assertSource(code, findNode.functionExpressionInvocation(code));
|
||||
}
|
||||
|
||||
void test_visitFunctionTypeAlias_augment() {
|
||||
var code = 'augment typedef void F();';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.functionTypeAlias(code));
|
||||
}
|
||||
|
||||
void test_visitFunctionTypeAlias_generic() {
|
||||
var code = 'typedef A F<B>();';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
@@ -3798,6 +3867,14 @@ void f() {
|
||||
_assertSource(code, findNode.throw_(code));
|
||||
}
|
||||
|
||||
void test_visitTopLevelVariableDeclaration_abstract() {
|
||||
var code = 'abstract var a;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.topLevelVariableDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitTopLevelVariableDeclaration_augment() {
|
||||
var code = 'augment var a = 0;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
@@ -3814,6 +3891,14 @@ $code
|
||||
_assertSource(code, findNode.topLevelVariableDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitTopLevelVariableDeclaration_external_abstract() {
|
||||
var code = 'external abstract var a;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.topLevelVariableDeclaration(code));
|
||||
}
|
||||
|
||||
void test_visitTopLevelVariableDeclaration_multiple() {
|
||||
var code = 'var a = 0, b = 1;';
|
||||
var findNode = _parseStringToFindNode('''
|
||||
|
||||
@@ -2518,8 +2518,8 @@ ClassDeclaration
|
||||
leftParenthesis: (
|
||||
leftDelimiter: {
|
||||
parameter: RegularFormalParameter
|
||||
covariantKeyword: covariant
|
||||
requiredKeyword: required
|
||||
covariantKeyword: covariant
|
||||
type: NamedType
|
||||
name: int
|
||||
name: it
|
||||
@@ -2549,8 +2549,8 @@ ClassDeclaration
|
||||
leftParenthesis: (
|
||||
leftDelimiter: {
|
||||
parameter: RegularFormalParameter
|
||||
covariantKeyword: covariant
|
||||
requiredKeyword: required
|
||||
covariantKeyword: covariant
|
||||
constFinalOrVarKeyword: final
|
||||
type: NamedType
|
||||
name: int
|
||||
@@ -2579,8 +2579,8 @@ ClassDeclaration
|
||||
leftParenthesis: (
|
||||
leftDelimiter: {
|
||||
parameter: RegularFormalParameter
|
||||
covariantKeyword: covariant
|
||||
requiredKeyword: required
|
||||
covariantKeyword: covariant
|
||||
constFinalOrVarKeyword: var
|
||||
type: NamedType
|
||||
name: int
|
||||
@@ -2641,8 +2641,8 @@ ClassDeclaration
|
||||
leftParenthesis: (
|
||||
leftDelimiter: {
|
||||
parameter: RegularFormalParameter
|
||||
covariantKeyword: covariant
|
||||
requiredKeyword: required
|
||||
covariantKeyword: covariant
|
||||
constFinalOrVarKeyword: var
|
||||
type: NamedType
|
||||
name: int
|
||||
|
||||
Reference in New Issue
Block a user