mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 09:58:32 +00:00
Add tokens leftParenthesis/rightParenthesis to RecordTypeAnnotation.
Change-Id: Ib2f45c2d46a709d6b0c2c67c641c1566c5b9503e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255823 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
0715df3d00
commit
b7837289ad
|
@ -4113,11 +4113,17 @@ abstract class RecordLiteral implements Literal {
|
|||
/// Clients may not extend, implement or mix-in this class.
|
||||
@experimental
|
||||
abstract class RecordTypeAnnotation implements TypeAnnotation {
|
||||
/// The left parenthesis.
|
||||
Token get leftParenthesis;
|
||||
|
||||
/// The optional named fields.
|
||||
RecordTypeAnnotationNamedFields? get namedFields;
|
||||
|
||||
/// The positional fields (might be empty).
|
||||
NodeList<RecordTypeAnnotationPositionalField> get positionalFields;
|
||||
|
||||
/// The right parenthesis.
|
||||
Token get rightParenthesis;
|
||||
}
|
||||
|
||||
/// A field in a [RecordTypeAnnotation].
|
||||
|
|
|
@ -9725,6 +9725,9 @@ abstract class RecordTypeAnnotationFieldImpl extends AstNodeImpl
|
|||
|
||||
class RecordTypeAnnotationImpl extends TypeAnnotationImpl
|
||||
implements RecordTypeAnnotation {
|
||||
@override
|
||||
Token leftParenthesis;
|
||||
|
||||
@override
|
||||
final NodeListImpl<RecordTypeAnnotationPositionalField> positionalFields =
|
||||
NodeListImpl._();
|
||||
|
@ -9732,6 +9735,9 @@ class RecordTypeAnnotationImpl extends TypeAnnotationImpl
|
|||
@override
|
||||
final RecordTypeAnnotationNamedFieldsImpl? namedFields;
|
||||
|
||||
@override
|
||||
Token rightParenthesis;
|
||||
|
||||
@override
|
||||
final Token? question;
|
||||
|
||||
|
@ -9739,27 +9745,27 @@ class RecordTypeAnnotationImpl extends TypeAnnotationImpl
|
|||
DartType? type;
|
||||
|
||||
RecordTypeAnnotationImpl({
|
||||
required this.leftParenthesis,
|
||||
required List<RecordTypeAnnotationPositionalField> positionalFields,
|
||||
required this.namedFields,
|
||||
required this.rightParenthesis,
|
||||
required this.question,
|
||||
}) {
|
||||
this.positionalFields._initialize(this, positionalFields);
|
||||
}
|
||||
|
||||
@override
|
||||
Token get beginToken {
|
||||
return positionalFields.beginToken ?? namedFields!.beginToken;
|
||||
}
|
||||
Token get beginToken => leftParenthesis;
|
||||
|
||||
@override
|
||||
Token get endToken {
|
||||
return namedFields?.endToken ?? positionalFields.endToken!;
|
||||
}
|
||||
Token get endToken => rightParenthesis;
|
||||
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addToken('leftParenthesis', leftParenthesis)
|
||||
..addNodeList('positionalFields', positionalFields)
|
||||
..addNode('namedFields', namedFields)
|
||||
..addToken('rightParenthesis', rightParenthesis)
|
||||
..addToken('question', question);
|
||||
|
||||
@override
|
||||
|
|
|
@ -993,6 +993,7 @@ class AstTestFactory {
|
|||
required List<RecordTypeAnnotationNamedField> namedFields,
|
||||
bool isNullable = false}) {
|
||||
return RecordTypeAnnotationImpl(
|
||||
leftParenthesis: TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
|
||||
positionalFields: positionalFields,
|
||||
namedFields: namedFields.isEmpty
|
||||
? null
|
||||
|
@ -1002,6 +1003,7 @@ class AstTestFactory {
|
|||
fields: namedFields,
|
||||
rightBracket:
|
||||
TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET)),
|
||||
rightParenthesis: TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
|
||||
question:
|
||||
isNullable ? TokenFactory.tokenFromType(TokenType.QUESTION) : null);
|
||||
}
|
||||
|
|
|
@ -432,6 +432,10 @@ class FindNode {
|
|||
return _node(search, (n) => n is RecordLiteral);
|
||||
}
|
||||
|
||||
RecordTypeAnnotation recordTypeAnnotation(String search) {
|
||||
return _node(search, (n) => n is RecordTypeAnnotation);
|
||||
}
|
||||
|
||||
RedirectingConstructorInvocation redirectingConstructorInvocation(
|
||||
String search) {
|
||||
return _node(search, (n) => n is RedirectingConstructorInvocation);
|
||||
|
|
Loading…
Reference in a new issue