Skip to content

Commit 04e06aa

Browse files
stereotype441Commit Queue
authored andcommitted
[analyzer] Add declaredFragment getters to a few more AST nodes.
This change adds the getters `DeclaredVariablePattern.declaredFragment`, `GenericFunctionType.declaredFragment`, and `Label.declaredFragment`, for consistency with other AST nodes that have associated fragments. Change-Id: Ica7b6d2fbfafeaff61e75f1eb89c26be36aede54 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/412382 Reviewed-by: Brian Wilkerson <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Paul Berry <[email protected]>
1 parent fe3c184 commit 04e06aa

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

pkg/analyzer/api.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,7 @@ package:analyzer/dart/ast/ast.dart:
708708
DeclaredVariablePattern (class extends Object implements VariablePattern):
709709
declaredElement (getter: BindPatternVariableElement?)
710710
declaredElement2 (getter: BindPatternVariableElement2?)
711+
declaredFragment (getter: BindPatternVariableFragment?)
711712
keyword (getter: Token?)
712713
type (getter: TypeAnnotation?)
713714
DefaultFormalParameter (class extends Object implements FormalParameter):
@@ -949,6 +950,7 @@ package:analyzer/dart/ast/ast.dart:
949950
returnType (getter: TypeAnnotation?)
950951
typeParameters (getter: TypeParameterList?)
951952
GenericFunctionType (class extends Object implements TypeAnnotation):
953+
declaredFragment (getter: GenericFunctionTypeFragment?)
952954
functionKeyword (getter: Token)
953955
parameters (getter: FormalParameterList)
954956
returnType (getter: TypeAnnotation?)
@@ -1049,6 +1051,7 @@ package:analyzer/dart/ast/ast.dart:
10491051
type (getter: TypeAnnotation)
10501052
Label (class extends Object implements AstNode):
10511053
colon (getter: Token)
1054+
declaredFragment (getter: LabelFragment?)
10521055
label (getter: SimpleIdentifier)
10531056
LabeledStatement (class extends Object implements Statement):
10541057
labels (getter: NodeList<Label>)

pkg/analyzer/lib/src/dart/ast/ast.dart

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5025,6 +5025,11 @@ sealed class DeclaredVariablePattern implements VariablePattern {
50255025
@experimental
50265026
BindPatternVariableElement2? get declaredElement2;
50275027

5028+
/// The fragment declared by this declaration.
5029+
///
5030+
/// Returns `null` if the AST structure hasn't been resolved.
5031+
BindPatternVariableFragment? get declaredFragment;
5032+
50285033
/// The `var` or `final` keyword.
50295034
Token? get keyword;
50305035

@@ -5061,6 +5066,9 @@ final class DeclaredVariablePatternImpl extends VariablePatternImpl
50615066
return declaredElement?.element;
50625067
}
50635068

5069+
@override
5070+
BindPatternVariableElementImpl? get declaredFragment => declaredElement;
5071+
50645072
@override
50655073
Token get endToken => name;
50665074

@@ -9093,6 +9101,11 @@ final class FunctionTypedFormalParameterImpl extends NormalFormalParameterImpl
90939101
/// [ normalParameterTypes ,? ]
90949102
@AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
90959103
abstract final class GenericFunctionType implements TypeAnnotation {
9104+
/// The fragment declared by this declaration.
9105+
///
9106+
/// Returns `null` if the AST structure hasn't been resolved.
9107+
GenericFunctionTypeFragment? get declaredFragment;
9108+
90969109
/// The `Function` keyword.
90979110
Token get functionKeyword;
90989111

@@ -9148,6 +9161,7 @@ final class GenericFunctionTypeImpl extends TypeAnnotationImpl
91489161
@override
91499162
Token get beginToken => _returnType?.beginToken ?? functionKeyword;
91509163

9164+
@override
91519165
GenericFunctionTypeElementImpl? get declaredFragment {
91529166
return declaredElement;
91539167
}
@@ -10988,6 +11002,11 @@ abstract final class Label implements AstNode {
1098811002
/// The colon that separates the label from the statement.
1098911003
Token get colon;
1099011004

11005+
/// The fragment declared by this declaration.
11006+
///
11007+
/// Returns `null` if the AST structure hasn't been resolved.
11008+
LabelFragment? get declaredFragment;
11009+
1099111010
/// The label being associated with the statement.
1099211011
SimpleIdentifier get label;
1099311012
}
@@ -11076,6 +11095,10 @@ final class LabelImpl extends AstNodeImpl implements Label {
1107611095
@override
1107711096
Token get beginToken => _label.beginToken;
1107811097

11098+
@override
11099+
LabelElementImpl? get declaredFragment =>
11100+
(label.element as LabelElementImpl2?)?.firstFragment;
11101+
1107911102
@override
1108011103
Token get endToken => colon;
1108111104

0 commit comments

Comments
 (0)