Skip to content

Commit addc7db

Browse files
stereotype441Commit Queue
authored andcommitted
[analyzer] Document immediate sub-interfaces of sealed classes in api.txt.
Since it is a breaking change to add a new sub-interface of a sealed class, it is useful to see when the set of sub-interfaces of each sealed class in the analyzer public API changes. This change adds information to `api.txt` documenting the complete set of sub-interfaces of each sealed class. Based on a suggestion from Konstantin (https://dart-review.googlesource.com/c/sdk/+/420843/comment/5a1fe050_91c066d1/). Change-Id: I2d1673f8c1a4ade9aa880a95137491614fd8e102 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/421884 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Paul Berry <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent e5d926d commit addc7db

File tree

2 files changed

+98
-33
lines changed

2 files changed

+98
-33
lines changed

pkg/analyzer/api.txt

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ package:analyzer/dart/analysis/analysis_options.dart:
4545
name (getter: String)
4646
source (getter: PluginSource)
4747
sourceYaml (method: String Function())
48-
PluginSource (class extends Object, sealed):
48+
PluginSource (class extends Object, sealed (immediate subtypes: GitPluginSource, PathPluginSource, VersionedPluginSource)):
4949
toYaml (method: String Function({required String name}))
5050
VersionedPluginSource (class extends Object implements PluginSource):
5151
new (constructor: VersionedPluginSource Function({required String constraint}))
@@ -593,7 +593,7 @@ package:analyzer/dart/ast/ast.dart:
593593
sealedKeyword (getter: Token?)
594594
typeParameters (getter: TypeParameterList?)
595595
withClause (getter: WithClause?)
596-
ClassMember (class extends Object implements Declaration, sealed)
596+
ClassMember (class extends Object implements Declaration, sealed (immediate subtypes: ClassMemberImpl, ConstructorDeclaration, FieldDeclaration, MethodDeclaration))
597597
ClassTypeAlias (class extends Object implements TypeAlias):
598598
abstractKeyword (getter: Token?)
599599
baseKeyword (getter: Token?)
@@ -608,8 +608,8 @@ package:analyzer/dart/ast/ast.dart:
608608
superclass (getter: NamedType)
609609
typeParameters (getter: TypeParameterList?)
610610
withClause (getter: WithClause)
611-
CollectionElement (class extends Object implements AstNode, sealed)
612-
Combinator (class extends Object implements AstNode, sealed):
611+
CollectionElement (class extends Object implements AstNode, sealed (immediate subtypes: CollectionElementImpl, Expression, ForElement, IfElement, MapLiteralEntry, NullAwareElement, SpreadElement))
612+
Combinator (class extends Object implements AstNode, sealed (immediate subtypes: CombinatorImpl, HideCombinator, ShowCombinator)):
613613
keyword (getter: Token)
614614
Comment (class extends Object implements AstNode):
615615
codeBlocks (getter: List<MdCodeBlock>, experimental)
@@ -682,7 +682,7 @@ package:analyzer/dart/ast/ast.dart:
682682
fieldName (getter: SimpleIdentifier)
683683
period (getter: Token?)
684684
thisKeyword (getter: Token?)
685-
ConstructorInitializer (class extends Object implements AstNode, sealed)
685+
ConstructorInitializer (class extends Object implements AstNode, sealed (immediate subtypes: AssertInitializer, ConstructorFieldInitializer, ConstructorInitializerImpl, RedirectingConstructorInvocation, SuperConstructorInvocation))
686686
ConstructorName (class extends Object implements AstNode, ConstructorReferenceNode):
687687
name (getter: SimpleIdentifier?)
688688
period (getter: Token?)
@@ -700,7 +700,7 @@ package:analyzer/dart/ast/ast.dart:
700700
label (getter: SimpleIdentifier?)
701701
semicolon (getter: Token)
702702
target (getter: AstNode?)
703-
DartPattern (class extends Object implements AstNode, ListPatternElement, sealed):
703+
DartPattern (class extends Object implements AstNode, ListPatternElement, sealed (immediate subtypes: CastPattern, ConstantPattern, DartPatternImpl, ListPattern, LogicalAndPattern, LogicalOrPattern, MapPattern, NullAssertPattern, NullCheckPattern, ObjectPattern, ParenthesizedPattern, RecordPattern, RelationalPattern, VariablePattern, WildcardPattern)):
704704
matchedValueType (getter: DartType?)
705705
precedence (getter: PatternPrecedence)
706706
unParenthesized (getter: DartPattern)
@@ -716,7 +716,7 @@ package:analyzer/dart/ast/ast.dart:
716716
keyword (getter: Token?)
717717
name (getter: Token)
718718
type (getter: TypeAnnotation?)
719-
DeclaredVariablePattern (class extends Object implements VariablePattern, sealed):
719+
DeclaredVariablePattern (class extends Object implements VariablePattern, sealed (immediate subtypes: DeclaredVariablePatternImpl)):
720720
declaredElement (getter: BindPatternVariableElement?, deprecated)
721721
declaredElement2 (getter: BindPatternVariableElement2?, experimental)
722722
declaredFragment (getter: BindPatternVariableFragment?)
@@ -726,7 +726,7 @@ package:analyzer/dart/ast/ast.dart:
726726
defaultValue (getter: Expression?)
727727
parameter (getter: NormalFormalParameter)
728728
separator (getter: Token?)
729-
Directive (class extends Object implements AnnotatedNode, sealed):
729+
Directive (class extends Object implements AnnotatedNode, sealed (immediate subtypes: DirectiveImpl, LibraryDirective, PartOfDirective, UriBasedDirective)):
730730
element (getter: Element?, deprecated)
731731
DoStatement (class extends Object implements Statement):
732732
body (getter: Statement)
@@ -857,7 +857,7 @@ package:analyzer/dart/ast/ast.dart:
857857
thisKeyword (getter: Token)
858858
type (getter: TypeAnnotation?)
859859
typeParameters (getter: TypeParameterList?)
860-
ForEachParts (class extends Object implements ForLoopParts, sealed):
860+
ForEachParts (class extends Object implements ForLoopParts, sealed (immediate subtypes: ForEachPartsImpl, ForEachPartsWithDeclaration, ForEachPartsWithIdentifier, ForEachPartsWithPattern)):
861861
inKeyword (getter: Token)
862862
iterable (getter: Expression)
863863
ForEachPartsWithDeclaration (class extends Object implements ForEachParts):
@@ -875,8 +875,8 @@ package:analyzer/dart/ast/ast.dart:
875875
forLoopParts (getter: ForLoopParts)
876876
leftParenthesis (getter: Token)
877877
rightParenthesis (getter: Token)
878-
ForLoopParts (class extends Object implements AstNode, sealed)
879-
ForParts (class extends Object implements ForLoopParts, sealed):
878+
ForLoopParts (class extends Object implements AstNode, sealed (immediate subtypes: ForEachParts, ForLoopPartsImpl, ForParts))
879+
ForParts (class extends Object implements ForLoopParts, sealed (immediate subtypes: ForPartsImpl, ForPartsWithDeclarations, ForPartsWithExpression, ForPartsWithPattern)):
880880
condition (getter: Expression?)
881881
leftSeparator (getter: Token)
882882
rightSeparator (getter: Token)
@@ -894,7 +894,7 @@ package:analyzer/dart/ast/ast.dart:
894894
forLoopParts (getter: ForLoopParts)
895895
leftParenthesis (getter: Token)
896896
rightParenthesis (getter: Token)
897-
FormalParameter (class extends Object implements AstNode, sealed):
897+
FormalParameter (class extends Object implements AstNode, sealed (immediate subtypes: DefaultFormalParameter, FormalParameterImpl, NormalFormalParameter)):
898898
covariantKeyword (getter: Token?)
899899
declaredElement (getter: ParameterElement?, deprecated)
900900
declaredFragment (getter: FormalParameterFragment?, experimental)
@@ -920,7 +920,7 @@ package:analyzer/dart/ast/ast.dart:
920920
parameters (getter: NodeList<FormalParameter>)
921921
rightDelimiter (getter: Token?)
922922
rightParenthesis (getter: Token)
923-
FunctionBody (class extends Object implements AstNode, sealed):
923+
FunctionBody (class extends Object implements AstNode, sealed (immediate subtypes: BlockFunctionBody, EmptyFunctionBody, ExpressionFunctionBody, FunctionBodyImpl, NativeFunctionBody)):
924924
isAsynchronous (getter: bool)
925925
isGenerator (getter: bool)
926926
isSynchronous (getter: bool)
@@ -982,7 +982,7 @@ package:analyzer/dart/ast/ast.dart:
982982
whenClause (getter: WhenClause?)
983983
HideCombinator (class extends Object implements Combinator):
984984
hiddenNames (getter: NodeList<SimpleIdentifier>)
985-
Identifier (class extends Object implements Expression, CommentReferableExpression, sealed):
985+
Identifier (class extends Object implements Expression, CommentReferableExpression, sealed (immediate subtypes: IdentifierImpl, LibraryIdentifier, PrefixedIdentifier, SimpleIdentifier)):
986986
isPrivateName (static method: bool Function(String))
987987
element (getter: Element2?, experimental)
988988
name (getter: String)
@@ -1045,7 +1045,7 @@ package:analyzer/dart/ast/ast.dart:
10451045
IntegerLiteral (class extends Object implements Literal):
10461046
literal (getter: Token)
10471047
value (getter: int?)
1048-
InterpolationElement (class extends Object implements AstNode, sealed)
1048+
InterpolationElement (class extends Object implements AstNode, sealed (immediate subtypes: InterpolationElementImpl, InterpolationExpression, InterpolationString))
10491049
InterpolationExpression (class extends Object implements InterpolationElement):
10501050
expression (getter: Expression)
10511051
leftBracket (getter: Token)
@@ -1091,8 +1091,8 @@ package:analyzer/dart/ast/ast.dart:
10911091
requiredType (getter: DartType?)
10921092
rightBracket (getter: Token)
10931093
typeArguments (getter: TypeArgumentList?)
1094-
ListPatternElement (class extends Object implements AstNode, sealed)
1095-
Literal (class extends Object implements Expression, sealed)
1094+
ListPatternElement (class extends Object implements AstNode, sealed (immediate subtypes: DartPattern, ListPatternElementImpl, RestPatternElement))
1095+
Literal (class extends Object implements Expression, sealed (immediate subtypes: BooleanLiteral, DoubleLiteral, IntegerLiteral, LiteralImpl, NullLiteral, RecordLiteral, StringLiteral, SymbolLiteral, TypedLiteral))
10961096
LogicalAndPattern (class extends Object implements DartPattern):
10971097
leftOperand (getter: DartPattern)
10981098
operator (getter: Token)
@@ -1113,7 +1113,7 @@ package:analyzer/dart/ast/ast.dart:
11131113
requiredType (getter: DartType?)
11141114
rightBracket (getter: Token)
11151115
typeArguments (getter: TypeArgumentList?)
1116-
MapPatternElement (class extends Object implements AstNode, sealed)
1116+
MapPatternElement (class extends Object implements AstNode, sealed (immediate subtypes: MapPatternElementImpl, MapPatternEntry, RestPatternElement))
11171117
MapPatternEntry (class extends Object implements AstNode, MapPatternElement):
11181118
key (getter: Expression)
11191119
separator (getter: Token)
@@ -1176,7 +1176,7 @@ package:analyzer/dart/ast/ast.dart:
11761176
name2 (getter: Token)
11771177
type (getter: DartType?)
11781178
typeArguments (getter: TypeArgumentList?)
1179-
NamespaceDirective (class extends Object implements UriBasedDirective, sealed):
1179+
NamespaceDirective (class extends Object implements UriBasedDirective, sealed (immediate subtypes: ExportDirective, ImportDirective, NamespaceDirectiveImpl)):
11801180
combinators (getter: NodeList<Combinator>)
11811181
configurations (getter: NodeList<Configuration>)
11821182
semicolon (getter: Token)
@@ -1199,7 +1199,7 @@ package:analyzer/dart/ast/ast.dart:
11991199
clear (method: void Function(), deprecated)
12001200
insert (method: void Function(int, E), deprecated)
12011201
removeAt (method: E Function(int), deprecated)
1202-
NormalFormalParameter (class extends Object implements FormalParameter, AnnotatedNode, sealed)
1202+
NormalFormalParameter (class extends Object implements FormalParameter, AnnotatedNode, sealed (immediate subtypes: FieldFormalParameter, FunctionTypedFormalParameter, NormalFormalParameterImpl, SimpleFormalParameter, SuperFormalParameter))
12031203
NullAssertPattern (class extends Object implements DartPattern):
12041204
operator (getter: Token)
12051205
pattern (getter: DartPattern)
@@ -1296,7 +1296,7 @@ package:analyzer/dart/ast/ast.dart:
12961296
namedFields (getter: RecordTypeAnnotationNamedFields?)
12971297
positionalFields (getter: NodeList<RecordTypeAnnotationPositionalField>)
12981298
rightParenthesis (getter: Token)
1299-
RecordTypeAnnotationField (class extends Object implements AstNode, sealed):
1299+
RecordTypeAnnotationField (class extends Object implements AstNode, sealed (immediate subtypes: RecordTypeAnnotationFieldImpl, RecordTypeAnnotationNamedField, RecordTypeAnnotationPositionalField)):
13001300
metadata (getter: NodeList<Annotation>)
13011301
name (getter: Token?)
13021302
type (getter: TypeAnnotation)
@@ -1363,7 +1363,7 @@ package:analyzer/dart/ast/ast.dart:
13631363
SimpleStringLiteral (class extends Object implements SingleStringLiteral):
13641364
literal (getter: Token)
13651365
value (getter: String)
1366-
SingleStringLiteral (class extends Object implements StringLiteral, sealed):
1366+
SingleStringLiteral (class extends Object implements StringLiteral, sealed (immediate subtypes: SimpleStringLiteral, SingleStringLiteralImpl, StringInterpolation)):
13671367
contentsEnd (getter: int)
13681368
contentsOffset (getter: int)
13691369
isMultiline (getter: bool)
@@ -1379,7 +1379,7 @@ package:analyzer/dart/ast/ast.dart:
13791379
elements (getter: NodeList<InterpolationElement>)
13801380
firstString (getter: InterpolationString)
13811381
lastString (getter: InterpolationString)
1382-
StringLiteral (class extends Object implements Literal, sealed):
1382+
StringLiteral (class extends Object implements Literal, sealed (immediate subtypes: AdjacentStrings, SingleStringLiteral, StringLiteralImpl)):
13831383
stringValue (getter: String?)
13841384
SuperConstructorInvocation (class extends Object implements ConstructorInitializer, ConstructorReferenceNode):
13851385
argumentList (getter: ArgumentList)
@@ -1412,7 +1412,7 @@ package:analyzer/dart/ast/ast.dart:
14121412
arrow (getter: Token)
14131413
expression (getter: Expression)
14141414
guardedPattern (getter: GuardedPattern)
1415-
SwitchMember (class extends Object implements AstNode, sealed):
1415+
SwitchMember (class extends Object implements AstNode, sealed (immediate subtypes: SwitchCase, SwitchDefault, SwitchMemberImpl, SwitchPatternCase)):
14161416
colon (getter: Token)
14171417
keyword (getter: Token)
14181418
labels (getter: NodeList<Label>)
@@ -1450,7 +1450,7 @@ package:analyzer/dart/ast/ast.dart:
14501450
augmentKeyword (getter: Token?, experimental)
14511451
semicolon (getter: Token)
14521452
typedefKeyword (getter: Token)
1453-
TypeAnnotation (class extends Object implements AstNode, sealed):
1453+
TypeAnnotation (class extends Object implements AstNode, sealed (immediate subtypes: GenericFunctionType, NamedType, RecordTypeAnnotation, TypeAnnotationImpl)):
14541454
question (getter: Token?)
14551455
type (getter: DartType?)
14561456
TypeArgumentList (class extends Object implements AstNode):
@@ -1469,11 +1469,11 @@ package:analyzer/dart/ast/ast.dart:
14691469
leftBracket (getter: Token)
14701470
rightBracket (getter: Token)
14711471
typeParameters (getter: NodeList<TypeParameter>)
1472-
TypedLiteral (class extends Object implements Literal, sealed):
1472+
TypedLiteral (class extends Object implements Literal, sealed (immediate subtypes: ListLiteral, SetOrMapLiteral, TypedLiteralImpl)):
14731473
constKeyword (getter: Token?)
14741474
isConst (getter: bool)
14751475
typeArguments (getter: TypeArgumentList?)
1476-
UriBasedDirective (class extends Object implements Directive, sealed):
1476+
UriBasedDirective (class extends Object implements Directive, sealed (immediate subtypes: NamespaceDirective, PartDirective, UriBasedDirectiveImpl)):
14771477
uri (getter: StringLiteral)
14781478
VariableDeclaration (class extends Object implements Declaration):
14791479
declaredElement (getter: VariableElement?, deprecated)
@@ -1496,7 +1496,7 @@ package:analyzer/dart/ast/ast.dart:
14961496
VariableDeclarationStatement (class extends Object implements Statement):
14971497
semicolon (getter: Token)
14981498
variables (getter: VariableDeclarationList)
1499-
VariablePattern (class extends Object implements DartPattern, sealed):
1499+
VariablePattern (class extends Object implements DartPattern, sealed (immediate subtypes: AssignedVariablePattern, DeclaredVariablePattern, VariablePatternImpl)):
15001500
name (getter: Token)
15011501
WhenClause (class extends Object implements AstNode):
15021502
expression (getter: Expression)
@@ -1529,9 +1529,9 @@ package:analyzer/dart/ast/doc_comment.dart:
15291529
fenced (static getter: CodeBlockType)
15301530
indented (static getter: CodeBlockType)
15311531
values (static getter: List<CodeBlockType>)
1532-
DocDirective (class extends Object, sealed, experimental):
1532+
DocDirective (class extends Object, sealed (immediate subtypes: BlockDocDirective, SimpleDocDirective), experimental):
15331533
type (getter: DocDirectiveType)
1534-
DocDirectiveArgument (class extends Object, sealed, experimental):
1534+
DocDirectiveArgument (class extends Object, sealed (immediate subtypes: DocDirectiveNamedArgument, DocDirectivePositionalArgument), experimental):
15351535
end (getter: int)
15361536
offset (getter: int)
15371537
value (getter: String)
@@ -3430,7 +3430,7 @@ package:analyzer/dart/element/element.dart:
34303430
MultiplyDefinedElement (class extends Object implements Element, deprecated):
34313431
new (constructor: MultiplyDefinedElement Function())
34323432
conflictingElements (getter: List<Element>)
3433-
NamespaceCombinator (class extends Object, sealed):
3433+
NamespaceCombinator (class extends Object, sealed (immediate subtypes: HideElementCombinator, ShowElementCombinator)):
34343434
end (getter: int)
34353435
offset (getter: int)
34363436
ParameterElement (class extends Object implements PromotableElement, ConstantEvaluationTarget, deprecated):
@@ -3644,7 +3644,7 @@ package:analyzer/dart/element/element2.dart:
36443644
thisOrAncestorOfType2 (method: E? Function<E extends Element2>())
36453645
visitChildren2 (method: void Function<T>(ElementVisitor2<T>))
36463646
ElementAnnotation (see above)
3647-
ElementDirective (class extends Object implements Annotatable, sealed):
3647+
ElementDirective (class extends Object implements Annotatable, sealed (immediate subtypes: LibraryExport, LibraryImport, PartInclude)):
36483648
libraryFragment (getter: LibraryFragment)
36493649
uri (getter: DirectiveUri)
36503650
ElementKind (see above)

0 commit comments

Comments
 (0)